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