Pakman
serialisation.h File Reference
#include <ostream>
#include "core/Command.h"
#include "core/TaskHandler.h"
#include "LineString.h"
Include dependency graph for serialisation.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

template<typename value_type >
void serialise_scalar_value (const LineString &key, const value_type &value, std::ostream &out)
 
template<>
void serialise_scalar_value (const LineString &key, const bool &value, std::ostream &out)
 
template<>
void serialise_scalar_value (const LineString &key, const std::string &value, std::ostream &out)
 
template<>
void serialise_scalar_value (const LineString &key, const Command &value, std::ostream &out)
 
template<>
void serialise_scalar_value (const LineString &key, const TaskHandler &value, std::ostream &out)
 
template<typename value_type >
void serialise_vector (const LineString &key, const std::vector< value_type > &values, std::ostream &out)
 
std::ostream & operator<< (std::ostream &out, const LineString &line_string)
 

Detailed Description

This file contains functions to serialise scalar values, vector values, and the whole Pakman state.

Definition in file serialisation.h.

Function Documentation

◆ operator<<()

std::ostream& operator<< ( std::ostream &  out,
const LineString line_string 
)

Overload << operator for LineString

Parameters
outoutput stream
line_stringline string
Returns
output stream

Definition at line 43 of file serialisation.cc.

◆ serialise_scalar_value() [1/5]

template<typename value_type >
void serialise_scalar_value ( const LineString key,
const value_type &  value,
std::ostream &  out 
)

Serialise scalar value

Parameters
keyidentifier of serialised value
valuevalue to serialise
outoutput stream to write to

Definition at line 24 of file serialisation.h.

◆ serialise_scalar_value() [2/5]

template<>
void serialise_scalar_value ( const LineString key,
const bool &  value,
std::ostream &  out 
)

Serialise scalar bool value

Parameters
keyidentifier of serialised value
valuebool to serialise
outoutput stream to write to

Definition at line 4 of file serialisation.cc.

◆ serialise_scalar_value() [3/5]

template<>
void serialise_scalar_value ( const LineString key,
const std::string &  value,
std::ostream &  out 
)

Serialise scalar string value

In order to serialise a string value, we add a field containing the number of characters in the string.

Parameters
keyidentifier of serialised value
valuestring to serialise
outoutput stream to write to

Definition at line 18 of file serialisation.cc.

◆ serialise_scalar_value() [4/5]

template<>
void serialise_scalar_value ( const LineString key,
const Command value,
std::ostream &  out 
)

Serialise scalar Command value

We serialise Command objects by serialising the raw command string.

Parameters
keyidentifier of serialised value
valueCommand to serialise
outoutput stream to write to

Definition at line 25 of file serialisation.cc.

◆ serialise_scalar_value() [5/5]

template<>
void serialise_scalar_value ( const LineString key,
const TaskHandler value,
std::ostream &  out 
)

Serialise scalar TaskHandler value

We serialise TaskHandler objects by serialising its input string, output string, and error code.

Parameters
keyidentifier of serialised value
valueTaskHandler to serialise
outoutput stream to write to

Definition at line 32 of file serialisation.cc.

◆ serialise_vector()

template<typename value_type >
void serialise_vector ( const LineString key,
const std::vector< value_type > &  values,
std::ostream &  out 
)

Serialise vector

Parameters
keyidentifier of serialised vector
valuesvalues to serialise
outoutput stream to write to

Definition at line 85 of file serialisation.h.