ezEngine  Milestone 7
ezExtendedJSONWriter Class Reference

This class will redirect all calls to WriteInt32, etc. to WriteBinaryData(), meaning it will output all data using a syntax similar to the MongoDB syntax for binary data. More...

#include <ExtendedJSONWriter.h>

Inheritance diagram for ezExtendedJSONWriter:

Public Member Functions

virtual void WriteInt32 (ezInt32 value) override
 Redirects to WriteBinaryData().
 
virtual void WriteUInt32 (ezUInt32 value) override
 Redirects to WriteBinaryData().
 
virtual void WriteInt64 (ezInt64 value) override
 Redirects to WriteBinaryData().
 
virtual void WriteUInt64 (ezUInt64 value) override
 Redirects to WriteBinaryData().
 
virtual void WriteFloat (float value) override
 Redirects to WriteBinaryData().
 
virtual void WriteDouble (double value) override
 Redirects to WriteBinaryData().
 
virtual void WriteTime (ezTime value) override
 Redirects to WriteBinaryData().
 
- Public Member Functions inherited from ezStandardJSONWriter
 ezStandardJSONWriter ()
 Constructor.
 
 ~ezStandardJSONWriter ()
 Destructor.
 
void SetOutputStream (ezStreamWriterBase *pOutput)
 All output is written to this binary stream.
 
virtual void WriteBool (bool value) override
 Writes a bool to the JSON file. Can only be called between BeginVariable() / EndVariable() or BeginArray() / EndArray(). More...
 
virtual void WriteString (const char *value) override
 Writes a string to the JSON file. Can only be called between BeginVariable() / EndVariable() or BeginArray() / EndArray(). More...
 
virtual void WriteNULL () override
 Writes the value 'null' to the JSON file. Can only be called between BeginVariable() / EndVariable() or BeginArray() / EndArray(). More...
 
virtual void WriteColor (const ezColor &value) override
 Outputs the value via WriteVec4().
 
virtual void WriteVec2 (const ezVec2 &value) override
 Outputs the value via WriteBinaryData().
 
virtual void WriteVec3 (const ezVec3 &value) override
 Outputs the value via WriteBinaryData().
 
virtual void WriteVec4 (const ezVec4 &value) override
 Outputs the value via WriteBinaryData().
 
virtual void WriteQuat (const ezQuat &value) override
 Outputs the value via WriteBinaryData().
 
virtual void WriteMat3 (const ezMat3 &value) override
 Outputs the value via WriteBinaryData().
 
virtual void WriteMat4 (const ezMat4 &value) override
 Outputs the value via WriteBinaryData().
 
virtual void WriteUuid (const ezUuid &value) override
 Outputs the value via WriteBinaryData().
 
virtual void WriteBinaryData (const char *szDataType, const void *pData, ezUInt32 uiBytes, const char *szValueString=nullptr) override
 Implements the MongoDB way of writing binary data. First writes a "$type" variable, then a "$binary" variable that represents the raw data (Hex encoded, little endian).
 
virtual void BeginVariable (const char *szName) override
 Begins outputting a variable. szName is the variable name. More...
 
virtual void EndVariable () override
 Ends outputting a variable. More...
 
virtual void BeginArray (const char *szName=nullptr) override
 Begins outputting an array variable. More...
 
virtual void EndArray () override
 Ends outputting an array variable. More...
 
virtual void BeginObject (const char *szName=nullptr) override
 Begins outputting an object variable. More...
 
virtual void EndObject () override
 Ends outputting an object variable. More...
 
- Public Member Functions inherited from ezJSONWriter
 ezJSONWriter ()
 Constructor.
 
void SetWhitespaceMode (WhitespaceMode wsm)
 Configures how much whitespace is output.
 
void AddVariableBool (const char *szName, bool value)
 Shorthand for "BeginVariable(szName); WriteBool(value); EndVariable(); ".
 
void AddVariableInt32 (const char *szName, ezInt32 value)
 Shorthand for "BeginVariable(szName); WriteInt32(value); EndVariable(); ".
 
void AddVariableUInt32 (const char *szName, ezUInt32 value)
 Shorthand for "BeginVariable(szName); WriteUInt32(value); EndVariable(); ".
 
void AddVariableInt64 (const char *szName, ezInt64 value)
 Shorthand for "BeginVariable(szName); WriteInt64(value); EndVariable(); ".
 
void AddVariableUInt64 (const char *szName, ezUInt64 value)
 Shorthand for "BeginVariable(szName); WriteUInt64(value); EndVariable(); ".
 
void AddVariableFloat (const char *szName, float value)
 Shorthand for "BeginVariable(szName); WriteFloat(value); EndVariable(); ".
 
void AddVariableDouble (const char *szName, double value)
 Shorthand for "BeginVariable(szName); WriteDouble(value); EndVariable(); ".
 
void AddVariableString (const char *szName, const char *value)
 Shorthand for "BeginVariable(szName); WriteString(value); EndVariable(); ".
 
void AddVariableNULL (const char *szName)
 Shorthand for "BeginVariable(szName); WriteNULL(value); EndVariable(); ".
 
void AddVariableTime (const char *szName, ezTime value)
 Shorthand for "BeginVariable(szName); WriteTime(value); EndVariable(); ".
 
void AddVariableUuid (const char *szName, ezUuid value)
 Shorthand for "BeginVariable(szName); WriteUuid(value); EndVariable(); ".
 
void AddVariableColor (const char *szName, const ezColor &value)
 Shorthand for "BeginVariable(szName); WriteColor(value); EndVariable(); ".
 
void AddVariableVec2 (const char *szName, const ezVec2 &value)
 Shorthand for "BeginVariable(szName); WriteVec2(value); EndVariable(); ".
 
void AddVariableVec3 (const char *szName, const ezVec3 &value)
 Shorthand for "BeginVariable(szName); WriteVec3(value); EndVariable(); ".
 
void AddVariableVec4 (const char *szName, const ezVec4 &value)
 Shorthand for "BeginVariable(szName); WriteVec4(value); EndVariable(); ".
 
void AddVariableQuat (const char *szName, const ezQuat &value)
 Shorthand for "BeginVariable(szName); WriteQuat(value); EndVariable(); ".
 
void AddVariableMat3 (const char *szName, const ezMat3 &value)
 Shorthand for "BeginVariable(szName); WriteMat3(value); EndVariable(); ".
 
void AddVariableMat4 (const char *szName, const ezMat4 &value)
 Shorthand for "BeginVariable(szName); WriteMat4(value); EndVariable(); ".
 
void AddVariableVariant (const char *szName, const ezVariant &value)
 Shorthand for "BeginVariable(szName); WriteVariant(value); EndVariable(); ".
 
virtual void WriteVariant (const ezVariant &value)
 The default implementation dispatches all supported types to WriteBool, WriteInt32, etc. and asserts on the more complex types. More...
 

Additional Inherited Members

- Public Types inherited from ezJSONWriter
enum  WhitespaceMode {
  All, LessIndentation, NoIndentation, NewlinesOnly,
  None
}
 Modes to configure how much whitespace the JSON writer will output. More...
 
- Protected Types inherited from ezStandardJSONWriter
enum  State {
  Invalid, Empty, Variable, Object,
  NamedObject, Array, NamedArray
}
 
- Protected Member Functions inherited from ezStandardJSONWriter
void End ()
 
void OutputString (const char *sz)
 
void OutputEscapedString (const char *sz)
 
void OutputIndentation ()
 
- Protected Attributes inherited from ezStandardJSONWriter
ezInt32 m_iIndentation
 
ezStreamWriterBasem_pOutput
 
ezHybridArray< JSONState, 16 > m_StateStack
 

Detailed Description

This class will redirect all calls to WriteInt32, etc. to WriteBinaryData(), meaning it will output all data using a syntax similar to the MongoDB syntax for binary data.

See http://docs.mongodb.org/manual/reference/mongodb-extended-json/ for some information about the extended syntax.

Writing all values through WriteBinaryData() means that all values can be written with a type and their exact bit representation. Thus JSON files written with ezExtendedJSONWriter will not lose precision and contain more information about the data types.


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