1 #ifndef NEXUS_STREAM_HPP
2 #define NEXUS_STREAM_HPP
60 virtual void readFromFile(
File& nf)
const = 0;
61 virtual void writeToFile(
File& nf)
const = 0;
78 void setName(
const std::string& name);
88 template<
typename NumT>
95 AttrHolder(
const std::string& name,
const NumT* cv, NumT* v) :
HolderBase(name), m_c_value(cv), m_value(v) { }
98 AttrHolder(
const std::string& name, NumT& value);
99 AttrHolder(
const std::string& name,
const NumT& value);
103 virtual void readFromFile(
File& nf)
const;
104 virtual void writeToFile(
File& nf)
const;
120 template <
typename NumT>
122 template <
typename NumT>
124 template <
typename NumT>
126 template <
typename NumT>
132 void setName(
const std::string& name) { m_holder->setName(name); }
135 virtual ~Attr() {
delete m_holder; m_holder = NULL; }
146 void processAttr(
const std::string& attr1_name,
const Attr& attr1_value,
const std::string& attr2_name,
const Attr& attr2_value)
148 if (attr1_name.size() > 0)
150 m_attr.push_back(
Attr(attr1_name, attr1_value));
152 if (attr2_name.size() > 0)
154 m_attr.push_back(
Attr(attr2_name, attr2_value));
162 processAttr(attr1_name, attr1_value, attr2_name, attr2_value);
165 virtual void readFromFile(
File& nf)
const
167 for(std::list<Attr>::const_iterator it = m_attr.begin(); it != m_attr.end(); it++)
169 it->readFromFile(nf);
173 virtual void writeToFile(
File& nf)
const
175 for(std::list<Attr>::const_iterator it = m_attr.begin(); it != m_attr.end(); it++)
195 Group(
const std::string& name,
const std::string& nxclass,
const std::string& attr1_name =
"",
const Attr& attr1_value =
Attr(),
196 const std::string& attr2_name=
"",
const Attr& attr2_value =
Attr()) :
197 ObjectWithAttr(attr1_name, attr1_value, attr2_name, attr2_value), m_name(name), m_class(nxclass)
201 virtual void readFromFile(
File& nf)
const
207 virtual void writeToFile(
File& nf)
const
219 template<
typename NumT>
226 DataHolder(
const std::string& name,
const std::vector<NumT>* cv, std::vector<NumT>* v) :
HolderBase(name), m_c_value(cv), m_value(v) { }
230 DataHolder(
const std::string& name, std::vector<NumT>& value);
231 DataHolder(
const std::string& name,
const std::vector<NumT>& value);
235 virtual void readFromFile(
File& nf)
const;
236 virtual void writeToFile(
File& nf)
const;
255 template <
typename NumT>
256 Data(
const std::string& name, std::vector<NumT>& data,
const std::string& attr1_name=
"",
const Attr& attr1_value=
Attr(),
257 const std::string& attr2_name=
"",
const Attr& attr2_value =
Attr()) :
262 template <
typename NumT>
263 Data(
const std::string& name,
const std::vector<NumT>& data,
const std::string& attr1_name=
"",
const Attr& attr1_value=
Attr(),
264 const std::string& attr2_name=
"",
const Attr& attr2_value =
Attr()) :
271 virtual void readFromFile(
File& nf)
const;
272 virtual void writeToFile(
File& nf)
const;
273 virtual ~Data() {
delete m_holder; }