00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef __csoap_router_h
00025 #define __csoap_router_h
00026
00032 typedef int (*soap_auth) (struct SoapEnv *request, const char *user, const char *pass);
00033
00040 struct SoapRouter
00041 {
00042 SoapServiceNode *service_head;
00043 SoapServiceNode *service_tail;
00044 SoapService *default_service;
00045 soap_auth auth;
00046 xmlDocPtr description;
00047 };
00048
00049 #ifdef __cplusplus
00050 extern "C" {
00051 #endif
00052
00065 extern struct SoapRouter *soap_router_new(void);
00066
00079 extern herror_t soap_router_register_service(struct SoapRouter *router, SoapServiceFunc func, const char *method, const char *urn);
00080
00086 extern herror_t soap_router_register_default_service(struct SoapRouter * router, SoapServiceFunc func, const char *method, const char *urn);
00087
00093 extern void soap_router_register_description(struct SoapRouter *router, xmlDocPtr doc);
00094
00100 extern void soap_router_register_security(struct SoapRouter *router, soap_auth auth);
00101
00113 extern SoapService *soap_router_find_service(struct SoapRouter *router, const char *urn, const char *method);
00114
00124 extern void soap_router_free(struct SoapRouter * router);
00125
00126 #ifdef __cplusplus
00127 }
00128 #endif
00129
00130 #endif