aboutsummaryrefslogtreecommitdiff
path: root/vendor/voclient/include/xrpcP.h
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/voclient/include/xrpcP.h')
-rw-r--r--vendor/voclient/include/xrpcP.h139
1 files changed, 139 insertions, 0 deletions
diff --git a/vendor/voclient/include/xrpcP.h b/vendor/voclient/include/xrpcP.h
new file mode 100644
index 00000000..117b39ad
--- /dev/null
+++ b/vendor/voclient/include/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"
+
+