diff GEMBASSY-1.0.3/gsoap/wsdl/types.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/types.h	Fri Jun 26 05:19:29 2015 -0400
@@ -0,0 +1,116 @@
+/*
+	types.h
+
+	WSDL parser and converter to gSOAP header file format
+
+--------------------------------------------------------------------------------
+gSOAP XML Web services tools
+Copyright (C) 2000-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 TYPES_H
+#define TYPES_H
+
+#include "includes.h"
+#include "wsdlH.h"
+
+enum Type { NONE, CLASS, ENUM, STRUCT, TYPEDEF };
+
+enum Lookup { NOLOOKUP, LOOKUP };
+
+class Types
+{ public:
+    SetOfString		knames;	// keywords, reserved words, class names, and typedefs
+    MapOfStringToString modtypemap;
+    MapOfStringToString deftypemap;
+    MapOfStringToString usetypemap;
+    MapOfStringToString ptrtypemap;
+    MapOfStringToString eqvtypemap;
+    MapOfPairToString	qnames;	// (URI,name) -> name
+    MapOfStringToString	uris;	// URI -> prefix
+    MapOfStringToNum	syms;	// prefix -> count (ns1, ns2, ...)
+    SetOfString		rnames;	// reserved symbolic names to avoid clashes
+    SetOfString		onames;	// service operator names
+    MapOfPairToString	enames;	// enum symbolic names
+    VectorOfString	scope;	// de-anonymizer stack
+    int snum; // struct name index, TODO: consider map of URI to count per URI
+    int unum; // union name index, TODO: consider map of URI to count per URI
+    int gnum; // enum name index, TODO: consider map of URI to count per URI
+    bool with_union;
+    bool fake_union;
+    Types();
+    void init();
+    int read(const char *file);
+  private:
+    const char *fname(const char *prefix, const char *URI, const char *qname, SetOfString *reserved, enum Lookup lookup, bool isqname);
+  public:
+    const char *aname(const char *prefix, const char *URI, const char *qname);
+    const char *cname(const char *prefix, const char *URI, const char *qname);
+    const char *tname(const char *prefix, const char *URI, const char *qname);
+    const char *tnameptr(bool, const char *prefix, const char *URI, const char *qname);
+    const char *pname(bool flag, const char *prefix, const char *URI, const char *qname);
+    const char *oname(const char *prefix, const char *URI, const char *qname);
+    const char *ename(const char *type, const char *value, bool isqname);
+    const char *sname(const char *URI, const char *name);
+    const char *gname(const char *URI, const char *name);
+    const char *uname(const char *URI);
+    const char *nsprefix(const char *prefix, const char *URI);
+    const char *prefix(const char *name);
+    const char *uri(const char *name);
+    const char *deftname(enum Type type, const char *pointer, bool is_pointer, const char *prefix, const char *URI, const char *qname);
+    bool is_defined(const char *prefix, const char *URI, const char *qname);
+    bool is_nillable(const xs__element& element);
+    bool is_basetypeforunion(const char *prefix, const char *URI, const char *type);
+    bool is_basetype(const char *prefix, const char *URI, const char *type);
+    void dump(FILE*);
+    void define(const char *URI, const char *name, const xs__complexType&);
+    void gen(const char *URI, const vector<xs__attribute>&);
+    void gen(const char *URI, const vector<xs__attributeGroup>&);
+    void gen(const char *URI, const vector<xs__all>&);
+    void gen(const char *URI, const vector<xs__element>&, const char *minOccurs, const char *maxOccurs);
+    void gen(const char *URI, const vector<xs__group>&);
+    void gen(const char *URI, const vector<xs__any>&);
+    void gen(const char *URI, const vector<xs__contents>&);
+    void gen(const char *URI, const char *name, const xs__simpleType&, bool anonymous);
+    void gen(const char *URI, const char *name, const xs__complexType&, bool anonymous);
+    void gen(const char *URI, const xs__attribute&);
+    void gen(const char *URI, const xs__all&, const char *minOccurs, const char *maxOccurs);
+    void gen(const char *URI, const xs__seqchoice&, const char *minOccurs, const char *maxOccurs);
+    void gen(const char *URI, const char *name, const xs__seqchoice&, const char *minOccurs, const char *maxOccurs);
+    void gen(const char *URI, const xs__element&, bool substok, const char *minOccurs, const char *maxOccurs);
+    void gen(const char *URI, const xs__group&, const char *minOccurs, const char *maxOccurs);
+    void gen(const char *URI, const xs__any&, const char *minOccurs, const char *maxOccurs);
+    void gen(const char *URI, const xs__anyAttribute&);
+    void gen_inh(const char *URI, const xs__complexType *complexType, bool anonymous);
+    void gen_soap_array(const char *name, const char *t, const char *item, const char *type);
+    void gen_substitutions(const char *URI, const xs__element &element);
+    void document(const xs__annotation*);
+    void modify(const char *name);
+    const char *format(const char *text);
+};
+
+#endif