Geant4 Cross Reference |
1 // Copyright (C) 2010, Guy Barrand. All rights 2 // See the file tools.license for terms. 3 4 #ifndef tools_wroot_branch_object 5 #define tools_wroot_branch_object 6 7 #include "branch" 8 9 namespace tools { 10 namespace wroot { 11 12 class branch_object : public branch { 13 typedef branch parent; 14 #ifdef TOOLS_MEM 15 static const std::string& s_class() { 16 static const std::string s_v("tools::wroot 17 return s_v; 18 } 19 #endif 20 public: //ibo 21 virtual const std::string& store_cls() const 22 static const std::string s_v("TBranchObjec 23 return s_v; 24 } 25 virtual bool stream(buffer& a_buffer) const 26 if(fClassName.empty()) { 27 m_out << "tools::wroot::branch_object::s 28 return false; 29 } 30 unsigned int c; 31 if(!a_buffer.write_version(1,c)) return fa 32 if(!parent::stream(a_buffer)) return false 33 if(!a_buffer.write(fClassName)) return fal 34 if(!a_buffer.set_byte_count(c)) return fal 35 return true; 36 } 37 38 public: 39 branch_object(std::ostream& a_out,bool a_byt 40 seek a_seek_directory,const st 41 bool a_verbose) 42 :parent(a_out,a_byte_swap,a_compression,a_se 43 ,fClassName() 44 { 45 #ifdef TOOLS_MEM 46 mem::increment(s_class().c_str()); 47 #endif 48 } 49 virtual ~branch_object(){ 50 #ifdef TOOLS_MEM 51 mem::decrement(s_class().c_str()); 52 #endif 53 } 54 protected: 55 branch_object(const branch_object& a_from):i 56 branch_object& operator=(const branch_object 57 public: 58 leaf_object* create_leaf(const std::string& 59 fClassName = a_obj.store_class_name(); 60 leaf_object* lf = new leaf_object(m_out,a_ 61 m_leaves.push_back(lf); 62 return lf; 63 } 64 protected: 65 std::string fClassName; //Class name of refe 66 }; 67 68 }} 69 70 #endif