Geant4 Cross Reference |
1 // Copyright (C) 2010, Guy Barrand. All rights reserved. 2 // See the file tools.license for terms. 3 4 #ifndef tools_store_iobj_visitor 5 #define tools_store_iobj_visitor 6 7 #include "../typedefs" 8 9 #include <string> 10 #include <vector> 11 #include <ostream> 12 13 namespace tools { 14 15 class iobj_visitor { 16 public: 17 virtual ~iobj_visitor() {} 18 public: 19 virtual std::ostream& out() const = 0; 20 21 //virtual bool begin(IStorable&) = 0; 22 //virtual bool end(IStorable&) = 0; 23 virtual bool visit(bool&) = 0; 24 virtual bool visit(char&) = 0; 25 virtual bool visit(short&) = 0; 26 virtual bool visit(int&) = 0; 27 virtual bool visit(unsigned int&) = 0; 28 virtual bool visit(int64&) = 0; 29 virtual bool visit(uint64&) = 0; 30 virtual bool visit(float&) = 0; 31 virtual bool visit(double&) = 0; 32 virtual bool visit(std::string&) = 0; 33 virtual bool visit(std::vector<bool>&) = 0; 34 virtual bool visit(std::vector<char>&) = 0; 35 virtual bool visit(std::vector<short>&) = 0; 36 virtual bool visit(std::vector<int>&) = 0; 37 virtual bool visit(std::vector<int64>&) = 0; 38 virtual bool visit(std::vector<float>&) = 0; 39 virtual bool visit(std::vector<double>&) = 0; 40 virtual bool visit(std::vector<unsigned char>&) = 0; 41 virtual bool visit(std::vector<std::string>&) = 0; 42 virtual bool visit(std::vector< std::vector<double> >&) = 0; 43 //virtual bool visit_double(IArray&) = 0; 44 }; 45 46 } 47 48 #endif