diff options
Diffstat (limited to 'modules/CIAO/tools/Config_Handlers/XMLSchema/Traversal.hpp')
-rw-r--r-- | modules/CIAO/tools/Config_Handlers/XMLSchema/Traversal.hpp | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/modules/CIAO/tools/Config_Handlers/XMLSchema/Traversal.hpp b/modules/CIAO/tools/Config_Handlers/XMLSchema/Traversal.hpp new file mode 100644 index 00000000000..24fa7a9eb6e --- /dev/null +++ b/modules/CIAO/tools/Config_Handlers/XMLSchema/Traversal.hpp @@ -0,0 +1,77 @@ +// file : XMLSchema/Traversal.hpp +// author : Boris Kolpackov <boris@dre.vanderbilt.edu> +// cvs-id : $Id$ + +#ifndef XMLSCHEMA_TRAVERSAL_HPP +#define XMLSCHEMA_TRAVERSAL_HPP + +#include <XSCRT/Traversal.hpp> +#include <XMLSchema/Types.hpp> + +namespace XMLSchema +{ + namespace Traversal + { + // Automatic traversal of IDREFs. + // + // + struct IDREF : + XSCRT::Traversal::Traverser<XMLSchema::IDREF_Base, XSCRT::Type> + { + virtual void + traverse (XMLSchema::IDREF_Base& r) + { + if (r.get ()) dispatch (*(r.get ())); + } + + virtual void + traverse (XMLSchema::IDREF_Base const& r) + { + if (r.get ()) dispatch (*(r.get ())); + } + }; + + + template <typename T> + struct Traverser : XSCRT::Traversal::Traverser<T, XSCRT::Type> + { + }; + + typedef Traverser<byte> byte; + typedef Traverser<unsignedByte> unsignedByte; + + typedef Traverser<short_> short_; + typedef Traverser<unsignedShort> unsignedShort; + + typedef Traverser<int_> int_; + typedef Traverser<unsignedInt> unsignedInt; + + typedef Traverser<long_> long_; + typedef Traverser<unsignedLong> unsignedLong; + + typedef Traverser<boolean> boolean; + + typedef Traverser<float_> float_; + typedef Traverser<double_> double_; + + template <typename C> + struct string : Traverser<XMLSchema::string<C> > + { + }; + + template <typename C> + struct ID : Traverser<XMLSchema::ID<C> > + { + }; + + template <typename C> + struct anyURI : Traverser <XMLSchema::anyURI<C> > + { + }; + } +} + +#include <XMLSchema/Traversal.ipp> +#include <XMLSchema/Traversal.tpp> + +#endif // XMLSCHEMA_TRAVERSAL_HPP |