diff options
author | Joe Hunkeler <jhunkeler@gmail.com> | 2015-08-11 16:51:37 -0400 |
---|---|---|
committer | Joe Hunkeler <jhunkeler@gmail.com> | 2015-08-11 16:51:37 -0400 |
commit | 40e5a5811c6ffce9b0974e93cdd927cbcf60c157 (patch) | |
tree | 4464880c571602d54f6ae114729bf62a89518057 /vendor/voclient/libsamp/libxrpc/xrpcP.h | |
download | iraf-osx-40e5a5811c6ffce9b0974e93cdd927cbcf60c157.tar.gz |
Repatch (from linux) of OSX IRAF
Diffstat (limited to 'vendor/voclient/libsamp/libxrpc/xrpcP.h')
-rw-r--r-- | vendor/voclient/libsamp/libxrpc/xrpcP.h | 139 |
1 files changed, 139 insertions, 0 deletions
diff --git a/vendor/voclient/libsamp/libxrpc/xrpcP.h b/vendor/voclient/libsamp/libxrpc/xrpcP.h new file mode 100644 index 00000000..117b39ad --- /dev/null +++ b/vendor/voclient/libsamp/libxrpc/xrpcP.h @@ -0,0 +1,139 @@ +/* +** XRPC.h -- Private include file for the XRPC interface. +*/ + + +#define SZ_LINE 128 +#define SZ_PATH 128 +#define SZ_CMD 32 +#define SZ_SIG 64 +#define SZ_NAME 64 + +#define MAX_CLIENTS 512 /* max clients or async msgs */ +#define MAX_STRUCTS 32768 +#define MAX_ARRAYS 32768 + +#define OK 0 +#define ERR 1 + +#define TY_INT 1 +#define TY_DOUBLE 2 +#define TY_BOOL 3 +#define TY_STRING 4 +#define TY_DATETIME 5 +#define TY_STRUCT 6 +#define TY_ARRAY 7 + +#define XR_NAME "xrLib" +#define XR_VERSION "v1.0" + + + +/** + * Type for pointer to function return integer. + */ +typedef int (*PFI)(); /* ptr to func returning an int */ + + +/** + * XML-RPC method data struct. + */ +typedef struct { + char name[SZ_PATH]; /** method name */ + char arg_signature[SZ_SIG]; /** argument signature */ + char ret_signature[SZ_SIG]; /** return signature */ + + int (*methodFunc)(void *p); /** function to call */ + void *serverInfo; /** user data */ + + void *next; /** list pointer */ + +} Method, *MethodP; + + +/** + * XML-RPC caller data struct. + */ +typedef struct { + xmlrpc_env *env; /** calling environment */ + char *host; /** caller host name (not used) */ + char *name; /** method name */ + xmlrpc_value *param; /** calling parameter array */ + void *info; /** user data ('svr' pointer) */ + xmlrpc_value *result; /** result array */ + + int (*handlerFunc)(void *p); /** asynch handler function */ + int nparams; /** number of calling params */ + int nresults; /** number of result values */ + + int client_num; /** client number */ + int rpc_shutdown; /** shutdown request */ + +} Caller, *CallerP; + + +/** + * XML-RPC server data struct. + */ +typedef struct { + int port; /** server port numnber */ + char path[SZ_PATH]; /** path e.g. "/RPC2" */ + char url[SZ_PATH]; /** full server URL */ + char config[SZ_PATH]; /** server config file */ + char logfile[SZ_PATH]; /** server log file */ + + + /* Runtime structure + */ + Method *method_head; /** server method list */ + Method *method_tail; /** server method tail */ + int num_methods; /** number of methods */ + + Caller caller; /** method calling struct */ + + pthread_attr_t attr; /** server thread attribute */ + pthread_t thread; /** server thread */ + + xmlrpc_default_method defMethod; /** dispatcher method */ + + xmlrpc_server_abyss_parms serverparm; + xmlrpc_registry *registry; + xmlrpc_env env; + + int shutdown; /** shutdown requested */ + int trace; /** trace execution? */ + +} Server, *ServerP; + + +/** + * XML-RPC client data struct. + */ +typedef struct { + char url[SZ_PATH]; /** URL to service */ + xmlrpc_client *rpc_client; /** client struct */ + xmlrpc_env env; /** env context */ + + int in_use; /** struct in use? */ + + int (*handlerFunc)(void *p); /** asynch handler function */ + xmlrpc_value *param; /** method parameters */ + xmlrpc_value *result; /** result values */ + + int faultCode; /** error code */ + char faultString[SZ_PATH]; /** error string */ + +} Client, *ClientP; + + + + +/* Private function prototypes. +*/ +void die_on_error (xmlrpc_env *env); +void warn_on_error (xmlrpc_env *env); + + +#include "xrpc.h" + + |