forked from ArduPilot/gSOAP
-
Notifications
You must be signed in to change notification settings - Fork 0
Modified gSOAP library for use by Ardupilot
License
Unknown, Unknown licenses found
Licenses found
Unknown
LICENSE.txt
Unknown
license.pdf
csrg3243/gSOAP
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
================================================================================ Thanks for using gSOAP! The gSOAP toolkit provides a cross-platform software development toolkit for C and C++ server and client Web service applications, and simplifies the overall use of XML in any type of application. The toolkit supports SOAP 1.1/1.2 RPC encoding and document/literal styles, WSDL 1.1, MTOM/MIME/DIME attachments (streaming), SOAP-over-UDP, request-response and one-way messaging. The toolkit also supports WS-Addressing and WS-Security, with several other WS-* available or under development. See the official open-source gSOAP website http://gsoap2.sourceforge.net for project status and latest news. * The gSOAP 'soapcpp2' compiler and code generator and 'stdsoap2' runtime engine are stable since version release 2.1.3. * The gSOAP 'wsdl2h' WSDL/schema parser and code generator is stable since wsdl2h version release 1.1.0. The 'wsdl2h' tool fully supports WSDL 1.1, XML schemas, WS-Policy, and other WS-* protocols (details in the fact sheet). The software is provided "as is", without any warranty. However, gSOAP has been extensively field-tested in production-quality software development. We continue to improve gSOAP and add new features. See NOTES.txt for distributed notes and an overview of the package contents. See INSTALL.txt for installation instructions. See LICENSE.txt for software licensing. ================================================================================ WHAT'S COOL? ================================================================================ The gSOAP 'wsdl2h' tool is a gSOAP application itself, which demonstrates the capabilities of the generic XML handling by the toolkit to parse WSDL, XML schemas, and SOAP/XML. The gSOAP toolkit supports streaming technologies to expedite SOAP/XML and MTOM/MIME attachment transfers of potentially unlimited data lengths. The gSOAP toolkit is the only toolkit that supports the serialization of native C and C++ data types directly in XML. You can use it to export and import your application data in XML without having to write wrapper routines. The gSOAP toolkit ensures as small memory footprint. XML is a processed as a transient format and not buffered. Many optimizations have been applied to reduce resource requirements and to expedite XML parsing. The gSOAP toolkit provides stand-alone HTTP(S) web server functionality as well as Apache mod and IIS hooks (located in gsoap/mod_gsoap). Also CGI and FastCGI are supported. A web server example demonstrating the stand-alone functionality is included in the package. ================================================================================ FEATURES ================================================================================ XML data binding tools for C/C++ XML schema <=> C/C++ type binding means XML and C/C++ data is type safe XML streaming auto-serialization of C/C++ data (with optional use of DOM) XML-RPC from/to JSON from/to C/C++ serialization (also in streaming mode) No need to alter C/C++ types for serialization (declare type as 'volatile') WSDL 1.1/2.0, XSD 1.0/1.1, SOAP 1.1/1.2 compliant REST HTTP(S) 1.0/1.1 operations (GET,PUT,POST etc) for XML, JSON, etc Send and recieve XML over sockets, file FD, and C++ streams WS-I Basic Profile 1.0a, 1.1, and 1.2 compliant W3C schema patterns for data binding full test pattern coverage RSS 0.91, 0.92, 2.0 XML support MIME and MTOM attachment support (also in streaming mode) WS-Security XML authentication, signatures, encryption (also in streaming mode) WS-Policy 1.2, 1.5 and WS-SecurityPolicy 1.2 compliant WS-Addressing 2003/03, 2004/03, 2005/03 compliant WS-ReliableMessaging 1.0 and 1.1 compliant WS-Discovery 1.0/1.1 UDDI v2 API NTLM authentication HTTP basic and digest authentication SSL/TLS communications with SSL session caching (OpenSSL or GNUTLS) Proxy and proxy authentication support Compression (HTTP compression and zlib) IPv4 and IPv6, including direct TCP and UDP data transfer SOAP-over-UDP Apache 1.x and 2.0 modules IIS (ISAPI) and WinInet modules CGI and FastCGI support Stand-alone Web server included (multithreaded, SSL, compression) Integrated memory management with deallocation and leak detection Plug-ins for additional capabilities Internationalization/localization support (UTF8, UCS4, MB encodings, etc) WSDL/XSD conversion to C or C++ and vice versa Portable to small devices (WinCE, Palm, Symbian, VxWorks, Andriod, iPhone) Auto-test server code generation for (dummy) server testing Automatic XML document and message generation from WSDL and XSD C/C++ (cyclic) object graph auto-serialization (with SOAP id-href encoding) STL container auto-serialization and custom C++ container auto-serialization Over 40 example client and server applications included ================================================================================ PACKAGE ================================================================================ This distribution package contains platform-independent source code. Pre-built 'soapcpp2' and 'wsdl2h' binaries are included for the following platforms: * Win32 i386 compatible * MAC OS X The binaries are located in 'gsoap/bin'. Important: these 'wsdl2h' binaries use the default configuration without SSL support (no HTTPS site access). To configure and build the toolkit binaries and libraries, please see the installation instructions in the 'INSTALLATION' section below. ================================================================================ GETTING STARTED ================================================================================ Follow the installation instructions in INSTALL.txt first. The gSOAP 'wsdl2h' tool converts WSDLs into a gSOAP header file for processing with the gSOAP code gnerator 'soapcpp2' to generate XML serialization, stubs, and skeletons code to build Web services applications. Use 'wsdl2h' followed by 'soapcpp2' to translate an entire set of WSDL and XML schemas into representative C or C++ data structures and associated XML parsers. You can also use the gSOAP 'soapcpp2' tool directly on existing C/C++ data structure declarations to create XML serialization routines for these types to simplify the storage of data in XML. Example translation of WSDL to code in two steps: $ wsdl2h -s -o calc.h http://www.cs.fsu.edu/~engelen/calc.wsdl $ soapcpp2 -CL -I/path/to/gsoap/import calc.h The 'calc.h' header file contains the services and XML schema types represented in C/C++, together with other useful information copied from the WSDL related to the service. Run Doxygen on it to generate a nice set of pages. Do not include the wsdl2h-generated 'calc.h' header file directly into your code (the declarations are replicated in the generated code). The header file is processed by the gSOAP stub compiler 'soapcpp2' to generate the following files for your project: soapClient.cpp client-side stub routines for service invocation soapServer.cpp server-side skeleton routines for server development soapC.cpp C/C++ parameter marshalling code calc.nsmap An XML-to-C/C++ namespare mapping table To compile a client, all you need to do is to compile and link 'soapC.cpp', 'soapClient.cpp', and 'stdsoap2.cpp' (or the installed libgsoap++, see INSTALLATION) with your code. To access the service in your code: #include "soapH.h" #include "calc.nsmap" main() { struct soap *soap = soap_new(); // alloc 'soap' engine context double result; if (soap_call_ns2__add(soap, NULL, NULL, 1.0, 2.0, result) == SOAP_OK) std::cout << "The sum of 1.0 and 2.0 is " << result << std::endl; else soap_stream_fault(soap, std::cerr); soap_destroy(soap); // dealloc serialization data soap_end(soap); // dealloc temp data soap_free(soap); // dealloc 'soap' engine context } First, this imports all soapcpp-generated definitions and the namespace mapping table. Then the soap_call_ns2__add() invokes the service. This function is generated from the calc.h file by soapcpp2. The calc.h file includes instructions on what functions to call. To develop a C++ client application based on C++ proxy objects rather than C-like functions, use 'soapcpp2' option -j: $ wsdl2h -s -o calc.h http://www.cs.fsu.edu/~engelen/calc.wsdl $ soapcpp2 -j -CL -I/path/to/gsoap/import calc.h This generates 'soapcalcProxy.h' and 'soapcalcProxy.cpp' with a calcProxy class with service methods that you can use to invoke services. For example: #include "soapcalcProxy.h" #include "calc.nsmap" main() { calcProxy service; double result; if (service.add(1.0, 2.0, result) == SOAP_OK) std::cout << "The sum of 1.0 and 2.0 is " << result << std::endl; else service.soap_stream_fault(std::cerr); service.destroy(); // dealloc serialization and temp data } Compile the above program and link with 'soapC.cpp', 'soapcalcProxy.cpp', and 'stdsoap2.cpp' (or -lgsoap++). To develop a C client, use 'wsdl2h' option -c to generate pure C code. There are many options that you can use depending on the need to develop C applications, C++ with or without STL, or C++ proxy and server objects. In addition, the XML schema type mapping is defined by 'typemap.dat', located in the project root and 'WS' folders. The 'typemap.dat' file is used to customize the 'wsdl2h' output. It is important to use this file for larger projects that depend in WS-* protocols, such as WS-Addressing and WS-Security. More information about the 'wsdl2h' and 'soapcpp2' tools and their options can be found in the gSOAP documentation and the Quick How-To page on the gSOAP Web site, see: http://gsoap2.sourceforge.net See also the 'gsoap/wsdl/README.txt' for more details on the WSDL parser and installation. The 'gsoap/bin' folder includes pre-built 'soapcpp2' and 'wsdlh2' executables for various platforms. ================================================================================ BUILD NOTES ================================================================================ QNX On QNX the bison.simple file is located in $QNX_HOST/usr/share/bison.simple Update your .profile to include: export BISON_SIMPLE=$QNX_HOST/usr/share/bison/bison.simple export BISON_HAIRY=$QNX_HOST/usr/share/bison/bison.hairy WIN32 Bison 1.6 can crash on Win32 systems if YYINITDEPTH is too small Compile with /DYYINITDEPTH=5000 ================================================================================ CHANGELOG ================================================================================ Visit http://www.cs.fsu.edu/~engelen/changelog.html to view the latest changes. ================================================================================ LICENSE ================================================================================ See LICENSE.txt ================================================================================ COPYRIGHT ================================================================================ Copyright (C) 2000-2015 Robert van Engelen, Genivia, Inc. All Rights Reserved. ================================================================================ USE RESTRICTIONS ================================================================================ You may not: (i) transfer rights to gSOAP or claim authorship; or (ii) remove any product identification, copyright, proprietary notices or labels from gSOAP. ================================================================================ WARRANTY ================================================================================ GENIVIA INC. EXPRESSLY DISCLAIMS ALL WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT OF THIRD PARTY INTELLECTUAL PROPERTY RIGHTS, AND ANY WARRANTY THAT MAY ARISE BY REASON OF TRADE USAGE, CUSTOM, OR COURSE OF DEALING. WITHOUT LIMITING THE FOREGOING, YOU ACKNOWLEDGE THAT THE SOFTWARE IS PROVIDED "AS IS" AND THAT GENIVIA INC. DO NOT WARRANT THE SOFTWARE WILL RUN UNINTERRUPTED OR ERROR FREE. LIMITED LIABILITY: THE ENTIRE RISK AS TO RESULTS AND PERFORMANCE OF THE SOFTWARE IS ASSUMED BY YOU. UNDER NO CIRCUMSTANCES WILL GENIVIA INC. BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY KIND OR NATURE WHATSOEVER, WHETHER BASED ON CONTRACT, WARRANTY, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, ARISING OUT OF OR IN ANY WAY RELATED TO THE SOFTWARE, EVEN IF GENIVIA INC. HAS BEEN ADVISED ON THE POSSIBILITY OF SUCH DAMAGE OR IF SUCH DAMAGE COULD HAVE BEEN REASONABLY FORESEEN, AND NOTWITHSTANDING ANY FAILURE OF ESSENTIAL PURPOSE OF ANY EXCLUSIVE REMEDY PROVIDED. SUCH LIMITATION ON DAMAGES INCLUDES, BUT IS NOT LIMITED TO, DAMAGES FOR LOSS OF GOODWILL, LOST PROFITS, LOSS OF DATA OR SOFTWARE, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION OR IMPAIRMENT OF OTHER GOODS. IN NO EVENT WILL GENIVIA INC. BE LIABLE FOR THE COSTS OF PROCUREMENT OF SUBSTITUTE SOFTWARE OR SERVICES. YOU ACKNOWLEDGE THAT THIS SOFTWARE IS NOT DESIGNED FOR USE IN ON-LINE EQUIPMENT IN HAZARDOUS ENVIRONMENTS SUCH AS OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR CONTROL, OR LIFE-CRITICAL APPLICATIONS. GENIVIA INC. EXPRESSLY DISCLAIM ANY LIABILITY RESULTING FROM USE OF THE SOFTWARE IN ANY SUCH ON-LINE EQUIPMENT IN HAZARDOUS ENVIRONMENTS AND ACCEPTS NO LIABILITY IN RESPECT OF ANY ACTIONS OR CLAIMS BASED ON THE USE OF THE SOFTWARE IN ANY SUCH ON-LINE EQUIPMENT IN HAZARDOUS ENVIRONMENTS BY YOU. FOR PURPOSES OF THIS PARAGRAPH, THE TERM "LIFE-CRITICAL APPLICATION" MEANS AN APPLICATION IN WHICH THE FUNCTIONING OR MALFUNCTIONING OF THE SOFTWARE MAY RESULT DIRECTLY OR INDIRECTLY IN PHYSICAL INJURY OR LOSS OF HUMAN LIFE. ================================================================================ EXTERNAL THIRD-PARTY LIBRARIES ================================================================================ The gSOAP toolkit is self-contained and does not require any third-party software to run in its standard configuration. When compression and SSL encryption are required the Zlib and OpenSSL libraries must be installed. To build the gSOAP 'soapcpp2' compiler, you must have Bison and Flex installed or the older Yacc and Lex equivalents. Note that licensing differs for Flex versus Lex, and Bison versus Yacc. Win32 builds of clients and services requires winsock.dll. To do this in Visual C++ 6.0, go to "Project", "settings", select the "Link" tab (the project file needs to be selected in the file view) and add "wsock32.lib" to the "Object/library modules" entry. The distribution contains a Visual Studio 2005 project example in the 'samples/calc_vs2005' folder with the necessary project settings to link libraries and automatically invoke to soapcpp2 compiler as a custom build. ================================================================================ DISCLAIMER ================================================================================ WE PROVIDE YOU WITH "REAL-WORLD" EXAMPLES BUT WE CANNOT GUARANTEE THAT ALL CLIENT EXAMPLES CAN CONNECT TO THIRD PARTY WEB SERVICES WHEN THESE SERVICES ARE DOWN OR HAVE BEEN REMOVED. ================================================================================
About
Modified gSOAP library for use by Ardupilot
Resources
License
Unknown, Unknown licenses found
Licenses found
Unknown
LICENSE.txt
Unknown
license.pdf
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published
Languages
- HTML 56.0%
- C 15.4%
- C++ 14.9%
- Objective-C 4.9%
- Makefile 3.4%
- CSS 1.4%
- Other 4.0%