#ifndef ZENTIFIC_XR_TYPES_H #define ZENTIFIC_XR_TYPES_H typedef struct _xr_server_conn xr_server_conn; struct _xr_server_conn { BIO* bio; xr_http* http; GPtrArray* servlets; gboolean running; //maresca char *session_id; }; struct _xr_servlet { void* priv; xr_servlet_def* def; xr_call* call; xr_server_conn* conn; time_t last_used; GMutex* call_mutex; /* held during call */ }; struct _xr_http { BIO* bio; gsize bytes_read; int state; int msg_type; char* req_method; char* req_resource; char* req_version; int res_code; char* res_reason; GHashTable* headers; gssize content_length; }; // next two needed for pre_call relocation out of xdl //typedef enum { // XR_CALL_XML_RPC = 0, //#ifdef XR_JSON_ENABLED // XR_CALL_JSON_RPC, //#endif // XR_CALL_TRANSPORT_COUNT /* must be last, not a real transport */ //} xr_call_transport; struct _xr_call { xr_call_transport transport; char* method; GSList* params; xr_value* retval; gboolean error_set; int errcode; /* this must be > 0 for errors */ char* errmsg; /* Non-NULL on error. */ }; //Maresca //FIXME may be unneeded //only added b/c of double array debugging struct _xr_value { int type; /**< Type of the value. */ volatile guint ref; // values char* str_val; int int_val; double dbl_val; xr_blob* blob_val; // array GSList* children; /**< Members or array items list. */ // struct member fields char* member_name; /**< Struct member name. */ xr_value* member_value; /**< Struct member value. */ }; #endif //ZENTIFIC_TYPES_H