/home/martin/workspace/OpenStreetNav/src/xmlparse/xml/osm-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 OSM_PSKEL_HXX
00035 #define OSM_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 osm_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 
00064 class bound_pskel;
00065 class node_pskel;
00066 class way_pskel;
00067 class relation_pskel;
00068 class osm_pskel: public ::xml_schema::complex_content
00069 {
00070   public:
00071   // Parser callbacks. Override them in your implementation.
00072   //
00073   // virtual void
00074   // pre ();
00075 
00076   virtual void
00077   bound ();
00078 
00079   virtual void
00080   node (const osm::Node&);
00081 
00082   virtual void
00083   way (const osm::Way&);
00084 
00085   virtual void
00086   relation (const osm::Relation&);
00087 
00088   virtual void
00089   version (const ::std::string&);
00090 
00091   virtual void
00092   generator (const ::std::string&);
00093 
00094   virtual void
00095   post_osm ();
00096 
00097   // Parser construction API.
00098   //
00099   void
00100   bound_parser (::bound_pskel&);
00101 
00102   void
00103   node_parser (::node_pskel&);
00104 
00105   void
00106   way_parser (::way_pskel&);
00107 
00108   void
00109   relation_parser (::relation_pskel&);
00110 
00111   void
00112   version_parser (::xml_schema::string_pskel&);
00113 
00114   void
00115   generator_parser (::xml_schema::string_pskel&);
00116 
00117   void
00118   parsers (::bound_pskel& /* bound */,
00119            ::node_pskel& /* node */,
00120            ::way_pskel& /* way */,
00121            ::relation_pskel& /* relation */,
00122            ::xml_schema::string_pskel& /* version */,
00123            ::xml_schema::string_pskel& /* generator */);
00124 
00125   // Constructor.
00126   //
00127   osm_pskel ();
00128 
00129   // Implementation.
00130   //
00131   protected:
00132   virtual bool
00133   _start_element_impl (const ::xml_schema::ro_string&,
00134                        const ::xml_schema::ro_string&,
00135                        const ::xml_schema::ro_string*);
00136 
00137   virtual bool
00138   _end_element_impl (const ::xml_schema::ro_string&,
00139                      const ::xml_schema::ro_string&);
00140 
00141   virtual bool
00142   _attribute_impl_phase_one (const ::xml_schema::ro_string&,
00143                              const ::xml_schema::ro_string&,
00144                              const ::xml_schema::ro_string&);
00145 
00146 
00147   protected:
00148   ::bound_pskel* bound_parser_;
00149   ::node_pskel* node_parser_;
00150   ::way_pskel* way_parser_;
00151   ::relation_pskel* relation_parser_;
00152   ::xml_schema::string_pskel* version_parser_;
00153   ::xml_schema::string_pskel* generator_parser_;
00154 
00155   protected:
00156   struct v_state_descr_
00157   {
00158     void (::osm_pskel::*func) (
00159       unsigned long&,
00160       unsigned long&,
00161       const ::xml_schema::ro_string&,
00162       const ::xml_schema::ro_string&,
00163       const ::xml_schema::ro_string*,
00164       bool);
00165     unsigned long state;
00166     unsigned long count;
00167   };
00168 
00169   struct v_state_
00170   {
00171     v_state_descr_ data[3UL];
00172     unsigned long size;
00173   };
00174 
00175   v_state_ v_state_first_;
00176   ::xsd::cxx::parser::pod_stack v_state_stack_;
00177 
00178   virtual void
00179   _pre_e_validate ();
00180 
00181   virtual void
00182   _post_e_validate ();
00183 
00184   void
00185   sequence_0 (unsigned long& state,
00186               unsigned long& count,
00187               const ::xml_schema::ro_string& ns,
00188               const ::xml_schema::ro_string& n,
00189               const ::xml_schema::ro_string* t,
00190               bool start);
00191 
00192   void
00193   choice_0 (unsigned long& state,
00194             unsigned long& count,
00195             const ::xml_schema::ro_string& ns,
00196             const ::xml_schema::ro_string& n,
00197             const ::xml_schema::ro_string* t,
00198             bool start);
00199 
00200   protected:
00201   struct v_state_attr_
00202   {
00203     bool version;
00204   };
00205 
00206   v_state_attr_ v_state_attr_first_;
00207   ::xsd::cxx::parser::pod_stack v_state_attr_stack_;
00208 
00209   virtual void
00210   _pre_a_validate ();
00211 
00212   virtual void
00213   _post_a_validate ();
00214 };
00215 
00216 #include <xsd/cxx/post.hxx>
00217 
00218 // Begin epilogue.
00219 //
00220 //
00221 // End epilogue.
00222 
00223 #endif // OSM_PSKEL_HXX
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines