g4tools  5.4.0
sf_string
Go to the documentation of this file.
1 // Copyright (C) 2010, Guy Barrand. All rights reserved.
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> {
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:
42  sf_string(const std::string& a_value):parent(a_value){}
43  virtual ~sf_string(){}
44 public:
45  sf_string(const sf_string& a_from):parent(a_from){}
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_value){
52  parent::operator=(a_value);
53  return *this;
54  }
55 };
56 
57 }}
58 
59 #endif
tools::sg::sf_string::write
virtual bool write(io::iwbuf &a_buffer)
Definition: sf_string:18
tools::io::irbuf::read_cstr
virtual bool read_cstr(char *&)=0
tools::sg::bsf
Definition: bsf:19
tools::sg::bsf< std::string >::m_value
std::string m_value
Definition: bsf:120
tools::sg::sf_string::s2value
virtual bool s2value(const std::string &a_s)
Definition: sf_string:36
tools::sg::field
Definition: field:25
tools::sg::sf_string::read
virtual bool read(io::irbuf &a_buffer)
Definition: sf_string:21
tools::sg::sf_string::sf_string
sf_string()
Definition: sf_string:41
tools::sg::sf_string::sf_string
sf_string(const sf_string &a_from)
Definition: sf_string:45
tools::io::iwbuf::write_cstr
virtual bool write_cstr(const char *a_cstr)=0
tools::sg::sf_string::sf_string
sf_string(const std::string &a_value)
Definition: sf_string:42
tools::sg::field::operator=
field & operator=(const field &)
Definition: field:57
TOOLS_HEADER
#define TOOLS_HEADER(a__class, a__sclass, a__parent)
Definition: HEADER:10
tools::sg::sf_string::operator=
sf_string & operator=(const std::string &a_value)
Definition: sf_string:51
sf
tools::sg::sf_string::s_value
virtual bool s_value(std::string &a_s) const
Definition: sf_string:32
tools::sg::sf_string::operator=
sf_string & operator=(const sf_string &a_from)
Definition: sf_string:46
tools
inlined C code : ///////////////////////////////////
Definition: aida_ntuple:26
tools::io::irbuf
Definition: irbuf:19
tools::str_del
void str_del(char *&a_cstr)
Definition: cstr:66
tools::sg::sf_string
Definition: sf_string:15
tools::io::iwbuf
Definition: iwbuf:15
tools::sg::bsf< std::string >::value
std::string & value()
Definition: bsf:98
tools::sg::sf_string::dump
virtual bool dump(std::ostream &a_out)
Definition: sf_string:28
tools::sg::sf_string::~sf_string
virtual ~sf_string()
Definition: sf_string:43