LSSTApplications  17.0+124,17.0+14,17.0+73,18.0.0+37,18.0.0+80,18.0.0-4-g68ffd23+4,18.1.0-1-g0001055+12,18.1.0-1-g03d53ef+5,18.1.0-1-g1349e88+55,18.1.0-1-g2505f39+44,18.1.0-1-g5315e5e+4,18.1.0-1-g5e4b7ea+14,18.1.0-1-g7e8fceb+4,18.1.0-1-g85f8cd4+48,18.1.0-1-g8ff0b9f+4,18.1.0-1-ga2c679d+1,18.1.0-1-gd55f500+35,18.1.0-10-gb58edde+2,18.1.0-11-g0997b02+4,18.1.0-13-gfe4edf0b+12,18.1.0-14-g259bd21+21,18.1.0-19-gdb69f3f+2,18.1.0-2-g5f9922c+24,18.1.0-2-gd3b74e5+11,18.1.0-2-gfbf3545+32,18.1.0-26-g728bddb4+5,18.1.0-27-g6ff7ca9+2,18.1.0-3-g52aa583+25,18.1.0-3-g8ea57af+9,18.1.0-3-gb69f684+42,18.1.0-3-gfcaddf3+6,18.1.0-32-gd8786685a,18.1.0-4-gf3f9b77+6,18.1.0-5-g1dd662b+2,18.1.0-5-g6dbcb01+41,18.1.0-6-gae77429+3,18.1.0-7-g9d75d83+9,18.1.0-7-gae09a6d+30,18.1.0-9-gc381ef5+4,w.2019.45
LSSTDataManagementBasePackage
Public Member Functions | Protected Attributes | List of all members
lsst::pex::policy::PolicyWriter Class Referenceabstract

An abstract interface for writing policy data to streams. More...

#include <PolicyWriter.h>

Inheritance diagram for lsst::pex::policy::PolicyWriter:
lsst::pex::policy::paf::PAFWriter

Public Member Functions

 PolicyWriter (std::ostream *out=0)
 create a writer attached to an output stream. More...
 
 PolicyWriter (const std::string &file, bool append=false)
 create a writer attached to a file. More...
 
virtual ~PolicyWriter ()
 delete this writer More...
 
virtual void write (const Policy &policy, bool doDecl=false)
 write the contents of a policy the attached stream. More...
 
void close ()
 close the output stream. More...
 
std::string toString ()
 return the written data as a string. More...
 
virtual void writeBool (const std::string &name, bool value)
 write the given property out as policy data More...
 
virtual void writeInt (const std::string &name, int value)
 write the given property out as policy data More...
 
virtual void writeDouble (const std::string &name, double value)
 write the given property out as policy data More...
 
virtual void writeString (const std::string &name, const std::string &value)
 write the given property out as policy data More...
 
virtual void writePolicy (const std::string &name, const Policy &value)
 write the given property out as policy data More...
 
virtual void writeFile (const std::string &name, const PolicyFile &value)
 write the given property out as policy data More...
 
virtual void writeBools (const std::string &name, const Policy::BoolArray &values)=0
 write an array of property values with a given name More...
 
virtual void writeInts (const std::string &name, const Policy::IntArray &values)=0
 write an array of property values with a given name More...
 
virtual void writeDoubles (const std::string &name, const Policy::DoubleArray &values)=0
 write an array of property values with a given name More...
 
virtual void writeStrings (const std::string &name, const Policy::StringArray &values)=0
 write an array of property values with a given name More...
 
virtual void writePolicies (const std::string &name, const Policy::PolicyPtrArray &values)=0
 write an array of property values with a given name More...
 
virtual void writeFiles (const std::string &name, const Policy::FilePtrArray &values)=0
 write an array of property values with a given name More...
 

Protected Attributes

std::ostream_os
 the output stream. More...
 

Detailed Description

An abstract interface for writing policy data to streams.

Definition at line 47 of file PolicyWriter.h.

Constructor & Destructor Documentation

◆ PolicyWriter() [1/2]

lsst::pex::policy::PolicyWriter::PolicyWriter ( std::ostream out = 0)

create a writer attached to an output stream.

If no stream is provided, it will write policy data to an internal string stream; toString() can be used to retrieve the results.

Parameters
outthe output stream to write data to

◆ PolicyWriter() [2/2]

lsst::pex::policy::PolicyWriter::PolicyWriter ( const std::string file,
bool  append = false 
)

create a writer attached to a file.

This file will be immediately opened for writing.

Parameters
filethe path to the output file
appendif true, open the file to append. (default is false.)

◆ ~PolicyWriter()

virtual lsst::pex::policy::PolicyWriter::~PolicyWriter ( )
virtual

delete this writer

Member Function Documentation

◆ close()

void lsst::pex::policy::PolicyWriter::close ( )

close the output stream.

This has no effect if the attached stream is not a file stream.

◆ toString()

std::string lsst::pex::policy::PolicyWriter::toString ( )

return the written data as a string.

This string will be non-empty only if this class was was instantiated without an attached stream.

◆ write()

virtual void lsst::pex::policy::PolicyWriter::write ( const Policy policy,
bool  doDecl = false 
)
virtual

write the contents of a policy the attached stream.

Each top-level parameter will be recursively printed.

Parameters
policythe policy data to write
doDeclif true, precede the data with the appropriate file format type.

◆ writeBool()

virtual void lsst::pex::policy::PolicyWriter::writeBool ( const std::string name,
bool  value 
)
virtual

write the given property out as policy data

Parameters
namethe name to save the property as. This may be a hierarchical name; however, an implementation is not guaranteed to support it. If it cannot, it should raise an exception.
valuethe value to save under that name.

◆ writeBools()

virtual void lsst::pex::policy::PolicyWriter::writeBools ( const std::string name,
const Policy::BoolArray values 
)
pure virtual

write an array of property values with a given name

Parameters
namethe name to save the values as. This may be a hierarchical name; however, an implementation is not guaranteed to support it. If it cannot, it should raise an exception.
valuesthe values to save under that name.

Implemented in lsst::pex::policy::paf::PAFWriter.

◆ writeDouble()

virtual void lsst::pex::policy::PolicyWriter::writeDouble ( const std::string name,
double  value 
)
virtual

write the given property out as policy data

Parameters
namethe name to save the property as. This may be a hierarchical name; however, an implementation is not guaranteed to support it. If it cannot, it should raise an exception.
valuethe value to save under that name.

◆ writeDoubles()

virtual void lsst::pex::policy::PolicyWriter::writeDoubles ( const std::string name,
const Policy::DoubleArray values 
)
pure virtual

write an array of property values with a given name

Parameters
namethe name to save the values as. This may be a hierarchical name; however, an implementation is not guaranteed to support it. If it cannot, it should raise an exception.
valuesthe values to save under that name.

Implemented in lsst::pex::policy::paf::PAFWriter.

◆ writeFile()

virtual void lsst::pex::policy::PolicyWriter::writeFile ( const std::string name,
const PolicyFile value 
)
virtual

write the given property out as policy data

Parameters
namethe name to save the property as. This may be a hierarchical name; however, an implementation is not guaranteed to support it. If it cannot, it should raise an exception.
valuethe value to save under that name.

◆ writeFiles()

virtual void lsst::pex::policy::PolicyWriter::writeFiles ( const std::string name,
const Policy::FilePtrArray values 
)
pure virtual

write an array of property values with a given name

Parameters
namethe name to save the values as. This may be a hierarchical name; however, an implementation is not guaranteed to support it. If it cannot, it should raise an exception.
valuesthe values to save under that name.

Implemented in lsst::pex::policy::paf::PAFWriter.

◆ writeInt()

virtual void lsst::pex::policy::PolicyWriter::writeInt ( const std::string name,
int  value 
)
virtual

write the given property out as policy data

Parameters
namethe name to save the property as. This may be a hierarchical name; however, an implementation is not guaranteed to support it. If it cannot, it should raise an exception.
valuethe value to save under that name.

◆ writeInts()

virtual void lsst::pex::policy::PolicyWriter::writeInts ( const std::string name,
const Policy::IntArray values 
)
pure virtual

write an array of property values with a given name

Parameters
namethe name to save the values as. This may be a hierarchical name; however, an implementation is not guaranteed to support it. If it cannot, it should raise an exception.
valuesthe values to save under that name.

Implemented in lsst::pex::policy::paf::PAFWriter.

◆ writePolicies()

virtual void lsst::pex::policy::PolicyWriter::writePolicies ( const std::string name,
const Policy::PolicyPtrArray values 
)
pure virtual

write an array of property values with a given name

Parameters
namethe name to save the values as. This may be a hierarchical name; however, an implementation is not guaranteed to support it. If it cannot, it should raise an exception.
valuesthe values to save under that name.

Implemented in lsst::pex::policy::paf::PAFWriter.

◆ writePolicy()

virtual void lsst::pex::policy::PolicyWriter::writePolicy ( const std::string name,
const Policy value 
)
virtual

write the given property out as policy data

Parameters
namethe name to save the property as. This may be a hierarchical name; however, an implementation is not guaranteed to support it. If it cannot, it should raise an exception.
valuethe value to save under that name.

◆ writeString()

virtual void lsst::pex::policy::PolicyWriter::writeString ( const std::string name,
const std::string value 
)
virtual

write the given property out as policy data

Parameters
namethe name to save the property as. This may be a hierarchical name; however, an implementation is not guaranteed to support it. If it cannot, it should raise an exception.
valuethe value to save under that name.

◆ writeStrings()

virtual void lsst::pex::policy::PolicyWriter::writeStrings ( const std::string name,
const Policy::StringArray values 
)
pure virtual

write an array of property values with a given name

Parameters
namethe name to save the values as. This may be a hierarchical name; however, an implementation is not guaranteed to support it. If it cannot, it should raise an exception.
valuesthe values to save under that name.

Implemented in lsst::pex::policy::paf::PAFWriter.

Member Data Documentation

◆ _os

std::ostream* lsst::pex::policy::PolicyWriter::_os
protected

the output stream.

This should always be non-null.

Definition at line 132 of file PolicyWriter.h.


The documentation for this class was generated from the following file: