Diff for /libaitrpc/inc/aitrpc.h between versions 1.2 and 1.2.4.8

version 1.2, 2011/05/02 23:12:08 version 1.2.4.8, 2011/08/19 12:51:50
Line 87  typedef enum { Line 87  typedef enum {
 } rpc_type_t;  } rpc_type_t;
   
 typedef enum {  typedef enum {
        disable, enable,               // for blob.state        disable, enable, kill,               // for blob.state
         ok, error,                      // for blob reply          ok, error,                      // for blob reply
         get, set, unset                 // for blob request          get, set, unset                 // for blob request
 } cmd_type_t;  } cmd_type_t;
Line 226  typedef struct tagRPCFunc { Line 226  typedef struct tagRPCFunc {
         int8_t                  func_name[UCHAR_MAX + 1];          int8_t                  func_name[UCHAR_MAX + 1];
   
         int8_t                  func_args;          int8_t                  func_args;
        rpc_val_t               *func_vals;        rpc_val_t               *func_vars;
   
         void                    *func_parent;          void                    *func_parent;
         struct tagRPCFunc       *func_next;          struct tagRPCFunc       *func_next;
Line 267  struct tagBLOBHdr { Line 267  struct tagBLOBHdr {
   
 typedef struct {  typedef struct {
         struct sockaddr cli_sa;         // host info          struct sockaddr cli_sa;         // host info
        int             cli_sock;       // socket        int             cli_sock;       // socket fd
         pthread_t       cli_tid;        // TID of thread          pthread_t       cli_tid;        // TID of thread
   
         void            *cli_parent;    // pointer to parent rpc_srv_t for server or to rpc_sess_t for client          void            *cli_parent;    // pointer to parent rpc_srv_t for server or to rpc_sess_t for client
Line 294  typedef struct { Line 294  typedef struct {
         rpc_func_t      *srv_funcs;     // registered functions list          rpc_func_t      *srv_funcs;     // registered functions list
   
         pthread_mutex_t srv_mtx;          pthread_mutex_t srv_mtx;
           cmd_type_t      srv_kill;
   
         struct {          struct {
                int             state;          // BLOB server state: ==0 disable | !=0 enable                cmd_type_t        state;          // BLOB server state: ==0 disable | !=0 enable
                 char            dir[UCHAR_MAX + 1];                  char            dir[UCHAR_MAX + 1];
   
                 rpc_cli_t       server;         // BLOB server socket                  rpc_cli_t       server;         // BLOB server socket
Line 323  typedef int (*rpc_callback_t)(rpc_func_t *, int, rpc_v Line 324  typedef int (*rpc_callback_t)(rpc_func_t *, int, rpc_v
   
 /* Error support functions */  /* Error support functions */
   
// cli_GetErrno() Get error code of last operation// rpc_GetErrno() Get error code of last operation
inline int cli_GetErrno();inline int rpc_GetErrno();
// cli_GetError() Get error text of last operation// rpc_GetError() Get error text of last operation
inline const char *cli_GetError();inline const char *rpc_GetError();
   
   
 /* RPC Server side functions */  /* RPC Server side functions */
Line 336  inline const char *cli_GetError(); Line 337  inline const char *cli_GetError();
  * @regProgID = ProgramID for authentication & recognition   * @regProgID = ProgramID for authentication & recognition
  * @regProcID = ProcessID for authentication & recognition   * @regProcID = ProcessID for authentication & recognition
  * @concurentClients = Concurent clients at same time to this server   * @concurentClients = Concurent clients at same time to this server
 * @family = Family socket type, AF_INET or AF_INET6 * @family = Family type, AF_INET, AF_INET6 or AF_LOCAL
 * @csHost = Host name or IP address for bind server, if NULL any address * @csHost = Host name or address for bind server, if NULL any address
  * @Port = Port for bind server, if Port == 0 default port is selected   * @Port = Port for bind server, if Port == 0 default port is selected
  * return: NULL == error or !=NULL bind and created RPC server instance   * return: NULL == error or !=NULL bind and created RPC server instance
  */   */
Line 358  int rpc_srv_execServer(rpc_srv_t * __restrict srv); Line 359  int rpc_srv_execServer(rpc_srv_t * __restrict srv);
   
 /*  /*
  * rpc_srv_initBLOBServer() Init & create BLOB Server   * rpc_srv_initBLOBServer() Init & create BLOB Server
    * @srv = RPC server instance
  * @Port = Port for bind server, if Port == 0 default port is selected   * @Port = Port for bind server, if Port == 0 default port is selected
  * @diskDir = Disk place for BLOB file objects   * @diskDir = Disk place for BLOB file objects
  * return: -1 == error or 0 bind and created BLOB server instance   * return: -1 == error or 0 bind and created BLOB server instance
Line 422  int rpc_srv_execCall(rpc_func_t * __restrict call, str Line 424  int rpc_srv_execCall(rpc_func_t * __restrict call, str
   
   
 /*  /*
 * rpc_srv_retValsCall() Declare return variables for RPC call and zeroed values * rpc_srv_returnVars() Init return variables for RPC call and zeroed values
                                         (for safe handling return values, use this!)                                          (for safe handling return values, use this!)
  * @call = RPC function call   * @call = RPC function call
 * @return_vals = Number of return variables * @varnum = Number of return variables
 * return: NULL error, !=NULL array with return values for RPC call with return_vals items * return: NULL error, !=NULL array with return values for RPC call with varnum items
  */   */
inline rpc_val_t *rpc_srv_retValsCall(rpc_func_t * __restrict call, int return_vals);inline rpc_val_t *rpc_srv_returnVars(rpc_func_t * __restrict call, int varnum);
 /*  /*
 * rpc_srv_declValsCall() Declare return variables for RPC call * rpc_srv_allocVars() Allocate array for call variables
                                if already allocated memory for RPC call return values                                 if already allocated memory for RPC call reallocate used space
                                function reallocate used space with return_vals count elements 
  * @call = RPC function call   * @call = RPC function call
 * @return_vals = Number of return variables * @varnum = Number of variables, if ==0 free previous allocated variables
 * return: -1 error, !=-1 ok * return: -1 error, !=-1 return varnum value
  */   */
inline int rpc_srv_declValsCall(rpc_func_t * __restrict call, int return_vals);inline int rpc_srv_allocVars(rpc_func_t * __restrict call, int varnum);
 #define rpc_srv_freeVars(_call) (assert((_call)), rpc_srv_allocVars((_call), 0))
 /*  /*
 * rpc_srv_freeValsCall() Free return variables for RPC call * rpc_srv_zeroVars() Clean values from variables of RPC call
  * @call = RPC function call   * @call = RPC function call
 * return: none * return: -1 error, !=-1 Returned number of cleaned RPC variables
  */   */
inline void rpc_srv_freeValsCall(rpc_func_t * __restrict call);inline int rpc_srv_zeroVars(rpc_func_t * __restrict call);
 /*  /*
 * rpc_srv_copyValsCall() Copy return variables for RPC call to new variable * rpc_srv_copyVars() Copy variables for RPC call to new variable array
  * @call = RPC function call   * @call = RPC function call
 * @newvals = New allocated variables array, must be free after use * @newvars = New allocated variables array, must be free after use
  * return: -1 error, !=-1 Returned number of copied RPC variables   * return: -1 error, !=-1 Returned number of copied RPC variables
  */   */
inline int rpc_srv_copyValsCall(rpc_func_t * __restrict call, rpc_val_t ** __restrict newvals);inline int rpc_srv_copyVars(rpc_func_t * __restrict call, rpc_val_t ** __restrict newvars);
 /*  /*
 * rpc_srv_zeroValsCall() Clean values from return variables of RPC call * rpc_srv_getVars() Get variables array for RPC call
  * @call = RPC function call   * @call = RPC function call
 * return: -1 error, !=-1 Returned number of cleaned RPC variables * @vars = Returned variables array, may be NULL
 */ 
inline int rpc_srv_zeroValsCall(rpc_func_t * __restrict call); 
/* 
 * rpc_srv_getValsCall() Get return variables for RPC call 
 * @call = RPC function call 
 * @vals = Returned variables, may be NULL 
  * return: -1 error, !=-1 Number of returned variables   * return: -1 error, !=-1 Number of returned variables
  */   */
inline int rpc_srv_getValsCall(rpc_func_t * __restrict call, rpc_val_t ** __restrict vals);inline int rpc_srv_getVars(rpc_func_t * __restrict call, rpc_val_t ** __restrict vars);
   
   
 /*  /*
Line 576  inline int rpc_cli_getBLOB(rpc_cli_t * __restrict cli, Line 572  inline int rpc_cli_getBLOB(rpc_cli_t * __restrict cli,
  * @Port = Port for bind server, if Port == 0 default port is selected   * @Port = Port for bind server, if Port == 0 default port is selected
  * return: NULL == error or !=NULL connection to RPC server established   * return: NULL == error or !=NULL connection to RPC server established
  */   */
rpc_cli_t *rpc_cli_openClient(u_int ProgID, u_int ProcID, u_short family, rpc_cli_t *rpc_cli_openClient(u_int ProgID, u_int ProcID, 
                const char *csHost, u_short Port);                u_short family, const char *csHost, u_short Port);
 /*  /*
  * rpc_cli_closeClient() Close connection to RPC server and free resources   * rpc_cli_closeClient() Close connection to RPC server and free resources
  * @cli = RPC Client session   * @cli = RPC Client session

Removed from v.1.2  
changed lines
  Added in v.1.2.4.8


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>