AronDTOWriter Class Reference

Writes the ice representation (data::dto::*) directly. More...

#include <RobotAPI/libraries/aron/core/data/rw/writer/arondto/AronDTOWriter.h>

+ Inheritance diagram for AronDTOWriter:

Public Member Functions

 AronDTOWriter ()=default
 
data::Descriptor getDescriptor (ReturnTypeConst &input) final
 
data::dto::GenericDataPtr writeBool (const bool i, const Path &p=Path()) override
 
data::dto::GenericDataPtr writeDict (const std::map< std::string, data::dto::GenericDataPtr > &elements, const std::optional< data::dto::GenericDataPtr > &extends=std::nullopt, const Path &p=Path()) override
 
data::dto::GenericDataPtr writeDict (std::map< std::string, data::dto::GenericDataPtr > &&elements, const std::optional< data::dto::GenericDataPtr > &extends, const Path &p) override
 Takes ownership of elements instead of copying it into the dict.
 
data::dto::GenericDataPtr writeDouble (const double i, const Path &p=Path()) override
 
data::dto::GenericDataPtr writeFloat (const float i, const Path &p=Path()) override
 
void writeImportance (data::dto::GenericDataPtr &output, const std::optional< float > &importance) final
 
data::dto::GenericDataPtr writeInt (const int i, const Path &p=Path()) override
 
data::dto::GenericDataPtr writeList (const std::vector< data::dto::GenericDataPtr > &elements, const Path &p=Path()) override
 
data::dto::GenericDataPtr writeLong (const long i, const Path &p=Path()) override
 
data::dto::GenericDataPtr writeNDArray (const std::vector< int > &shape, const std::string &typeAsString, const unsigned char *data, const Path &p=Path()) override
 
data::dto::GenericDataPtr writeString (const std::string &i, const Path &p=Path()) override
 
- Public Member Functions inherited from WriterInterface< data::dto::GenericDataPtr >
virtual data::Descriptor getDescriptor (ReturnTypeConst &input)=0
 
virtual ReturnType writeList (std::vector< ReturnType > &&elements, const Path &p)
 Same bargain as the writeDict overload below, for lists.
 
virtual ReturnType writeNull ()
 
ReturnType writePrimitive (const bool i, const Path &p=Path())
 
ReturnType writePrimitive (const double i, const Path &p=Path())
 
ReturnType writePrimitive (const float i, const Path &p=Path())
 
ReturnType writePrimitive (const int i, const Path &p=Path())
 
ReturnType writePrimitive (const long i, const Path &p=Path())
 
ReturnType writePrimitive (const std::string &i, const Path &p=Path())
 
virtual ~WriterInterface ()=default
 

Static Public Member Functions

static data::dto::DictPtr DictCastAndCheck (const data::dto::GenericDataPtr &data)
 Narrow the generic result of write() to a dict, throwing if it is not one.
 
static data::dto::AronIntPtr IntCastAndCheck (const data::dto::GenericDataPtr &data)
 As DictCastAndCheck(), for generated int enums.
 

Additional Inherited Members

- Public Types inherited from WriterInterface< data::dto::GenericDataPtr >
using ReturnType
 
using ReturnTypeConst
 

Detailed Description

Writes the ice representation (data::dto::*) directly.

VariantWriter builds a full navigator graph – a Variant object, its Path and its children container per node – and populates the ice objects alongside it. Code that only wants the ice representation, which is everything that sends data to a memory server, pays for that graph and then throws it away.

This writer emits the ice objects and nothing else. It is the writer behind AronGeneratedObject::toAronDTO().

The Path arguments are accepted to satisfy the writer interface and are ignored: paths exist for navigation and error reporting on the variant representation, and the ice objects carry no path.

Constructor & Destructor Documentation

◆ AronDTOWriter()

AronDTOWriter ( )
default

Member Function Documentation

◆ DictCastAndCheck()

data::dto::DictPtr DictCastAndCheck ( const data::dto::GenericDataPtr & data)
static

Narrow the generic result of write() to a dict, throwing if it is not one.

The variant representation offers this as Dict::DynamicCastAndCheck; the ice classes have no such helper, and generated code needs one to type its toAronDTO() return value.

◆ getDescriptor()

data::Descriptor getDescriptor ( ReturnTypeConst & input)
final

◆ IntCastAndCheck()

data::dto::AronIntPtr IntCastAndCheck ( const data::dto::GenericDataPtr & data)
static

As DictCastAndCheck(), for generated int enums.

◆ writeBool()

data::dto::GenericDataPtr writeBool ( const bool i,
const Path & p = Path() )
overridevirtual

◆ writeDict() [1/2]

data::dto::GenericDataPtr writeDict ( const std::map< std::string, data::dto::GenericDataPtr > & elements,
const std::optional< data::dto::GenericDataPtr > & extends = std::nullopt,
const Path & p = Path() )
overridevirtual

◆ writeDict() [2/2]

data::dto::GenericDataPtr writeDict ( std::map< std::string, data::dto::GenericDataPtr > && elements,
const std::optional< data::dto::GenericDataPtr > & extends,
const Path & p )
overridevirtual

Takes ownership of elements instead of copying it into the dict.

Reimplemented from WriterInterface< data::dto::GenericDataPtr >.

◆ writeDouble()

data::dto::GenericDataPtr writeDouble ( const double i,
const Path & p = Path() )
overridevirtual

◆ writeFloat()

data::dto::GenericDataPtr writeFloat ( const float i,
const Path & p = Path() )
overridevirtual

◆ writeImportance()

void writeImportance ( data::dto::GenericDataPtr & output,
const std::optional< float > & importance )
finalvirtual

◆ writeInt()

data::dto::GenericDataPtr writeInt ( const int i,
const Path & p = Path() )
overridevirtual

◆ writeList()

data::dto::GenericDataPtr writeList ( const std::vector< data::dto::GenericDataPtr > & elements,
const Path & p = Path() )
overridevirtual

◆ writeLong()

data::dto::GenericDataPtr writeLong ( const long i,
const Path & p = Path() )
overridevirtual

◆ writeNDArray()

data::dto::GenericDataPtr writeNDArray ( const std::vector< int > & shape,
const std::string & typeAsString,
const unsigned char * data,
const Path & p = Path() )
overridevirtual

◆ writeString()

data::dto::GenericDataPtr writeString ( const std::string & i,
const Path & p = Path() )
overridevirtual

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