00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef TRIGBUNCHCROSSINGTOOL_JSON_VISITOR_H
00011 #define TRIGBUNCHCROSSINGTOOL_JSON_VISITOR_H
00012
00013
00014 #ifndef TRIGBUNCHCROSSINGTOOL_JSON_ELEMENTS_H
00015 #include "elements.h"
00016 #endif
00017
00018 namespace json {
00019
00020 class Visitor {
00021
00022 public:
00023 virtual ~Visitor() {}
00024
00025 virtual void Visit( Array& array ) = 0;
00026 virtual void Visit( Object& object ) = 0;
00027 virtual void Visit( Number& number ) = 0;
00028 virtual void Visit( String& string ) = 0;
00029 virtual void Visit( Boolean& boolean ) = 0;
00030 virtual void Visit( Null& null ) = 0;
00031 };
00032
00033 class ConstVisitor {
00034
00035 public:
00036 virtual ~ConstVisitor() {}
00037
00038 virtual void Visit( const Array& array ) = 0;
00039 virtual void Visit( const Object& object ) = 0;
00040 virtual void Visit( const Number& number ) = 0;
00041 virtual void Visit( const String& string ) = 0;
00042 virtual void Visit( const Boolean& boolean ) = 0;
00043 virtual void Visit( const Null& null ) = 0;
00044 };
00045
00046 }
00047
00048 #endif // TRIGBUNCHCROSSINGTOOL_JSON_VISITOR_H