Mercurial > repos > ktnyt > gembassy
diff GEMBASSY-1.0.3/gsoap/wsdl/service.h @ 0:8300eb051bea draft
Initial upload
author | ktnyt |
---|---|
date | Fri, 26 Jun 2015 05:19:29 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/GEMBASSY-1.0.3/gsoap/wsdl/service.h Fri Jun 26 05:19:29 2015 -0400 @@ -0,0 +1,130 @@ +/* + service.h + + Service structures + +-------------------------------------------------------------------------------- +gSOAP XML Web services tools +Copyright (C) 2001-2012, Robert van Engelen, Genivia Inc. All Rights Reserved. +This software is released under one of the following licenses: +GPL or Genivia's license for commercial use. +-------------------------------------------------------------------------------- +GPL license. + +This program is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free Software +Foundation; either version 2 of the License, or (at your option) any later +version. + +This program is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A +PARTICULAR PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with +this program; if not, write to the Free Software Foundation, Inc., 59 Temple +Place, Suite 330, Boston, MA 02111-1307 USA + +Author contact information: +engelen@genivia.com / engelen@acm.org +-------------------------------------------------------------------------------- +A commercial use license is available from Genivia, Inc., contact@genivia.com +-------------------------------------------------------------------------------- + +*/ + +#ifndef SERVICE_H +#define SERVICE_H + +#include "includes.h" +#include "wsdlH.h" + +class Message +{ public: + const char *name; + const char *URI; + soap__styleChoice style; + soap__useChoice use; + const char *encodingStyle; + const char *action; + wsdl__message *message; + xs__element *element; + const char *body_parts; + wsdl__part *part; + bool mustUnderstand; + vector<soap__header> header; + vector<wsoap__header> wheader; + mime__multipartRelated *multipartRelated; // MIME + mime__content *content; // REST/MIME + const char *layout; // DIME + const char *documentation; + const char *ext_documentation; + vector<const wsp__Policy*> policy; + void generate(Types&, const char *sep, bool anonymous, bool remark, bool response, bool optional); +}; + +typedef map<const char*, Message*, ltstr> MapOfStringToMessage; + +class Operation +{ public: + const char *prefix; + const char *URI; + const char *name; + const char *mep; // WSDL 2.0 + const char *protocol; + soap__styleChoice style; + const char *parameterOrder; + const char *action; + const char *input_name; + const char *output_name; + Message *input; // name, use, and parts + Message *output; // name, use, and parts + vector<Message*> infault; + vector<Message*> outfault; + const char *documentation; + const char *operation_documentation; + vector<const wsp__Policy*> policy; + void generate(Types&, Service&); +}; + +class Service +{ public: + const char *prefix; // a gSOAP service has a unique namespace + const char *URI; + const char *name; // binding name + const char *type; // portType + const char *transport; // binding transport + SetOfString location; // WSDL may specify multiple locations via <Port> -> <Binding> + vector<Operation*> operation; + MapOfStringToMessage header; + MapOfStringToMessage headerfault; + MapOfStringToMessage fault; + MapOfStringToString service_documentation; + MapOfStringToString port_documentation; + MapOfStringToString binding_documentation; + vector<const wsp__Policy*> policy; + VectorOfString imports; + Service(); + void generate(Types&); + void add_import(const char*); + void del_import(const char*); +}; + +typedef map<const char*, Service*, ltstr> MapOfStringToService; + +class Definitions +{ public: + Types types; // to process schema type information + MapOfStringToService services; // service information gathered + bool soap12; + Definitions(); + void collect(const wsdl__definitions&); + void compile(const wsdl__definitions&); + private: + void analyze(const wsdl__definitions&); + void analyze_headers(const wsdl__definitions&, Service*, wsdl__ext_ioput*, wsdl__ext_ioput*); + void analyze_faults(const wsdl__definitions&, Service*, Operation*, vector<wsdl__ext_operation>::const_iterator&); + Message *analyze_fault(const wsdl__definitions&, Service*, const wsdl__ext_fault&); + void generate(); +}; + +#endif