Diff for /libaitrpc/inc/aitrpc.h between versions 1.2.4.2 and 1.2.4.7

version 1.2.4.2, 2011/08/18 19:04:10 version 1.2.4.7, 2011/08/19 09:20:46
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 295  typedef struct { Line 295  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 324  typedef int (*rpc_callback_t)(rpc_func_t *, int, rpc_v Line 325  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 360  int rpc_srv_execServer(rpc_srv_t * __restrict srv); Line 361  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
    * @sockType = Socket type, like SOCK_STREAM, SOCK_DGRAM or SOCK_RAW
  * @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
  */   */
int rpc_srv_initBLOBServer(rpc_srv_t * __restrict srv, u_short Port, const char *diskDir);int rpc_srv_initBLOBServer(rpc_srv_t * __restrict srv, int sockType, u_short Port, const char *diskDir);
 /*  /*
  * rpc_srv_endBLOBServer() Destroy BLOB server, close all opened sockets and free resources   * rpc_srv_endBLOBServer() Destroy BLOB server, close all opened sockets and free resources
  * @srv = RPC Server instance   * @srv = RPC Server instance
Line 424  int rpc_srv_execCall(rpc_func_t * __restrict call, str Line 427  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 573  inline int rpc_cli_getBLOB(rpc_cli_t * __restrict cli, Line 570  inline int rpc_cli_getBLOB(rpc_cli_t * __restrict cli,
  * rpc_cli_openClient() Connect to RPC Server   * rpc_cli_openClient() Connect to RPC Server
  * @ProgID = ProgramID for RPC session request   * @ProgID = ProgramID for RPC session request
  * @ProcID = ProcessID for RPC session request   * @ProcID = ProcessID for RPC session request
    * @sockType = Socket type, like SOCK_STREAM, SOCK_DGRAM or SOCK_RAW
  * @family = Family socket type, AF_INET or AF_INET6   * @family = Family socket type, AF_INET or AF_INET6
  * @csHost = Host name or IP address for bind server   * @csHost = Host name or IP address for bind server
  * @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, int sockType, 
                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
Line 611  inline void rpc_cli_freeVals(int args, rpc_val_t *vals Line 609  inline void rpc_cli_freeVals(int args, rpc_val_t *vals
 /*  /*
  * rpc_cli_openBLOBClient() Connect to BLOB Server   * rpc_cli_openBLOBClient() Connect to BLOB Server
  * @rpccli = RPC Client session   * @rpccli = RPC Client session
    * @sockType = Socket type, like SOCK_STREAM, SOCK_DGRAM or SOCK_RAW
  * @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 BLOB server established   * return: NULL == error or !=NULL connection to BLOB server established
  */   */
rpc_cli_t *rpc_cli_openBLOBClient(rpc_cli_t * __restrict rpccli, u_short Port);rpc_cli_t *rpc_cli_openBLOBClient(rpc_cli_t * __restrict rpccli, int sockType, u_short Port);
 /*  /*
  * rpc_cli_closeBLOBClient() Close connection to BLOB server and free resources   * rpc_cli_closeBLOBClient() Close connection to BLOB server and free resources
  * @cli = BLOB Client session   * @cli = BLOB Client session

Removed from v.1.2.4.2  
changed lines
  Added in v.1.2.4.7


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