summaryrefslogtreecommitdiff
path: root/bindings/gsoap
diff options
context:
space:
mode:
authorRoberto C. Sanchez <roberto@connexer.com>2014-03-29 10:53:49 -0400
committerRoberto C. Sanchez <roberto@connexer.com>2014-03-29 10:53:49 -0400
commit8c8aa6b07e595cfac56838b5964ab3e96051f1b2 (patch)
treeda38e2c1979148dbd3b0c7b87f930746f5ba7f44 /bindings/gsoap
parent8d3fc864d094eeadc721f8e93436b37a5fab173e (diff)
Imported Upstream version 1.5.7
Diffstat (limited to 'bindings/gsoap')
-rw-r--r--bindings/gsoap/Makefile12
-rw-r--r--bindings/gsoap/gsoapsword.cpp142
-rw-r--r--bindings/gsoap/gsoapsword.h65
-rw-r--r--bindings/gsoap/include/stdsoap.h493
-rwxr-xr-xbindings/gsoap/soapcppbin0 -> 534312 bytes
-rw-r--r--bindings/gsoap/stdsoap.obin0 -> 79640 bytes
-rw-r--r--bindings/gsoap/testclient.cpp76
7 files changed, 788 insertions, 0 deletions
diff --git a/bindings/gsoap/Makefile b/bindings/gsoap/Makefile
new file mode 100644
index 0000000..639634a
--- /dev/null
+++ b/bindings/gsoap/Makefile
@@ -0,0 +1,12 @@
+all: gsoapsword testclient
+
+gsoapsword: gsoapsword.h gsoapsword.cpp stdsoap.o
+ ./soapcpp gsoapsword.h
+ g++ -g -ggdb -I/usr/include/sword -I./include -o gsoapsword gsoapsword.cpp yoyo.cpp stdsoap.o soapC.cpp soapServer.cpp -lsword -lz
+
+testclient: gsoapsword.h testclient.cpp stdsoap.o
+ ./soapcpp gsoapsword.h
+ g++ -I./include -o testclient testclient.cpp stdsoap.o soapC.cpp soapClient.cpp
+
+clean:
+ rm gsoapsword testclient soapC.cpp soapServer.cpp soapClient.cpp soapH.h soapStub.h sword.xsd sword.nsmap sword.wsdl
diff --git a/bindings/gsoap/gsoapsword.cpp b/bindings/gsoap/gsoapsword.cpp
new file mode 100644
index 0000000..cb3a58d
--- /dev/null
+++ b/bindings/gsoap/gsoapsword.cpp
@@ -0,0 +1,142 @@
+#include "soapH.h"
+#include <flatapi.h>
+#include <swmgr.h>
+#include <markupfiltmgr.h>
+
+
+SWMgr *mgr;
+
+int sword__ModList_iterator_next(xsd__int hmmi, xsd__int &noop) {
+ ModList_iterator_next(hmmi);
+ return SOAP_OK;
+}
+
+int sword__ModList_iterator_val(xsd__int hmmi, xsd__int &hmodule) {
+ hmodule = ModList_iterator_val(hmmi);
+ return SOAP_OK;
+}
+
+int sword__SWMgr_new(xsd__int &retVal) {
+ retVal = SWMgr_new();
+ return SOAP_OK;
+}
+
+int sword__SWMgr_delete(xsd__int hmgr, xsd__int &noop) {
+ SWMgr_delete(hmgr);
+ return SOAP_OK;
+}
+
+int sword__SWMgr_getModulesIterator(xsd__int hmgr, xsd__int &hmodIterator) {
+ hmodIterator = SWMgr_getModulesIterator(hmgr);
+ return SOAP_OK;
+}
+
+int sword__SWMgr_getModuleByName(xsd__int hmgr, xsd__string name, xsd__int &hmodule) {
+ hmodule = SWMgr_getModuleByName(hmodule, name);
+ return SOAP_OK;
+}
+
+
+
+int sword__SWModule_getName(xsd__int hmodule, xsd__string &name) {
+ name = (char *)SWModule_getName(hmodule);
+ return SOAP_OK;
+}
+
+int sword__SWModule_getDescription(xsd__int hmodule, xsd__string &description) {
+ description = (char *)SWModule_getDescription(hmodule);
+ return SOAP_OK;
+}
+
+
+int sword__Quick_getModuleRawEntry(xsd__string modName, xsd__string modKey, xsd__string &modText) {
+ SWModule *mod = mgr->Modules[modName];
+ if (mod) {
+ mod->setKey(modKey);
+ modText = mod->getRawEntry();
+ }
+ return SOAP_OK;
+}
+
+
+int sword__Quick_setModuleRawEntry(xsd__string modName, xsd__string modKey, xsd__string modText, xsd__int &noop) {
+ SWModule *mod = mgr->Modules[modName];
+ if (mod) {
+ mod->setKey(modKey);
+ (*mod) << modText;
+ }
+ return SOAP_OK;
+}
+
+
+int sword__Quick_getModuleRenderText(xsd__string modName, xsd__string modKey, xsd__string &modText) {
+ SWModule *mod = mgr->Modules[modName];
+ if (mod) {
+ mod->setKey(modKey);
+ modText = (char *)mod->RenderText();
+ }
+ return SOAP_OK;
+}
+
+
+int sword__Quick_getJScriptAttribArray(xsd__string modName, xsd__string modKey, xsd__string &arrayText) {
+ SWModule *mod = mgr->Modules[modName];
+ if (mod) {
+ mod->setKey(modKey);
+ AttributeTypeList::iterator i1;
+ AttributeList::iterator i2;
+ AttributeValue::iterator i3;
+ int l1, l2, l3;
+ char lbuf1[20], lbuf2[20], lbuf3[20];
+ static string retVal = "";
+ retVal = "var entryAttribs = new Array();\n";
+ string l1keys = "entryAttribs[0] = new Array(";
+ for (l1=0,i1 = target->getEntryAttributes().begin(); i1 != target->getEntryAttributes().end(); i1++,l1++) {
+ sprintf(lbuf1, "%d", l1+1);
+ retVal += "entryAttribs["+lbuf1+"] = new Array();\n";
+ string l2keys = "entryAttribs["+lbuf1+"][0] = new Array(";
+ cout << "[ " << i1->first << " ]\n";
+ for (l2=0,i2 = i1->second.begin(); i2 != i1->second.end(); i2++,l2++) {
+ sprintf(lbuf2, "%d", l2+1);
+ retVal += "entryAttribs["+lbuf1+"]["+lbuf2+"][0] = new Array();\n";
+ string l3keys = "entryAttribs["+lbuf1+"]["+lbuf2+"][0] = new Array(";
+ cout << "\t[ " << i2->first << " ]\n";
+ for (l3=0,i3 = i2->second.begin(); i3 != i2->second.end(); i3++,l3++) {
+ cout << "\t\t" << i3->first << " = " << i3->second << "\n";
+ }
+ }
+ }
+ }
+ return SOAP_OK;
+}
+
+
+
+
+main() {
+
+
+ int m, s;
+ mgr = new SWMgr(new MarkupFilterMgr());
+ m = soap_bind("localhost", 18083, 100);
+ if (m < 0) {
+ soap_print_fault(stderr);
+ exit(-1);
+ }
+ fprintf(stderr, "Socket connection successful: master socket = %d\n", m);
+ for (int i = 1; ; i++) {
+ s = soap_accept();
+ if (s < 0) {
+ soap_print_fault(stderr);
+ exit(-1);
+ }
+ fprintf(stderr, "%d: accepted connection from IP = %d.%d.%d.%d socket = %d", i, (soap_ip<<24)&0xFF, (soap_ip<<16)&0xFF, (soap_ip<<8)&0xFF, soap_ip&0xFF, s);
+ soap_serve(); // process RPC skeletons
+ fprintf(stderr, "request served\n");
+ soap_end(); // clean up everything and close socket
+ }
+ delete mgr;
+}
+
+#include "sword.nsmap"
+
diff --git a/bindings/gsoap/gsoapsword.h b/bindings/gsoap/gsoapsword.h
new file mode 100644
index 0000000..1a712a5
--- /dev/null
+++ b/bindings/gsoap/gsoapsword.h
@@ -0,0 +1,65 @@
+#ifndef GSOAPAPI_H
+#define GSOAPAPI_H
+
+typedef long xsd__int;
+typedef char * xsd__string;
+
+//-----------------------------------------------------------------
+// stringlist_iterator methods
+
+//int sword__stringlist_iterator_next(xsd__int hsli char **);
+//int sword__stringlist_iterator_val(xsd__int hsli, char **);
+
+
+//-----------------------------------------------------------------
+// modmap methods
+//
+int sword__ModList_iterator_next(xsd__int hmmi, xsd__int &noop);
+int sword__ModList_iterator_val(xsd__int hmmi, xsd__int &hmodule);
+
+
+//-----------------------------------------------------------------
+// SWMgr methods
+//
+int sword__SWMgr_new(xsd__int &retVal);
+// SWConfig *, SWConfig *, bool, SWFilterMgr *
+//xsd__int sword__SWMgr_newEx(xsd__int hiconfig, xsd__int hisysconfig, char autoload, xsd__int hfilterMgr);
+int sword__SWMgr_delete(xsd__int hmgr, xsd__int &noop);
+//xsd__int sword__SWMgr_getConfig(xsd__int hmgr);
+int sword__SWMgr_getModulesIterator(xsd__int hmgr, xsd__int &hmodIterator);
+int sword__SWMgr_getModuleByName(xsd__int hmgr, xsd__string name, xsd__int &hmodule);
+//char * sword__SWMgr_getPrefixPath(xsd__int hmgr);
+//char * sword__SWMgr_getConfigPath(xsd__int hmgr);
+//void sword__SWMgr_setGlobalOption(xsd__int hmgr, char *option, char *value);
+//char * sword__SWMgr_getGlobalOption(xsd__int hmgr, char *option);
+//char * sword__SWMgr_getGlobalOptionTip(xsd__int hmgr, char *option);
+// ret: forward_iterator
+//xsd__int sword__SWMgr_getGlobalOptionsIterator(xsd__int hmgr);
+// ret: forward_iterator
+//xsd__int sword__SWMgr_getGlobalOptionValuesIterator(xsd__int hmgr, char *option);
+//void sword__SWMgr_setCipherKey(xsd__int hmgr, char *modName, char *key);
+
+
+//-----------------------------------------------------------------
+// SWModule methods
+
+//void sword__SWModule_terminateSearch(xsd__int hmodule);
+//char sword__SWModule_error(xsd__int hmodule);
+//int sword__SWModule_getEntrySize(xsd__int hmodule);
+//void sword__SWModule_setKeyText(xsd__int hmodule, char *key);
+//char *sword__SWModule_getKeyText(xsd__int hmodule);
+int sword__SWModule_getName(xsd__int hmodule, xsd__string &name);
+int sword__SWModule_getDescription(xsd__int hmodule, xsd__string &description);
+//char *sword__SWModule_getType(xsd__int hmodule);
+//void sword__SWModule_previous(xsd__int hmodule);
+//void sword__SWModule_next(xsd__int hmodule);
+//void sword__SWModule_begin(xsd__int hmodule);
+//char *sword__SWModule_getStripText(xsd__int hmodule);
+//char *sword__SWModule_getRenderText(xsd__int hmodule);
+
+
+int sword__Quick_getModuleRawEntry(xsd__string modName, xsd__string modKey, xsd__string &modText);
+int sword__Quick_setModuleRawEntry(xsd__string modName, xsd__string modKey, xsd__string modText, xsd__int &noop);
+int sword__Quick_getModuleRenderText(xsd__string modName, xsd__string modKey, xsd__string &modText);
+int sword__Quick_getJScriptAttribArray(xsd__string modName, xsd__string modKey, xsd__string &arrayText);
+#endif
diff --git a/bindings/gsoap/include/stdsoap.h b/bindings/gsoap/include/stdsoap.h
new file mode 100644
index 0000000..462483a
--- /dev/null
+++ b/bindings/gsoap/include/stdsoap.h
@@ -0,0 +1,493 @@
+/* stdsoap.h
+
+ Copyright (C) 2001 Robert A. van Engelen, Florida State University.
+ All rights reserved.
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <string.h>
+#include <ctype.h>
+#include <limits.h>
+#include <sys/types.h>
+#ifndef WIN32
+#include <netinet/tcp.h> /* for TCP_NODELAY */
+#include <arpa/inet.h>
+#endif
+
+#ifdef WITH_OPENSSL
+#include <openssl/ssl.h>
+#include <openssl/err.h>
+#ifndef ALLOW_OLD_VERSIONS
+#if (OPENSSL_VERSION_NUMBER < 0x00905100L)
+#error "Must use OpenSSL 0.9.6 or later"
+#endif
+#endif
+#endif
+
+#include <math.h> /* for isnan(): remove if NAN and INF support is not required */
+#include <time.h> /* for time_t (xsd:dateTime) support, remove if not required */
+
+#ifndef _MATH_H
+#define isnan(_) (0)
+#else
+extern struct soap_double_nan { int n1, n2; } soap_double_nan;
+#endif
+
+#ifndef STDSOAP
+#define STDSOAP
+
+#ifndef WIN32
+#define LONG64 long long
+#define ULONG64 unsigned long long
+#endif
+
+/* #define DEBUG */ /* Uncomment to debug sending (in file SENT.log) receiving (in file RECV.log) and messages (in file TEST.log) */
+
+#define SOAP_BUFLEN 8192 /* buffer length for socket packets */
+#define SOAP_MAXLEN 256 /* maximum length of buffer to hold XML number representations */
+#define SOAP_PTRHASH 1024 /* size of pointer analysis hash table (must be power of 2) */
+#define SOAP_IDHASH 16 /* size of hash table for element id's */
+#define SOAP_BLKLEN 256 /* size of blocks to collect long strings */
+#define SOAP_TAGLEN 256 /* maximum length of XML tag/element names + 1 */
+
+typedef long wchar; /* for compatibility */
+
+#ifndef FLT_NAN
+#ifdef _MATH_H
+#define FLT_NAN (*(float*)&soap_double_nan)
+#else
+#define FLT_NAN (0.0)
+#endif
+#endif
+#ifndef FLT_PINFTY
+#ifdef HUGE_VAL
+#define FLT_PINFTY (float)HUGE_VAL
+#else
+#ifdef FLT_MAX
+#define FLT_PINFTY FLT_MAX
+#else
+#ifdef FLOAT_MAX
+#define FLT_PINFTY FLOAT_MAX
+#else
+#define FLT_PINFTY (3.40282347e+38)
+#endif
+#endif
+#endif
+#endif
+#ifndef FLT_NINFTY
+#define FLT_NINFTY (-FLT_PINFTY)
+#endif
+
+#ifndef DBL_NAN
+#ifdef _MATH_H
+#define DBL_NAN (*(double*)&soap_double_nan)
+#else
+#define DBL_NAN (0.0)
+#endif
+#endif
+#ifndef DBL_PINFTY
+#ifdef HUGE_VAL
+#define DBL_PINFTY (double)HUGE_VAL
+#else
+#ifdef DBL_MAX
+#define DBL_PINFTY DBL_MAX
+#else
+#ifdef DOUBLE_MAX
+#define DBL_PINFTY DOUBLE_MAX
+#else
+#define DBL_PINFTY (1.7976931348623157e+308)
+#endif
+#endif
+#endif
+#endif
+#ifndef DBL_NINFTY
+#define DBL_NINFTY (-DBL_PINFTY)
+#endif
+
+extern int (*soap_fpost)(const char*, const char*, const char*, const char*, size_t);
+extern int (*soap_fresponse)(int, size_t);
+extern int (*soap_fparse)();
+extern int (*soap_fopen)(const char*, const char*, int);
+extern int (*soap_fclose)();
+extern int (*soap_fsend)(const char*, size_t);
+extern size_t (*soap_frecv)(char*, size_t);
+extern int (*soap_fignore)(const char*);
+
+extern const char *soap_float_format; /* points to user-definable format string */
+extern const char *soap_double_format; /* points to user-definable format string */
+
+extern const char *soap_http_version; /* default = "1.0" */
+extern const char *soap_encodingStyle; /* default = NULL which means that SOAP encoding is used for marshalling */
+extern const char *soap_defaultNamespace; /* default = NULL which means that no default namespace is used */
+extern int soap_disable_href; /* when !=0, disables hrefs so objects are duplicated on the output */
+extern int soap_enable_embedding; /* when !=0, enable hrefs within embedded elements */
+extern int soap_enable_null; /* when !=0, always sends null elements */
+extern int soap_enable_utf_string; /* when !=0, assume strings are UTF8/16 encoded and just emit them */
+extern int soap_disable_request_count; /* when !=0, do not include HTTP Content-Length in request */
+extern int soap_disable_response_count; /* when !=0, do not include HTTP Content-Length in service response (normally calculated by the Web server in case CGI is used so disabling saves time) */
+extern int soap_enable_array_overflow; /* when !=0, allows ignoring remaining elements that do not fit in a fixed-size array */
+extern int soap_keep_alive; /* when !=0, set SO_KEEPALIVE socket and do not close sockets, unless new host/port is accessed */
+
+extern const char *soap_proxy_host;
+extern int soap_proxy_port;
+
+#ifdef WITH_OPENSSL
+extern SSL_CTX *soap_ssl_ctx;
+extern BIO *soap_bio;
+extern SSL *soap_ssl;
+extern int soap_require_server_auth;
+extern const char *soap_keyfile;
+extern const char *soap_password;
+extern const char *soap_dhfile;
+extern const char *soap_cafile;
+#endif
+
+#ifdef WIN32
+#include <io.h>
+#include <winsock.h>
+#else
+#include <sys/socket.h>
+#include <netdb.h>
+#include <netinet/in.h>
+#include <unistd.h>
+#define closesocket(n) close(n)
+#endif
+
+int soap_serve();
+
+extern void soap_serializeheader();
+extern void soap_putheader();
+extern int soap_getheader();
+extern void soap_serializefault();
+extern void soap_putfault();
+extern int soap_getfault();
+extern void soap_putindependent();
+extern int soap_getindependent();
+
+int soap_bind(const char *hostname, int port, int backlog);
+int soap_accept();
+int soap_ssl_accept();
+
+struct Namespace {const char *id, *ns, *in;};
+extern struct Namespace namespaces[];
+
+static FILE * fdebug;
+
+struct soap_entry
+{ int id;
+ void *entry;
+ int type;
+ short marked1;
+ short marked2;
+ struct soap_entry *next;
+};
+
+extern char soap_tag[SOAP_TAGLEN]; /* used by soap_element_begin_in */
+extern char soap_id[SOAP_TAGLEN]; /* set by soap_element_begin_in */
+extern char soap_href[SOAP_TAGLEN]; /* set by soap_element_begin_in */
+extern char soap_type[SOAP_TAGLEN];
+extern char soap_arrayType[SOAP_TAGLEN];
+extern char soap_arraySize[SOAP_TAGLEN];
+extern char soap_xmlns_name[SOAP_TAGLEN];
+extern char soap_xmlns_value[SOAP_TAGLEN];
+extern char soap_offset[SOAP_TAGLEN]; /* ditto */
+extern int soap_position; /* ditto */
+extern int soap_positions[32]; /* ditto */
+extern int soap_null; /* ditto */
+extern int soap_counting;
+extern int soap_level;
+extern int soap_is_in_header;
+
+/* Defining the std soap error codes */
+
+#define SOAP_OK 0
+#define SOAP_CLI_FAULT 1
+#define SOAP_SVR_FAULT 2
+#define SOAP_TAG_MISMATCH 3
+#define SOAP_TYPE_MISMATCH 4
+#define SOAP_SYNTAX_ERROR 5
+#define SOAP_NO_TAG 6
+#define SOAP_IOB 7
+#define SOAP_MUSTUNDERSTAND 8
+#define SOAP_NAMESPACE 9
+#define SOAP_OBJ_MISMATCH 10
+#define SOAP_FATAL_ERROR 11
+#define SOAP_FAULT 12
+#define SOAP_NO_METHOD 13
+#define SOAP_EOM 14
+#define SOAP_NULL 15
+#define SOAP_MULTI_ID 16
+#define SOAP_MISSING_ID 17
+#define SOAP_HREF 18
+#define SOAP_TCP_ERROR 19
+#define SOAP_HTTP_ERROR 20
+#define SOAP_SSL_ERROR 21
+#define SOAP_EOF EOF
+
+extern int soap_error ;
+
+/* DEBUG macros */
+
+#ifdef DEBUG
+#define DBGLOG(DBGFILE, DBGCMD) \
+{\
+ fdebug = fopen(#DBGFILE".log", "a");\
+ DBGCMD;\
+ fclose(fdebug);\
+}
+#else
+#define DBGLOG(DBGFILE, DBGCMD)
+#endif
+
+struct soap_class
+{ void *ptr;
+ int type;
+ int size;
+ struct soap_class *next;
+};
+
+extern struct soap_class *soap_class_chain;
+
+struct soap_stack
+{ struct soap_stack *next;
+ char *id;
+ int i;
+ int level;
+};
+
+/* Hash table (temporarily replaced by array indexing) */
+
+extern struct soap_entry *soap_ptr[SOAP_PTRHASH];
+
+/*int sock;*/
+extern int soap_socket;
+extern int soap_recvfd;
+extern int soap_sendfd;
+extern int soap_buffering;
+extern unsigned long soap_ip; /* IP address of connecting party after soap_accept() */
+
+/* send routine */
+int soap_send(const char *buf);
+
+int soap_send_hex(int);
+int soap_send_base64(const unsigned char *, size_t);
+
+int soap_gethex();
+unsigned char *soap_getbase64(int *, int);
+
+extern int errmode ;
+
+int soap_pointer_lookup(const void *p, int t,struct soap_entry **np1);
+int soap_array_pointer_lookup(const void *p, int n, int t, struct soap_entry **np1);
+int soap_pointer_lookup_id(void *p, int t,struct soap_entry **np1);
+int soap_pointer_enter(const void *p, int t,struct soap_entry **np1);
+int soap_array_pointer_enter(const void *p, int t, struct soap_entry **np1);
+void soap_pointer_dump();
+void soap_begin_count();
+void soap_begin_send();
+int soap_end_send();
+
+void soap_embedded(const void *p, int t);
+int soap_reference(const void *p, int t);
+int soap_array_reference(const void *p, int n, int t);
+int soap_embedded_id(int id, const void *p, int t);
+int soap_is_embedded(struct soap_entry *);
+int soap_is_single(struct soap_entry *);
+int soap_is_multi(struct soap_entry *);
+void soap_set_embedded(struct soap_entry *);
+
+int soap_begin_recv();
+int soap_end_recv();
+int soap_getline(char *, int);
+
+void soap_send_namespaces();
+
+#ifdef WIN32
+#define atoll atoi
+#else
+extern void itoa(int, char*);
+#endif
+
+/* The hash table to hold IDs needs entries of the form: */
+struct soap_hash_entry
+{ int type;
+ size_t size;
+ void *link;
+ void *copy;
+ void *ptr;
+ int level;
+ struct soap_hash_entry *next;
+ char s[4];
+};
+
+extern struct soap_hash_entry *soap_hash[SOAP_IDHASH];
+
+extern int soap_alloced ; /* keep this info so we know that object must be init'ed */
+extern void *soap_malloc_chain ;
+
+void * soap_malloc(size_t n);
+void soap_dealloc(void *p);
+
+int soap_lookup_type(const char *id);
+
+void * soap_id_lookup(const char *id, void **p, int t, size_t n, int k);
+
+void * soap_id_forward(const char *id, void *p, int t, size_t n);
+
+void * soap_id_enter(const char *id, void *p, int t, size_t n, int k);
+void * soap_class_id_enter(const char *id, void *p, int t, const char *type);
+
+extern int soap_size(const int *, int);
+extern int soap_getoffsets(const char *, const int *, int *, int);
+extern int soap_getsize(const char *, const char *, int *);
+extern int soap_getsizes(const char *, int *, int);
+extern int soap_getposition(const char *, int *);
+extern char * soap_putsize(const char *, int);
+extern char * soap_putsizesoffsets(const char *, const int *, const int *, int);
+extern char * soap_putsizes(const char *, const int *, int);
+extern char * soap_putoffset(int);
+extern char * soap_putoffsets(const int *, int);
+extern char * soap_putposition();
+
+extern int soap_peeked ;
+extern int soap_body;
+
+/* Support routines (library) */
+int soap_ignore_element();
+
+int soap_closesock();
+
+void soap_init();
+void soap_begin();
+
+int soap_match_tag(const char*, const char *);
+
+int soap_match_array(const char*);
+
+void soap_end();
+void soap_free();
+void soap_destroy();
+
+void soap_element_begin_out(const char *tag, int id, const char *type);
+void soap_array_begin_out(const char *tag, int id, const char *type, const char *offset);
+
+void soap_element_end_out(const char *tag);
+
+void soap_element_ref(const char *tag, int id, int href);
+
+void soap_element_null(const char *tag, int id, const char *type);
+
+int soap_element_begin_in(const char *tag);
+
+int soap_element_end_in(const char *tag);
+
+int soap_peek_element();
+void soap_revert();
+
+int soap_ignore_element();
+
+void soap_convert_string_out(const char *s);
+
+int soap_match_namespace(const char*, const char*, int, int);
+
+void soap_pop_namespace();
+int soap_push_namespace(const char *,const char *);
+
+extern int soap_block_size;
+extern int soap_new_block();
+extern void *soap_push_block(size_t);
+extern void soap_pop_block();
+extern void soap_store_block(char *);
+
+void *soap_instantiate(int t, const char *);
+void soap_delete(void *, int, int);
+
+void soap_outint(const char *tag, int id, const int *p, const char *, int);
+int * soap_inint(const char *tag, int *p, const char *, int);
+
+void soap_outbyte(const char *tag, int id, const char *p, const char *, int);
+char * soap_inbyte(const char *tag, char *p, const char *, int);
+
+void soap_outlong(const char *tag, int id, const long *p, const char *, int);
+long * soap_inlong(const char *tag, long *p, const char *, int);
+
+void soap_outLONG64(const char *tag, int id, const LONG64 *p, const char *, int);
+LONG64 * soap_inLONG64(const char *tag, LONG64 *p, const char *, int);
+
+void soap_outshort(const char *tag, int id, const short *p, const char *, int);
+short * soap_inshort(const char *tag, short *p, const char *, int);
+
+void soap_outfloat(const char *tag, int id, const float *p, const char *, int);
+float * soap_infloat(const char *tag, float *p, const char *, int);
+
+void soap_outdouble(const char *tag, int id, const double *p, const char *, int);
+double * soap_indouble(const char *tag, double *p, const char *, int);
+
+void soap_outunsignedByte(const char *tag, int id, const unsigned char *p, const char *, int);
+unsigned char * soap_inunsignedByte(const char *tag, unsigned char *p, const char *, int);
+
+void soap_outunsignedShort(const char *tag, int id, const unsigned short *p, const char *, int);
+unsigned short * soap_inunsignedShort(const char *tag, unsigned short *p, const char *, int);
+
+void soap_outunsignedInt(const char *tag, int id, const unsigned int *p, const char *, int);
+unsigned int * soap_inunsignedInt(const char *tag, unsigned int *p, const char *, int);
+
+void soap_outunsignedLong(const char *tag, int id, const unsigned long *p, const char *, int);
+unsigned long * soap_inunsignedLong(const char *tag, unsigned long *p, const char *, int);
+
+void soap_outunsignedLONG64(const char *tag, int id, const ULONG64 *p, const char *, int);
+ULONG64 * soap_inunsignedLONG64(const char *tag, ULONG64 *p, const char *, int);
+
+void soap_outstring(const char *tag, int id, char *const*p, const char *, int);
+char ** soap_instring(const char *tag, char **p, const char *, int);
+
+void soap_outwstring(const char *tag, int id, wchar_t *const*p, const char *, int);
+wchar_t **soap_inwstring(const char *tag, wchar_t **p, const char *, int);
+
+void soap_outliteral(const char *tag, char *const*p);
+char **soap_inliteral(const char *tag, char **p);
+
+void soap_outwliteral(const char *tag, wchar_t *const*p);
+wchar_t **soap_inwliteral(const char *tag, wchar_t **p);
+
+#ifdef _TIME_H
+void soap_outdateTime(const char *tag, int id, const time_t *p, const char *, int);
+time_t *soap_indateTime(const char *tag, time_t *p, const char *, int);
+#endif
+
+char *soap_value();
+
+wchar soap_skip();
+
+/* 1. generate the prototypes and encode all types (base types are defined above) */
+
+void soap_envelope_begin_out();
+void soap_envelope_end_out();
+
+int soap_envelope_begin_in();
+int soap_envelope_end_in();
+
+void soap_body_begin_out();
+void soap_body_end_out();
+
+int soap_body_begin_in();
+int soap_body_end_in();
+
+int soap_recv_header();
+
+int soap_connect(const char *URL, const char *action);
+
+int soap_response();
+
+/* Methods dealing with the fault struct*/
+
+int soap_send_fault();
+
+int soap_recv_fault();
+
+extern void soap_print_fault(FILE*);
+extern void soap_print_fault_location(FILE*);
+
+#endif
diff --git a/bindings/gsoap/soapcpp b/bindings/gsoap/soapcpp
new file mode 100755
index 0000000..462b1b5
--- /dev/null
+++ b/bindings/gsoap/soapcpp
Binary files differ
diff --git a/bindings/gsoap/stdsoap.o b/bindings/gsoap/stdsoap.o
new file mode 100644
index 0000000..2e4bae8
--- /dev/null
+++ b/bindings/gsoap/stdsoap.o
Binary files differ
diff --git a/bindings/gsoap/testclient.cpp b/bindings/gsoap/testclient.cpp
new file mode 100644
index 0000000..b0d4d94
--- /dev/null
+++ b/bindings/gsoap/testclient.cpp
@@ -0,0 +1,76 @@
+#include "soapH.h"
+#include <iostream.h>
+
+char server[] = "http://localhost:18083";
+
+int main(int argc, char **argv) {
+ xsd__int mgr;
+ xsd__int noop;
+
+ if (soap_call_sword__SWMgr_new(server, NULL, mgr)) {
+ soap_print_fault(stderr);
+ soap_print_fault_location(stderr);
+ exit(-1);
+ }
+
+ xsd__int modIt;
+ if (soap_call_sword__SWMgr_getModulesIterator(server, NULL, mgr, modIt)) {
+ soap_print_fault(stderr);
+ soap_print_fault_location(stderr);
+ exit(-1);
+ }
+
+ xsd__int module;
+ do {
+ if (soap_call_sword__ModList_iterator_val(server, NULL, modIt, module)) {
+ soap_print_fault(stderr);
+ soap_print_fault_location(stderr);
+ exit(-1);
+ }
+
+
+ if (module) {
+ char *name;
+ char *desc;
+ if (soap_call_sword__SWModule_getName(server, NULL, module, name)) {
+ soap_print_fault(stderr);
+ soap_print_fault_location(stderr);
+ exit(-1);
+ }
+ if (soap_call_sword__SWModule_getDescription(server, NULL, module, desc)) {
+ soap_print_fault(stderr);
+ soap_print_fault_location(stderr);
+ exit(-1);
+ }
+
+ cout << "[" << name << "] " << desc << endl;
+
+ if (soap_call_sword__ModList_iterator_next(server, NULL, modIt, noop)) {
+ soap_print_fault(stderr);
+ soap_print_fault_location(stderr);
+ exit(-1);
+ }
+ }
+
+
+ } while (module);
+
+ if (soap_call_sword__SWMgr_delete(server, NULL, mgr, noop)) {
+ soap_print_fault(stderr);
+ soap_print_fault_location(stderr);
+ exit(-1);
+ }
+ char *text;
+ if (soap_call_sword__Quick_getModuleRenderText(server, NULL, "KJV", "jas1:19", text)) {
+ soap_print_fault(stderr);
+ soap_print_fault_location(stderr);
+ exit(-1);
+ }
+ cout << text << endl;
+
+ printf("success: %d\n", mgr);
+ soap_free();
+ return 0;
+}
+
+#include "sword.nsmap"