2019-06-17 08:37:47 +00:00
|
|
|
/*
|
|
|
|
* rpc_client.h
|
|
|
|
*
|
|
|
|
* Created on: 2011-3-21
|
|
|
|
* Author: yanghu
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef RPC_CLIENT_H_
|
|
|
|
#define RPC_CLIENT_H_
|
|
|
|
|
|
|
|
#include "rpc_common.h"
|
|
|
|
|
|
|
|
#define CLIENT_THREAD_NUM 1
|
|
|
|
struct _rpc_client {
|
|
|
|
char *host;
|
|
|
|
int port;
|
|
|
|
rpc_client_thread *threads;
|
|
|
|
int thread_count;
|
|
|
|
int last_thread;
|
|
|
|
|
|
|
|
int init_count;
|
|
|
|
pthread_cond_t cond;
|
|
|
|
pthread_mutex_t mutex;
|
|
|
|
};
|
|
|
|
|
|
|
|
rpc_client* rpc_client_new();
|
2019-08-20 06:38:48 +00:00
|
|
|
void rpc_client_destroy(rpc_client *client);
|
2019-06-17 08:37:47 +00:00
|
|
|
|
|
|
|
boolean rpc_client_connect(rpc_client* client, char* host, int port);
|
|
|
|
rpc_client* rpc_client_connect_ex(char *dst_name);
|
|
|
|
|
|
|
|
ret_code rpc_client_call(rpc_client* client, char* service_name,
|
|
|
|
char* method_name, pointer input, int input_len, pointer* output,
|
|
|
|
int* output_len);
|
|
|
|
|
2019-08-30 07:40:07 +00:00
|
|
|
ret_code rpc_client_recall(rpc_client**pclient, char* service_name,
|
|
|
|
char* method_name, pointer input, int input_len,
|
|
|
|
pointer* output, int* output_len);
|
|
|
|
|
2019-06-17 08:37:47 +00:00
|
|
|
void rpc_client_call_async_thread(rpc_client* client, char* service_name,
|
|
|
|
char* method_name, pointer input, int input_len,
|
|
|
|
rpc_callback callback, pointer data);
|
|
|
|
|
|
|
|
ret_code rpc_client_call_async(rpc_client* client, char* service_name,
|
|
|
|
char* method_name, pointer input, int input_len,
|
|
|
|
rpc_callback callback, pointer data);
|
|
|
|
|
2019-08-30 07:40:07 +00:00
|
|
|
ret_code rpc_client_recall_async(rpc_client**pclient, char* service_name,
|
|
|
|
char* method_name, pointer input, int input_len,
|
|
|
|
rpc_callback callback, pointer data);
|
|
|
|
|
|
|
|
|
2019-06-17 08:37:47 +00:00
|
|
|
|
|
|
|
#endif /* RPC_CLIENT_H_ */
|