secgateway/Platform/common/rpc/rpc_client.h

46 lines
1.2 KiB
C
Raw Normal View History

/*
* 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();
void rpc_client_destroy(rpc_client *client);
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);
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);
#endif /* RPC_CLIENT_H_ */