base64Formatter Class Reference

Inline base-64 encoded binary output. Uses an output filter layer to write base-64 encoded content. More...

Inheritance diagram for base64Formatter:
[legend]
Collaboration diagram for base64Formatter:
[legend]

Public Member Functions

 base64Formatter (std::ostream &os)
 Construct and attach to an output stream. More...
 
virtual ~base64Formatter ()
 Destructor. Closes/flushes the underlying layer. More...
 
virtual const outputOptions & opts () const
 The output is INLINE_BASE64. More...
 
virtual const char * name () const
 Name for the XML output type ("binary") More...
 
virtual void flush ()
 End the encoding sequence (padding the final characters with '=') More...
 
- Public Member Functions inherited from foamVtkBase64Layer
virtual ~foamVtkBase64Layer ()
 Destructor. Closes/flushes the underlying layer. More...
 
virtual const char * encoding () const
 Name for the XML append encoding ("base64"). More...
 
virtual bool writeSize (const uint64_t numbytes)
 Write leading size for binary output. More...
 
virtual void write (const uint8_t val)
 
virtual void write (const label val)
 
virtual void write (const float val)
 
virtual void write (const double val)
 
virtual std::size_t encodedLength (std::size_t n) const
 The encoded length for base64 encoded output. More...
 
- Public Member Functions inherited from formatter
virtual ~formatter ()=default
 Destructor. More...
 
std::ostream & os ()
 Access to the underlying output stream. More...
 
void quoting (const quoteChar quote)
 Change quoting char for XML attributes (default: SINGLE_QUOTE) More...
 
virtual uint64_t offset (const uint64_t numbytes)
 Increase the append data offset by numbytes and sizeof(uint64_t). More...
 
void indent ()
 Add indenting according to the current XML tag depth. More...
 
void indent (label n)
 Add indenting of n spaces. More...
 
formatter & xmlHeader ()
 Write XML header. More...
 
template<class... Args>
formatter & xmlComment (const std::string &text, Args &&... args)
 Write XML comment (at the current indentation level) More...
 
template<class... Args>
formatter & openTag (const word &tagName, Args &&... args)
 Start an XML tag, optionally with attributes. More...
 
template<class... Args>
formatter & openTag (vtk::fileTag t, Args &&... args)
 Start an XML tag, optionally with attributes. More...
 
formatter & closeTag (const bool isEmpty=false)
 Finish an XML tag, optional as an empty container. More...
 
formatter & endTag (const word &tagName=word::null)
 An end XML tag, optional with sanity check. More...
 
virtual formatter & endTag (vtk::fileTag t)
 An end XML tag with sanity check. More...
 
template<class... Args>
formatter & tag (const word &t, Args &&... args)
 Write XML tag without any attributes. Combines openTag/closeTag. More...
 
template<class... Args>
formatter & tag (vtk::fileTag t, Args &&... args)
 Write XML tag without any attributes. Combines openTag/closeTag. More...
 
formatter & beginVTKFile (const word &contentType, const word &contentVersion, const bool leaveOpen=false)
 
formatter & beginVTKFile (vtk::fileTag contentType, const word &contentVersion, const bool leaveOpen=false)
 
formatter & beginVTKFile (vtk::fileTag contentType, const bool leaveOpen=false)
 
template<vtk::fileTag ContentType>
formatter & beginVTKFile (bool leaveOpen=false)
 
formatter & beginAppendedData ()
 
formatter & beginBlock (label index, std::string name="")
 Begin "Block" XML section. More...
 
formatter & endBlock ()
 End "Block" XML section. More...
 
formatter & beginPiece (label index, std::string name="")
 Begin "Piece" XML section. More...
 
virtual formatter & endPiece ()
 End "Piece" XML section. More...
 
formatter & DataSet (label index, std::string file="", bool autoName=true)
 Insert a single "DataSet" XML entry tag. More...
 
formatter & DataSet (label index, std::string file, std::string name)
 Insert a single "DataSet" XML entry tag. More...
 
template<class Type , direction nComp = 1, int nTuple = 0>
formatter & beginDataArray (const word &dataName, uint64_t payLoad=npos, bool leaveOpen=false)
 Begin "DataArray" XML section. More...
 
template<class Type , direction nComp = 1, int nTuple = 0>
formatter & beginDataArray (const vtk::dataArrayAttr &dataName, uint64_t payLoad=npos, bool leaveOpen=false)
 Begin "DataArray" XML section. More...
 
virtual formatter & endDataArray ()
 End "DataArray" XML section. More...
 
template<class Type , direction nComp = 1, int nTuple = 0>
formatter & PDataArray (const word &dataName)
 Insert a single "PDataArray" XML entry tag. More...
 
formatter & beginFieldData ()
 Begin "FieldData" XML section. More...
 
formatter & beginCellData ()
 Begin "CellData" XML section. More...
 
formatter & beginPointData ()
 Begin "PointData" XML section. More...
 
virtual formatter & endFieldData ()
 End "FieldData" XML section. More...
 
virtual formatter & endCellData ()
 End "CellData" XML section. More...
 
virtual formatter & endPointData ()
 End "PointData" XML section. More...
 
formatter & endAppendedData ()
 End "AppendedData" XML section. More...
 
virtual formatter & endVTKFile ()
 End "VTKFile" XML section. More...
 
formatter & writeTimeValue (scalar timeValue)
 Emit "TimeValue" for FieldData (name as per Catalyst output) More...
 
template<class... Args>
formatter & xmlAttr (const word &k, const std::string &v, Args &&... args)
 Pair-wise write of XML key/value attributes. More...
 
template<class... Args>
formatter & xmlAttr (const word &k, const int32_t v, Args &&... args)
 Pair-wise write of XML key/value attributes. More...
 
template<class... Args>
formatter & xmlAttr (const word &k, const int64_t v, Args &&... args)
 Pair-wise write of XML key/value attributes. More...
 
template<class... Args>
formatter & xmlAttr (const word &k, const uint64_t v, Args &&... args)
 Pair-wise write of XML key/value attributes. More...
 
template<class... Args>
formatter & xmlAttr (const word &k, const scalar v, Args &&... args)
 Pair-wise write of XML key/value attributes. More...
 
template<class... Args>
formatter & xmlAttr (const vtk::fileAttr &k, const std::string &v, Args &&... args)
 Pair-wise write of XML key/value attributes. More...
 
template<class... Args>
formatter & xmlAttr (const vtk::fileAttr &k, const int32_t v, Args &&... args)
 Pair-wise write of XML key/value attributes. More...
 
template<class... Args>
formatter & xmlAttr (const vtk::fileAttr &k, const int64_t v, Args &&... args)
 Pair-wise write of XML key/value attributes. More...
 
template<class... Args>
formatter & xmlAttr (const vtk::fileAttr &k, const uint64_t v, Args &&... args)
 Pair-wise write of XML key/value attributes. More...
 
template<class... Args>
formatter & xmlAttr (const vtk::fileAttr &k, const scalar v, Args &&... args)
 Pair-wise write of XML key/value attributes. More...
 
template<class Type , direction nComp = 1, int nTuple = 0>
formatter & openDataArray (const word &dataName)
 Open "DataArray" XML tag and leave open (requires a closeTag). More...
 
template<class Type , direction nComp = 1, int nTuple = 0>
formatter & openDataArray (const vtk::dataArrayAttr &dataName)
 Open "DataArray" XML tag and leave open (requires a closeTag). More...
 
template<class... Args>
Foam::vtk::formatter & xmlComment (const std::string &text, Args &&... args)
 
template<class... Args>
Foam::vtk::formatter & openTag (const word &tagName, Args &&... args)
 
template<class... Args>
Foam::vtk::formatter & openTag (vtk::fileTag t, Args &&... args)
 
template<class... Args>
Foam::vtk::formatter & tag (const word &t, Args &&... args)
 
template<class... Args>
Foam::vtk::formatter & tag (vtk::fileTag t, Args &&... args)
 
template<Foam::vtk::fileTag ContentType>
Foam::vtk::formatter & beginVTKFile (bool leaveOpen)
 
template<class Type , Foam::direction nComp, int nTuple>
Foam::vtk::formatter & beginDataArray (const vtk::dataArrayAttr &dataName, uint64_t payLoad, bool leaveOpen)
 
template<class... Args>
Foam::vtk::formatter & xmlAttr (const word &k, const std::string &v, Args &&... args)
 
template<class... Args>
Foam::vtk::formatter & xmlAttr (const word &k, const int32_t v, Args &&... args)
 
template<class... Args>
Foam::vtk::formatter & xmlAttr (const word &k, const int64_t v, Args &&... args)
 
template<class... Args>
Foam::vtk::formatter & xmlAttr (const word &k, const uint64_t v, Args &&... args)
 
template<class... Args>
Foam::vtk::formatter & xmlAttr (const word &k, const scalar v, Args &&... args)
 
template<class... Args>
Foam::vtk::formatter & xmlAttr (const vtk::fileAttr &k, const std::string &v, Args &&... args)
 
template<class... Args>
Foam::vtk::formatter & xmlAttr (const vtk::fileAttr &k, const int32_t v, Args &&... args)
 
template<class... Args>
Foam::vtk::formatter & xmlAttr (const vtk::fileAttr &k, const int64_t v, Args &&... args)
 
template<class... Args>
Foam::vtk::formatter & xmlAttr (const vtk::fileAttr &k, const uint64_t v, Args &&... args)
 
template<class... Args>
Foam::vtk::formatter & xmlAttr (const vtk::fileAttr &k, const scalar v, Args &&... args)
 
template<class Type , Foam::direction nComp, int nTuple>
Foam::vtk::formatter & beginDataArray (const word &dataName, uint64_t payLoad, bool leaveOpen)
 
template<class Type , Foam::direction nComp, int nTuple>
Foam::vtk::formatter & PDataArray (const word &dataName)
 

Additional Inherited Members

- Public Types inherited from formatter
enum  quoteChar : char { DOUBLE_QUOTE = '\"', SINGLE_QUOTE = '\'' }
 Quoting for XML attributes. More...
 
typedef uint64_t headerType
 The header data is vtk UInt64. More...
 
- Static Public Attributes inherited from formatter
static constexpr uint64_t npos = uint64_t(-1)
 Out of range position or size. More...
 
- Protected Member Functions inherited from foamVtkBase64Layer
void write (const char *s, std::streamsize n)
 Write. More...
 
 foamVtkBase64Layer (std::ostream &os)
 Construct and attach to an output stream. More...
 
- Protected Member Functions inherited from formatter
bool canWriteAttr (const word &k) const
 
bool canWriteToplevel (const char *what) const
 
template<class Type >
void writeAttr (const word &k, const Type &v)
 Write XML key/value attribute pair (implementation). More...
 
formatter & xmlAttr ()
 No-op write XML attribute (for templating code). More...
 
void xmlCommentLoop ()
 No-op XML comment loop (for templating code). More...
 
template<class... Args>
void xmlCommentLoop (const std::string &text, Args &&... args)
 Loop/output XML comments. More...
 
bool openTagImpl (const word &tagName)
 
 formatter (std::ostream &os)
 Construct and attach to an output stream. More...
 
- Protected Member Functions inherited from base64Layer
void add (char c)
 Add a character to the group, outputting when the group is full. More...
 
 base64Layer (std::ostream &os)
 Construct and attach to an output stream. More...
 
 ~base64Layer ()
 Destructor. Performs close() More...
 
void write (const char *s, std::streamsize n)
 Encode the character sequence, writing when possible. More...
 
void reset ()
 Restart a new encoding sequence. More...
 
bool close ()
 End the encoding sequence, padding the final characters with '='. More...
 
- Static Protected Member Functions inherited from base64Layer
static std::size_t encodedLength (std::size_t n)
 The encoded length has 4 bytes out for every 3 bytes in. More...
 
- Protected Attributes inherited from formatter
std::ostream & os_
 The output stream for the formatter. More...
 
DynamicList< word > xmlTags_
 LIFO stack of current XML tags. More...
 
bool inTag_
 Tag open/closed/ended state. More...
 
char quote_
 Quoting character for XML attributes. More...
 

Detailed Description

Inline base-64 encoded binary output. Uses an output filter layer to write base-64 encoded content.

Definition at line 51 of file foamVtkBase64Formatter.H.

Constructor & Destructor Documentation

◆ base64Formatter()

base64Formatter ( std::ostream &  os)

Construct and attach to an output stream.

Definition at line 41 of file foamVtkBase64Formatter.C.

◆ ~base64Formatter()

~base64Formatter ( )
virtual

Destructor. Closes/flushes the underlying layer.

Definition at line 49 of file foamVtkBase64Formatter.C.

References base64Layer::close().

Here is the call graph for this function:

Member Function Documentation

◆ opts()

const Foam::vtk::outputOptions & opts ( ) const
virtual

The output is INLINE_BASE64.

Implements formatter.

Definition at line 61 of file foamVtkBase64Formatter.C.

◆ name()

const char * name ( ) const
virtual

Name for the XML output type ("binary")

Implements formatter.

Definition at line 67 of file foamVtkBase64Formatter.C.

◆ flush()

void flush ( )
virtual

End the encoding sequence (padding the final characters with '=')

and write a newline to the output if any encoding was done.

Reimplemented from foamVtkBase64Layer.

Definition at line 73 of file foamVtkBase64Formatter.C.

References base64Layer::close().

Here is the call graph for this function:

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