58 : _myos(new
std::ofstream(file.c_str(), append ?
std::ios_base::app :
std::ios_base::
trunc)), _os(0) {
59 _myos->exceptions(std::ofstream::failbit | std::ofstream::badbit);
64 if (_myos)
delete _myos;
73 if (ss)
return ss->
str();
92 if (doDecl) (*_os) <<
"#<?cfg paf policy ?>" <<
std::endl;
95 Policy::StringArray::const_iterator ni;
96 for (ni = names.begin(); ni != names.end(); ++ni) {
99 if (tp ==
typeid(
bool)) {
100 writeBools(*ni, policy.getBoolArray(*ni));
101 }
else if (tp ==
typeid(
int)) {
102 writeInts(*ni, policy.getIntArray(*ni));
103 }
else if (tp ==
typeid(
double)) {
104 writeDoubles(*ni, policy.getDoubleArray(*ni));
106 writeStrings(*ni, policy.getStringArray(*ni));
108 writePolicies(*ni, policy.getPolicyArray(*ni));
110 writeFiles(*ni, policy.getFileArray(*ni));
114 }
catch (NameNotFound&) {
116 writeString(*ni,
"<missing data>");
124 writeBools(name, vals);
130 writeInts(name, vals);
136 writeDoubles(name, vals);
142 writeStrings(name, vals);
148 writePolicies(name, vals);
154 writeFiles(name, vals);
virtual void writeBool(const std::string &name, bool value)
write the given property out as policy data
static std::type_info const & typeOfT()
std::shared_ptr< PolicyFile > FilePtr
std::shared_ptr< Policy > Ptr
std::string toString()
return the written data as a string.
definition of the PolicyFile class
virtual ~PolicyWriter()
delete this writer
void close()
close the output stream.
the definition of the PolicyWriter class
virtual void write(const Policy &policy, bool doDecl=false)
write the contents of a policy the attached stream.
std::vector< std::string > StringArray
virtual void writeFile(const std::string &name, const PolicyFile &value)
write the given property out as policy data
virtual void writeString(const std::string &name, const std::string &value)
write the given property out as policy data
virtual void writeDouble(const std::string &name, double value)
write the given property out as policy data
virtual void writeInt(const std::string &name, int value)
write the given property out as policy data
#define LSST_EXCEPT(type,...)
virtual void writePolicy(const std::string &name, const Policy &value)
write the given property out as policy data
PolicyWriter(std::ostream *out=0)
create a writer attached to an output stream.