aboutsummaryrefslogtreecommitdiff
path: root/vendor/voclient/include/xrpc.h
blob: 9b560ba10b63e2221a57c3e71716f203b9d8ce35 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
/*
**  XRPC.h -- Public include file for the XRPC interface.
*/


#ifdef  OK
#undef  OK
#endif
#define	OK		0

#ifdef  ERR
#undef  ERR
#endif
#define	ERR		1


#ifdef  TRUE
#undef  TRUE
#endif
#define TRUE            1

#ifdef  FALSE
#undef  FALSE
#endif
#define FALSE           0



/*****************************************************************************/
/****                       Function Prototypes                           ****/
/*****************************************************************************/

/*  xrArray.c
*/
int    xr_newArray (void);
void   xr_freeArray (int anum);
int    xr_arrayLen (int anum);

void   xr_setIntInArray (int anum, int value);
void   xr_setDoubleInArray (int anum, double value);
void   xr_setBoolInArray (int anum, int value);
void   xr_setStringInArray (int anum, char *value);
void   xr_setDatetimeInArray (int anum, char *value);
void   xr_setStructInArray (int anum, int value);
void   xr_setArrayInArray (int anum, int value);

void   xr_getIntFromArray (int anum, int index, int *ival);
void   xr_getDoubleFromArray (int anum, int index, double *dval);
void   xr_getBoolFromArray (int anum, int index, int *bval);
void   xr_getStringFromArray (int anum, int index, char **value);
void   xr_getDatetimeFromArray (int anum, int index, char **value);
void   xr_getStructFromArray (int anum, int index, int *value);
void   xr_getArrayFromArray (int anum, int index, int *value);

xmlrpc_value *xr_getAElement (int anum);
void   xr_setAElement (int anum, xmlrpc_value *v);


/*  xrClient.c
*/
int    xr_newASync (int cnum);
int    xr_initClient (char *url, char *name, char *version);
int    xr_closeClient (int cnum);
int    xr_setClient (int cnum, char *url);
int    xr_callSync (int cnum, char *name);

int    xr_callASync (int cnum, char *name, void *ret_handler);
int    xr_asyncWait (void);

void   xr_initParam (int cnum);
void   xr_setVerbose (int verbose);
void   xr_setDebug   (int debug);

void   xr_setIntInParam (int cnum, int value);
void   xr_setDoubleInParam (int cnum, double value);
void   xr_setBoolInParam (int cnum, int value);
void   xr_setStringInParam (int cnum, char *str);
void   xr_setDatetimeInParam (int cnum, char *str);
void   xr_setStructInParam (int cnum, int snum);
void   xr_setArrayInParam (int cnum, int anum);

int    xr_getIntFromResult (int cnum, int *value);
int    xr_getDoubleFromResult (int cnum, double *value);
int    xr_getBoolFromResult (int cnum, int *value);
int    xr_getStringFromResult (int cnum, char **value);
int    xr_getDatetimeFromResult (int cnum, char **date);
int    xr_getStructFromResult (int cnum, int *snum);
int    xr_getArrayFromResult (int cnum, int *anum);

char  *xr_getErrMsg (int cnum);
int    xr_getErrCode (int cnum);

void   xr_envClean (int cnum);
void   xr_freeParam (int cnum);
void   xr_freeResult (int cnum);
void   xr_clientCleanup (int cnum);
void   xr_printClient (int cnum);


/*  xrMethod.c
*/
int    xr_getIntFromParam (void *data, int index);
double xr_getDoubleFromParam (void *data, int index);
char  *xr_getStringFromParam (void *data, int index);
int    xr_getBoolFromParam (void *data, int index);
char  *xr_getDatetimeFromParam (void *data, int index);
int    xr_getStructFromParam (void *data, int index);
int    xr_getArrayFromParam (void *data, int index);

void   xr_setIntInResult (void *data, int val);
void   xr_setDoubleInResult (void *data, double val);
void   xr_setBoolInResult (void *data, int val);
void   xr_setStringInResult (void *data, char *val);
void   xr_setDatetimeInResult (void *data, char *val);
void   xr_setStructInResult (void *data, int snum);
void   xr_setArrayInResult (void *data, int anum);

void   xr_setShutdown (void *data, int val);


/*  xrServer.c
*/
typedef void (*sighandler_t)(int);

int    xr_createServer (char *path, int port, char *logfile);
int    xr_addServerMethod (char *name, void *method, void *userData);
int    xr_removeServerMethod (char *name);
void   xr_setServerParam (char *param, void *value);
pthread_t xr_startServerThread (void);
void   xr_startServer (void);
int    xr_shutdownServer (void);
int    xr_requestAbort (void *data);
void   xr_setShutdownLevel (int level);
void   xr_setSigHandler (int sig, sighandler_t handler);


/*  xrStruct.c
*/
int    xr_newStruct (void);
void   xr_freeStruct (int snum);

void   xr_printJSONStruct (int snum);
int    xr_structSize (int snum);
char  *xr_getStructKey (int snum, int index);
char  *xr_getStructVal (int snum, int index);

void   xr_setIntInStruct (int snum, char *key, int value);
void   xr_setDoubleInStruct (int snum, char *key, double value);
void   xr_setBoolInStruct (int snum, char *key, int value);
void   xr_setStringInStruct (int snum, char *key, char *value);
void   xr_setDatetimeInStruct (int snum, char *key, char *value);
void   xr_setStructInStruct (int snum, char *key, int value);
void   xr_setArrayInStruct (int snum, char *key, int value);

void   xr_getIntFromStruct (int snum, char *key, int *value);
void   xr_getDoubleFromStruct (int snum, char *key, double *value);
void   xr_getBoolFromStruct (int snum, char *key, int *value);
void   xr_getStringFromStruct (int snum, char *key, char **value);
void   xr_getDatetimeFromStruct (int snum, char *key, char **value);
void   xr_getStructFromStruct (int snum, char *key, int *value);
void   xr_getArrayFromStruct (int snum, char *key, int *value);

xmlrpc_value *xr_getSParam (int snum);
void   xr_setSParam (int snum, xmlrpc_value *v);


/*  xrUtil.c
*/
void   xr_setupSigtermHandler (xmlrpc_server_abyss_t *serverP);
void   xr_svrSigtermHandler (int signalClass);
void   xr_restoreSigtermHandler (void);

void   xr_setupSigpipeHandlers (void);

char  *xr_getPeerIpAddr (TSession * const abyssSessionP);
void   xr_dieIfFailed (char *description, xmlrpc_env env);
void   xr_dbgPrintParams (xmlrpc_server_abyss_parms s);
void   die_on_error (xmlrpc_env *env);
void   warn_on_error (xmlrpc_env *env);



/*  xrValues.c  
*/
void   xr_initValues (void);
int    xr_newValue (int type, void *v);
int    xr_tmpValue (int type, void *v);
void   xr_freeValue (int index);

int    xr_appendStruct (int snum, char *key, int value);
int    xr_appendArray (int anum, char *key, int value);

void   xr_getStructValue (int snum, char *key, void *value);
void   xr_getArrayValue (int anum, int index, void *value);