1 /* Copyright information is at the end of the file */
2 #ifndef XMLRPC_TRANSPORT_H_INCLUDED
3 #define XMLRPC_TRANSPORT_H_INCLUDED
9 #include "xmlrpc-c/base.h"
11 struct xmlrpc_call_info;
13 struct xmlrpc_client_transport;
15 /*=========================================================================
16 ** Transport function type declarations.
17 **=========================================================================
19 typedef void (*xmlrpc_transport_setup)(xmlrpc_env * const envP);
21 typedef void (*xmlrpc_transport_teardown)(void);
23 typedef void (*xmlrpc_transport_create)(
24 xmlrpc_env * const envP,
26 const char * const appname,
27 const char * const appversion,
28 const struct xmlrpc_xportparms * const transportparmsP,
29 size_t const transportparm_size,
30 struct xmlrpc_client_transport ** const handlePP);
32 typedef void (*xmlrpc_transport_destroy)(
33 struct xmlrpc_client_transport * const clientTransportP);
35 typedef void (*xmlrpc_transport_asynch_complete)(
36 struct xmlrpc_call_info * const callInfoP,
37 xmlrpc_mem_block * const responseXmlP,
38 xmlrpc_env const env);
40 typedef void (*xmlrpc_transport_send_request)(
41 xmlrpc_env * const envP,
42 struct xmlrpc_client_transport * const clientTransportP,
43 const xmlrpc_server_info * const serverP,
44 xmlrpc_mem_block * const xmlP,
45 xmlrpc_transport_asynch_complete complete,
46 struct xmlrpc_call_info * const callInfoP);
48 typedef void (*xmlrpc_transport_call)(
49 xmlrpc_env * const envP,
50 struct xmlrpc_client_transport * const clientTransportP,
51 const xmlrpc_server_info * const serverP,
52 xmlrpc_mem_block * const xmlP,
53 xmlrpc_mem_block ** const responsePP);
55 typedef enum {timeout_no, timeout_yes} xmlrpc_timeoutType;
57 typedef unsigned long xmlrpc_timeout;
58 /* A timeout in milliseconds. */
60 typedef void (*xmlrpc_transport_finish_asynch)(
61 struct xmlrpc_client_transport * const clientTransportP,
62 xmlrpc_timeoutType const timeoutType,
63 xmlrpc_timeout const timeout);
66 struct xmlrpc_client_transport_ops {
68 xmlrpc_transport_setup setup_global_const;
69 xmlrpc_transport_teardown teardown_global_const;
70 xmlrpc_transport_create create;
71 xmlrpc_transport_destroy destroy;
72 xmlrpc_transport_send_request send_request;
73 xmlrpc_transport_call call;
74 xmlrpc_transport_finish_asynch finish_asynch;