2010-05-21 03:13:36 +02:00
|
|
|
/**********************************************
|
|
|
|
|
|
|
|
License: BSD
|
|
|
|
Project Webpage: http://cajun-jsonapi.sourceforge.net/
|
|
|
|
Author: Terry Caton
|
|
|
|
|
|
|
|
***********************************************/
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "elements.h"
|
|
|
|
|
|
|
|
namespace json
|
|
|
|
{
|
|
|
|
|
2011-12-22 22:12:25 +01:00
|
|
|
struct Visitor {
|
|
|
|
virtual ~Visitor() { }
|
|
|
|
|
|
|
|
virtual void Visit(Array& array) = 0;
|
|
|
|
virtual void Visit(Object& object) = 0;
|
|
|
|
virtual void Visit(Integer& number) = 0;
|
|
|
|
virtual void Visit(Double& number) = 0;
|
|
|
|
virtual void Visit(String& string) = 0;
|
|
|
|
virtual void Visit(Boolean& boolean) = 0;
|
|
|
|
virtual void Visit(Null& null) = 0;
|
2010-05-21 03:13:36 +02:00
|
|
|
};
|
|
|
|
|
2011-12-22 22:12:25 +01:00
|
|
|
struct ConstVisitor {
|
|
|
|
virtual ~ConstVisitor() { }
|
2010-05-21 03:13:36 +02:00
|
|
|
|
2011-12-22 22:12:25 +01:00
|
|
|
virtual void Visit(const Array& array) = 0;
|
|
|
|
virtual void Visit(const Object& object) = 0;
|
|
|
|
virtual void Visit(const Integer& number) = 0;
|
|
|
|
virtual void Visit(const Double& number) = 0;
|
|
|
|
virtual void Visit(const String& string) = 0;
|
|
|
|
virtual void Visit(const Boolean& boolean) = 0;
|
|
|
|
virtual void Visit(const Null& null) = 0;
|
|
|
|
};
|
2010-05-21 03:13:36 +02:00
|
|
|
|
|
|
|
} // End namespace
|