Geant4 Cross Reference |
1 // Copyright (C) 2010, Guy Barrand. All rights 2 // See the file tools.license for terms. 3 4 #ifndef tools_sg_sf_string 5 #define tools_sg_sf_string 6 7 #include "sf" 8 9 #include "../cstr" 10 #include "../HEADER" 11 12 namespace tools { 13 namespace sg { 14 15 class sf_string : public bsf<std::string> { 16 TOOLS_HEADER(sf_string,tools::sg::sf_string, 17 public: 18 virtual bool write(io::iwbuf& a_buffer) { 19 return a_buffer.write_cstr(m_value.c_str() 20 } 21 virtual bool read(io::irbuf& a_buffer) { 22 char* cstr = 0; 23 if(!a_buffer.read_cstr(cstr)) return false 24 m_value = cstr; 25 str_del(cstr); 26 return true; 27 } 28 virtual bool dump(std::ostream& a_out) { 29 a_out << m_value << std::endl; 30 return true; 31 } 32 virtual bool s_value(std::string& a_s) const 33 a_s = m_value; 34 return true; 35 } 36 virtual bool s2value(const std::string& a_s) 37 value(a_s); 38 return true; 39 } 40 public: 41 sf_string():parent(){} 42 sf_string(const std::string& a_value):parent 43 virtual ~sf_string(){} 44 public: 45 sf_string(const sf_string& a_from):parent(a_ 46 sf_string& operator=(const sf_string& a_from 47 parent::operator=(a_from); 48 return *this; 49 } 50 public: 51 sf_string& operator=(const std::string& a_va 52 parent::operator=(a_value); 53 return *this; 54 } 55 }; 56 57 }} 58 59 #endif