/*
 * 业务入口函数
 * 输入:
 * 	req_json:请求串,json格式
 * 	req_id:用于记录在日志中的id
 * 输出:
 * 	p_out_string:输出字符串,一般拼成json格式
 * 	n_out_len:输出字符串的长度
 * */
int SimpleFrameWorkInterface::work_core(json_object *req_json, 
		char* &p_out_string, int& n_out_len, int64_t req_id){
	
	int spend_msec = -1;
	struct timeval tv_temp;
	tv_temp = calc_spend_time(tv_temp, "example_work start", spend_msec, true);
	
	int result = 0;

	json_object* cmd_json = json_object_object_get(req_json, "cmd");
	char* cmd_str = NULL;
	if(NULL == cmd_json){
		cmd_str = "query";
	}else{
		cmd_str = (char*)json_object_get_string(cmd_json);
	}

	if(strcasecmp(cmd_str, "query") != 0){
		return return_fail(403, "command not support", p_out_string, n_out_len);
	}

	json_object* uid_json = json_object_object_get(req_json, "uid");
	if(NULL == uid_json){
		return return_fail(403, "uid is empty", p_out_string, n_out_len);
	}else{
		uint64_t uid = json_object_get_int64(uid_json);
		result = get_uid_good_follow(uid, req_id, p_out_string, n_out_len);
	}

	tv_temp = calc_spend_time(tv_temp, "example_work all finish", spend_msec);
	return result;
}
Пример #2
0
extern OBJ _AEnv_Axenv(OBJ den,OBJ unit) /* xenv */ {
    char *e;
    get_denotation(den,charbuf,CHARBUFSIZE);
    if ( (e = getenv(charbuf)) != NULL ){
	return_okay(make_denotation(e));
    } else {
	return_fail(__AEnv_AnoSuchEnvVar);
    }
}
Пример #3
0
extern OBJ _javabind_fail(){
    /* DEBUG */
    /* (*javabind_env)->ExceptionDescribe(javabind_env); */
    if (javabind_last_exception != NULL){
	(*javabind_env)->DeleteLocalRef(javabind_env,javabind_last_exception);
    }
    javabind_last_exception = (*javabind_env)->ExceptionOccurred(javabind_env);
    /*
    jthrowable t;
    javabind_last_exception = (*javabind_env)->NewGlobalRef(javabind_env,t);
    (*javabind_env)->DeleteLocalRef(javabind_env, t);
    */
    (*javabind_env)->ExceptionClear(javabind_env);
    return_fail(javabind_exception_ans);
}