⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 php_amule_lib_standalone.cpp

📁 电驴的MAC源代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		return;	}	cast_value_dnum(&si->var->value);	int min_size = si->var->value.int_val;	if ( !(si = get_scope_item(g_current_scope, "__param_6")) ) {		php_report_error(PHP_ERROR, "Invalid or missing argument 7 (max size)");		return;	}	cast_value_dnum(&si->var->value);	int max_size = si->var->value.int_val;	printf("php_native_search_start_cmd: search=%s \n", search);}/* * Request contents of log */void php_get_log(PHP_VALUE_NODE *result){	value_value_free(result);		PHP_SCOPE_ITEM *si = get_scope_item(g_current_scope, "__param_0");	bool rst;	if ( !si ) {		rst = false;	} else {		cast_value_dnum(&si->var->value);		rst = si->var->value.int_val != 0;	}	printf("php_get_log: reset=%d\n", rst);}/* * Request contents of server info */void php_get_serverinfo(PHP_VALUE_NODE *result){	value_value_free(result);		PHP_SCOPE_ITEM *si = get_scope_item(g_current_scope, "__param_0");	bool rst;	if ( !si ) {		rst = false;	} else {		cast_value_dnum(&si->var->value);		rst = si->var->value.int_val != 0;	}	printf("php_get_serverinfo: reset=%d\n", rst);}/* * Download ed2k link. Params: link, category (default=0) */void php_native_ed2k_download_cmd(PHP_VALUE_NODE *result){	PHP_SCOPE_ITEM *si = get_scope_item(g_current_scope, "__param_0");	if ( !si || (si->var->value.type != PHP_VAL_STRING)) {		php_report_error(PHP_ERROR, "Invalid or missing argument 1 (file link)");		return;	}	char *str_link = si->var->value.str_val;		si = get_scope_item(g_current_scope, "__param_1");	if ( !si || (si->var->value.type != PHP_VAL_STRING)) {		php_report_error(PHP_ERROR, "Invalid or missing argument 2 (category)");		return;	}	cast_value_dnum(&si->var->value);	int cat = si->var->value.int_val;	printf("php_native_search_download_cmd: hash=%s category=%d\n", str_link, cat);}void amule_fake_obj_array_create(int count, char *class_name, PHP_VALUE_NODE *result){	for (int i = 0; i < count; i++) {		PHP_VAR_NODE *var = array_push_back(result);		var->value.type = PHP_VAL_OBJECT;		var->value.obj_val.class_name = class_name;		var->value.obj_val.inst_ptr = 0;	}}void amule_load_downloads(PHP_VALUE_NODE *result){	amule_fake_obj_array_create(10, "AmuleDownloadFile", result);}void amule_load_servers(PHP_VALUE_NODE *result){	amule_fake_obj_array_create(20, "AmuleServer", result);}void amule_load_shared(PHP_VALUE_NODE *result){	amule_fake_obj_array_create(15, "AmuleSharedFile", result);}void amule_load_search(PHP_VALUE_NODE *result){	amule_fake_obj_array_create(35, "AmuleSearchFile", result);}void amule_load_uploads(PHP_VALUE_NODE *result){	amule_fake_obj_array_create(17, "AmuleUploadFile", result);}void amule_load_stats(){}void amule_load_stats_tree(PHP_VALUE_NODE *){}void php_native_load_amule_vars(PHP_VALUE_NODE *result){	PHP_SCOPE_ITEM *si_str = get_scope_item(g_current_scope, "__param_0");	if ( !si_str  ) {		php_report_error(PHP_ERROR, "Missing argument 'varname' for 'load_amule_vars'");		return;	}	PHP_VALUE_NODE *str = &si_str->var->value;	if ( str->type != PHP_VAL_STRING ) {		php_report_error(PHP_ERROR, "Argument 'varname' for 'load_amule_vars' must be string");		return;	}	char *varname = str->str_val;	if ( result ) {		cast_value_array(result);	}	if ( strcmp(varname, "downloads") == 0 ) {		amule_load_downloads(result);	} else if ( strcmp(varname, "uploads") == 0 ) {		amule_load_uploads(result);	} else if ( strcmp(varname, "shared") == 0 ) {		amule_load_shared(result);	} else if ( strcmp(varname, "searchresult") == 0 ) {		amule_load_search(result);	} else if ( strcmp(varname, "servers") == 0 ) {		amule_load_servers(result);	} else if ( strcmp(varname, "stats_graph") == 0 ) {		amule_load_stats();	} else if ( strcmp(varname, "stats_tree") == 0 ) {		amule_load_stats_tree(result);	} else {		value_value_free(result);		php_report_error(PHP_ERROR, "This type of amule variable is unknown");	}}/* * Amule objects implementations */void amule_fake_prop_get(void *obj, char *prop_name, PHP_VALUE_NODE *result){	if ( !strcmp(prop_name, "name") || !strcmp(prop_name, "hash") ) {		result->type = PHP_VAL_STRING;		result->str_val = strdup("some_str");	} else {		result->type = PHP_VAL_INT;		result->int_val = 10;	}}void amule_download_file_prop_get(void *obj, char *prop_name, PHP_VALUE_NODE *result){	amule_fake_prop_get(obj, prop_name, result);}void amule_upload_file_prop_get(void *obj, char *prop_name, PHP_VALUE_NODE *result){	amule_fake_prop_get(obj, prop_name, result);}void amule_server_prop_get(void *obj, char *prop_name, PHP_VALUE_NODE *result){	amule_fake_prop_get(obj, prop_name, result);}void amule_shared_file_prop_get(void *obj, char *prop_name, PHP_VALUE_NODE *result){	amule_fake_prop_get(obj, prop_name, result);}void amule_search_file_prop_get(void *obj, char *prop_name, PHP_VALUE_NODE *result){	amule_fake_prop_get(obj, prop_name, result);}void amule_version(PHP_VALUE_NODE *val){	if ( !val ) {		return;	}	value_value_free(val);	val->type = PHP_VAL_STRING;	val->str_val = strdup(PACKAGE_VERSION);}PHP_BLTIN_FUNC_DEF amule_lib_funcs[] = {	{		"amule_load_vars",		1, php_native_load_amule_vars,	},	{		"amule_get_stats",		0, php_get_amule_stats,	},	{		"amule_get_categories",		0, php_get_amule_categories,	},	{		"amule_get_options",		0, php_get_amule_options,	},	{		"amule_set_options",		1, php_set_amule_options,	},	{		"amule_do_server_cmd",		3,		php_native_server_cmd,	},	{		"amule_do_add_server_cmd",		3,		php_native_add_server_cmd,	},	{		"amule_do_download_cmd",		3,		php_native_download_file_cmd,	},	{		"amule_do_shared_cmd",		3,		php_native_shared_file_cmd,	},	{		"amule_do_reload_shared_cmd",		0, php_native_reload_shared_file_cmd,	},	{		"amule_do_search_download_cmd",		2,		php_native_search_download_cmd,	},	{		"amule_do_search_start_cmd",		7,		php_native_search_start_cmd,	},	{		"amule_do_ed2k_download_cmd",		2,		php_native_ed2k_download_cmd,	},	{		"amule_get_log",		1, php_get_log,	},	{		"amule_get_serverinfo",		1, php_get_serverinfo,	},	{		"amule_get_version",		0, amule_version,	},	{ 0, 0, 0, },};void php_init_amule_lib(){	// load function definitions	PHP_BLTIN_FUNC_DEF *curr_def = core_lib_funcs;	while ( curr_def->name ) {		php_add_native_func(curr_def);		curr_def++;	}	// load object definitions	php_add_native_class("AmuleDownloadFile", amule_download_file_prop_get);	php_add_native_class("AmuleUploadFile", amule_upload_file_prop_get);	php_add_native_class("AmuleServer", amule_server_prop_get);	php_add_native_class("AmuleSharedFile", amule_shared_file_prop_get);	php_add_native_class("AmuleSearchFile", amule_search_file_prop_get);}// File_checked_for_headers

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -