// Copyright (C) 2010, Guy Barrand. All rights reserved. // See the file tools.license for terms. #ifndef tools_iobj_visitor #define tools_iobj_visitor #include "typedefs" #include #include #include namespace tools { class iobj_visitor { public: virtual ~iobj_visitor() {} public: virtual std::ostream& out() = 0; //virtual bool begin(IStorable&) = 0; //virtual bool end(IStorable&) = 0; virtual bool visit(bool&) = 0; virtual bool visit(char&) = 0; virtual bool visit(short&) = 0; virtual bool visit(int&) = 0; virtual bool visit(unsigned int&) = 0; virtual bool visit(int64&) = 0; virtual bool visit(uint64&) = 0; virtual bool visit(float&) = 0; virtual bool visit(double&) = 0; virtual bool visit(std::string&) = 0; virtual bool visit(std::vector&) = 0; virtual bool visit(std::vector&) = 0; virtual bool visit(std::vector&) = 0; virtual bool visit(std::vector&) = 0; virtual bool visit(std::vector&) = 0; virtual bool visit(std::vector&) = 0; virtual bool visit(std::vector&) = 0; virtual bool visit(std::vector&) = 0; virtual bool visit(std::vector&) = 0; virtual bool visit(std::vector< std::vector >&) = 0; //virtual bool visit_double(IArray&) = 0; }; } #endif