Enrollment 28.2.0
Loading...
Searching...
No Matches
JsonWriter Class Referencefinal

JSON implementation of Writer abstraction. More...

#include <JsonWriter.h>

Collaboration diagram for JsonWriter:

Public Member Functions

const char * Output () const
 Provides serialization output.
void Write (const char *name, const Serializable &s) final
 Serialize serializable.
void WriteRoot (Serializable &s) final
 Serialize serializable as root object.
void WriteNull (const char *name) final
 Serialize null object.
void Write (const char *name, const char *value) final
 Serialize string.
void Write (const char *name, int value) final
 Serialize int.
void Write (const char *name, unsigned int value) final
 Serialize unsigned int.
void Write (const char *name, double value) final
 Serialize double.
void Write (const char *name, int64_t value) final
 Serialize int64_t integer.
void Write (const char *name, uint64_t value) final
 Serialize uint64_t integer.
void Write (const char *name, const std::shared_ptr< Image > &image) final
 Serialize Image.
 JsonWriter ()
 Constructor sets up serialization backend.
void Write (const char *name, const std::shared_ptr< const Serializable > &s)
 Serialize const serializable given as shared_ptr.
template<typename T>
void Write (const char *name, const std::optional< T > &s)
 Serialize serializable given as shared_ptr.
void WriteArray (const char *name, const std::vector< uint8_t > &value)
 Serialize bytes from vector.
template<typename T>
void WriteArray (const char *name, const T &array)
 Serialize array of elements that are suitable for range-based for loop.
void SetBytesStrategy (BytesWriterStrategy &s)
 Set bytes serialization strategy .

Detailed Description

JSON implementation of Writer abstraction.

It uses RapidJSON

Member Function Documentation

◆ Output()

const char * Output ( ) const
inlinenodiscard

Provides serialization output.

Returns
serialization output

◆ SetBytesStrategy()

void SetBytesStrategy ( BytesWriterStrategy & s)
inlineinherited

Set bytes serialization strategy .

Parameters
sstrategy to serialize bytes

◆ Write() [1/10]

void Write ( const char * name,
const char * value )
inlinefinalvirtual

Serialize string.

Parameters
namename of value (key)
valuestring value

Implements Writer.

◆ Write() [2/10]

void Write ( const char * name,
const Serializable & s )
inlinefinalvirtual

Serialize serializable.

Parameters
namename of serializable
sclass that implements Serializable interface

Implements Writer.

◆ Write() [3/10]

void Write ( const char * name,
const std::shared_ptr< Image > & value )
inlinefinalvirtual

Serialize Image.

Once the image serialization needs to be modified e.g. all images are serialized in specific format, then strategy can be used similar as BytesWriterStrategy.

Parameters
namename of value (key)
valueImage

Implements Writer.

References Writer::WriteArray(), and WriteNull().

Here is the call graph for this function:

◆ Write() [4/10]

void Write ( const char * name,
double value )
inlinefinalvirtual

Serialize double.

Parameters
namename of value (key)
valuedouble value

Implements Writer.

◆ Write() [5/10]

void Write ( const char * name,
int value )
inlinefinalvirtual

Serialize int.

Parameters
namename of value (key)
valueinteger value

Implements Writer.

◆ Write() [6/10]

void Write ( const char * name,
int64_t value )
inlinefinalvirtual

Serialize int64_t integer.

Parameters
namename of value (key)
valueunsigned integer value

Implements Writer.

◆ Write() [7/10]

void Write ( const char * name,
uint64_t value )
inlinefinalvirtual

Serialize uint64_t integer.

Parameters
namename of value (key)
valueunsigned integer value

Implements Writer.

◆ Write() [8/10]

void Write ( const char * name,
unsigned int value )
inlinefinalvirtual

Serialize unsigned int.

Parameters
namename of value (key)
valueunsigned integer value

Implements Writer.

◆ Write() [9/10]

template<typename T>
void Write ( const char * name,
const std::optional< T > & s )
inlineinherited

Serialize serializable given as shared_ptr.

Parameters
namename of serializable
sclass that implements Serializable interface

References Write(), and WriteNull().

Here is the call graph for this function:

◆ Write() [10/10]

void Write ( const char * name,
const std::shared_ptr< const Serializable > & s )
inlineinherited

Serialize const serializable given as shared_ptr.

Parameters
namename of serializable
sclass that implements Serializable interface

References Write(), and WriteNull().

Here is the call graph for this function:

◆ WriteArray() [1/2]

void WriteArray ( const char * name,
const std::vector< uint8_t > & value )
inlineinherited

Serialize bytes from vector.

It uses BytesWriterStrategy to serialize bytes. The strategy can be set by SetBytesStrategy function.

Parameters
namename of value (key)
valuevector of bytes

Referenced by JsonWriter::Write(), EmbeddingTemplate::WriteTo(), FaceTemplate::WriteTo(), ICSTemplate::WriteTo(), IrisTemplate::WriteTo(), ModalitiesICSTemplate::WriteTo(), and ModalitiesTemplate::WriteTo().

Here is the caller graph for this function:

◆ WriteArray() [2/2]

template<typename T>
void WriteArray ( const char * name,
const T & array )
inherited

Serialize array of elements that are suitable for range-based for loop.

Parameters
namename of value (key)
arrayarray suitable for range-based for loop.
Template Parameters
Ttype suitable for range-based for loop.

◆ WriteNull()

void WriteNull ( const char * name)
inlinefinalvirtual

Serialize null object.

Parameters
namename of value (key)

Implements Writer.

Referenced by Write().

Here is the caller graph for this function:

◆ WriteRoot()

void WriteRoot ( Serializable & s)
inlinefinalvirtual

Serialize serializable as root object.

Parameters
sclass that implements Serializable interface

Implements Writer.


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