📄 types.h
字号:
/*types.hWSDL parser and converter to gSOAP header file format--------------------------------------------------------------------------------gSOAP XML Web services toolsCopyright (C) 2001-2005, Robert van Engelen, Genivia Inc. All Rights Reserved.This software is released under one of the following two licenses:GPL or Genivia's license for commercial use.--------------------------------------------------------------------------------GPL license.This program is free software; you can redistribute it and/or modify it underthe terms of the GNU General Public License as published by the Free SoftwareFoundation; either version 2 of the License, or (at your option) any laterversion.This program is distributed in the hope that it will be useful, but WITHOUT ANYWARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR APARTICULAR PURPOSE. See the GNU General Public License for more details.You should have received a copy of the GNU General Public License along withthis program; if not, write to the Free Software Foundation, Inc., 59 TemplePlace, Suite 330, Boston, MA 02111-1307 USAAuthor 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; 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); 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); 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 *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_basetype(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__sequence>&); void gen(const char *URI, const vector<xs__sequence*>&); void gen(const char *URI, const vector<xs__element>&); void gen(const char *URI, const vector<xs__group>&); void gen(const char *URI, const vector<xs__choice>&); void gen(const char *URI, const vector<xs__any>&); 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&); void gen(const char *URI, const xs__sequence&); void gen(const char *URI, const xs__element&); void gen(const char *URI, const xs__group&); void gen(const char *URI, const char *name, const xs__choice&); void gen(const char *URI, const xs__any&); void gen(const char *URI, const xs__anyAttribute&); 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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -