diff options
author | rans | 2004-08-26 16:57:41 +0000 |
---|---|---|
committer | rans | 2004-08-26 16:57:41 +0000 |
commit | 24339ea4d5b15c1a61ada7b9ea8a935ddfc76dce (patch) | |
tree | 0d812e8ba18287285a80f68f09cc35938348b4b4 /csoapserver/csoapserver.cpp | |
parent | 5dca2c3c0205d576ac59a0e52bdeb4fb56abf9b9 (diff) | |
download | csoap-24339ea4d5b15c1a61ada7b9ea8a935ddfc76dce.tar.gz csoap-24339ea4d5b15c1a61ada7b9ea8a935ddfc76dce.tar.bz2 |
CSoapServer
Diffstat (limited to 'csoapserver/csoapserver.cpp')
-rw-r--r-- | csoapserver/csoapserver.cpp | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/csoapserver/csoapserver.cpp b/csoapserver/csoapserver.cpp new file mode 100644 index 0000000..985e5fe --- /dev/null +++ b/csoapserver/csoapserver.cpp @@ -0,0 +1,71 @@ +// This is the main project file for VC++ application project +// generated using an Application Wizard. + +#include "stdafx.h" +#include <libcsoap/soap-server.h> + + +static const char *url = "/csoapserver"; +static const char *urn = "urn:examples"; +static const char *method = "sayHello"; + + +void add_name(xmlNodePtr node, SoapEnv *env) +{ + char *name; + name = (char*)xmlNodeListGetString(node->doc, + node->xmlChildrenNode, 1); + + + if (!name) return; + + soap_env_add_itemf(env,"xsd:string", "echo", + "Hello '%s'", name); + + xmlFree((xmlChar*)name); + +} + + +SoapEnv* say_hello(SoapEnv *request) +{ + + SoapEnv *env; + xmlNodePtr method, node; + + env = soap_env_new_with_response(request); + + method = soap_env_get_method(request); + node = soap_xml_get_children(method); + + while (node) { + add_name(node, env); + node = soap_xml_get_next(node); + } + + return env; +} + +int _tmain(int argc, _TCHAR* argv[]) +{ + + SoapRouter *router; + + log_set_level(HLOG_VERBOSE); + + if (!soap_server_init_args(argc, argv)) { + return 0; + } + + router = soap_router_new(); + soap_router_register_service(router, say_hello, method, urn); + soap_server_register_router(router, url); + + log_info1("send SIGTERM to shutdown"); + soap_server_run(); + + log_info1("shutting down\n"); + soap_server_destroy(); + + return 0; +} |