/home/martin/workspace/OpenStreetNav/src/xmlparse/member-pskel.hxx
Go to the documentation of this file.
00001 // Copyright (C) 2005-2010 Code Synthesis Tools CC
00002 //
00003 // This program was generated by CodeSynthesis XSD, an XML Schema to
00004 // C++ data binding compiler.
00005 //
00006 // This program is free software; you can redistribute it and/or modify
00007 // it under the terms of the GNU General Public License version 2 as
00008 // published by the Free Software Foundation.
00009 //
00010 // This program is distributed in the hope that it will be useful,
00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013 // GNU General Public License for more details.
00014 //
00015 // You should have received a copy of the GNU General Public License
00016 // along with this program; if not, write to the Free Software
00017 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
00018 //
00019 // In addition, as a special exception, Code Synthesis Tools CC gives
00020 // permission to link this program with the Xerces-C++ library (or with
00021 // modified versions of Xerces-C++ that use the same license as Xerces-C++),
00022 // and distribute linked combinations including the two. You must obey
00023 // the GNU General Public License version 2 in all respects for all of
00024 // the code used other than Xerces-C++. If you modify this copy of the
00025 // program, you may extend this exception to your version of the program,
00026 // but you are not obligated to do so. If you do not wish to do so, delete
00027 // this exception statement from your version.
00028 //
00029 // Furthermore, Code Synthesis Tools CC makes a special exception for
00030 // the Free/Libre and Open Source Software (FLOSS) which is described
00031 // in the accompanying FLOSSE file.
00032 //
00033 
00034 #ifndef MEMBER_PSKEL_HXX
00035 #define MEMBER_PSKEL_HXX
00036 
00037 // Begin prologue.
00038 //
00039 //
00040 // End prologue.
00041 
00042 #include <xsd/cxx/config.hxx>
00043 
00044 #if (XSD_INT_VERSION != 3030000L)
00045 #error XSD runtime version mismatch
00046 #endif
00047 
00048 #include <xsd/cxx/pre.hxx>
00049 
00050 // Forward declarations
00051 //
00052 class member_pskel;
00053 
00054 #ifndef XSD_USE_CHAR
00055 #define XSD_USE_CHAR
00056 #endif
00057 
00058 #ifndef XSD_CXX_PARSER_USE_CHAR
00059 #define XSD_CXX_PARSER_USE_CHAR
00060 #endif
00061 
00062 #include "xml_schema-pskel.hxx"
00063 #include "../elements/osmelements.h"
00064 
00065 class member_type_pskel;
00066 class member_pskel: public ::xml_schema::complex_content
00067 {
00068   public:
00069   // Parser callbacks. Override them in your implementation.
00070   //
00071   // virtual void
00072   // pre ();
00073 
00074   virtual void
00075   type (const osm::ObjectType&);
00076 
00077   virtual void
00078   ref (long long);
00079 
00080   virtual void
00081   role (const ::std::string&);
00082 
00083   virtual std::pair<std::string, std::shared_ptr<osm::Element> >
00084   post_member () = 0;
00085 
00086   // Parser construction API.
00087   //
00088   void
00089   type_parser (::member_type_pskel&);
00090 
00091   void
00092   ref_parser (::xml_schema::long_pskel&);
00093 
00094   void
00095   role_parser (::xml_schema::string_pskel&);
00096 
00097   void
00098   parsers (::member_type_pskel& /* type */,
00099            ::xml_schema::long_pskel& /* ref */,
00100            ::xml_schema::string_pskel& /* role */);
00101 
00102   // Constructor.
00103   //
00104   member_pskel ();
00105 
00106   // Implementation.
00107   //
00108   protected:
00109   virtual bool
00110   _attribute_impl_phase_one (const ::xml_schema::ro_string&,
00111                              const ::xml_schema::ro_string&,
00112                              const ::xml_schema::ro_string&);
00113 
00114 
00115   protected:
00116   ::member_type_pskel* type_parser_;
00117   ::xml_schema::long_pskel* ref_parser_;
00118   ::xml_schema::string_pskel* role_parser_;
00119 
00120   protected:
00121   struct v_state_attr_
00122   {
00123     bool type;
00124     bool ref;
00125   };
00126 
00127   v_state_attr_ v_state_attr_first_;
00128   ::xsd::cxx::parser::pod_stack v_state_attr_stack_;
00129 
00130   virtual void
00131   _pre_a_validate ();
00132 
00133   virtual void
00134   _post_a_validate ();
00135 };
00136 
00137 #include <xsd/cxx/post.hxx>
00138 
00139 // Begin epilogue.
00140 //
00141 //
00142 // End epilogue.
00143 
00144 #endif // MEMBER_PSKEL_HXX
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines