libcluon  0.0.148
cluon::ToJSONVisitor Class Reference

#include <ToJSONVisitor.hpp>

Public Member Functions

 ToJSONVisitor (bool withOuterCurlyBraces=true, const std::map< uint32_t, bool > &mask={}) noexcept
 
std::string json () const noexcept
 
void preVisit (int32_t id, const std::string &shortName, const std::string &longName) noexcept
 
void postVisit () noexcept
 
void visit (uint32_t id, std::string &&typeName, std::string &&name, bool &v) noexcept
 
void visit (uint32_t id, std::string &&typeName, std::string &&name, char &v) noexcept
 
void visit (uint32_t id, std::string &&typeName, std::string &&name, int8_t &v) noexcept
 
void visit (uint32_t id, std::string &&typeName, std::string &&name, uint8_t &v) noexcept
 
void visit (uint32_t id, std::string &&typeName, std::string &&name, int16_t &v) noexcept
 
void visit (uint32_t id, std::string &&typeName, std::string &&name, uint16_t &v) noexcept
 
void visit (uint32_t id, std::string &&typeName, std::string &&name, int32_t &v) noexcept
 
void visit (uint32_t id, std::string &&typeName, std::string &&name, uint32_t &v) noexcept
 
void visit (uint32_t id, std::string &&typeName, std::string &&name, int64_t &v) noexcept
 
void visit (uint32_t id, std::string &&typeName, std::string &&name, uint64_t &v) noexcept
 
void visit (uint32_t id, std::string &&typeName, std::string &&name, float &v) noexcept
 
void visit (uint32_t id, std::string &&typeName, std::string &&name, double &v) noexcept
 
void visit (uint32_t id, std::string &&typeName, std::string &&name, std::string &v) noexcept
 
template<typename T >
void visit (uint32_t &id, std::string &&typeName, std::string &&name, T &value) noexcept
 

Static Public Member Functions

static std::string encodeBase64 (const std::string &input) noexcept
 

Detailed Description

This class provides a visitor to transform a message into JSON:

MyMessage msg;
// Set some values in msg.
msg.accept(j);
std::cout << j.json() << std::endl;

Constructor & Destructor Documentation

◆ ToJSONVisitor()

cluon::ToJSONVisitor::ToJSONVisitor ( bool  withOuterCurlyBraces = true,
const std::map< uint32_t, bool > &  mask = {} 
)
noexcept

Constructor.

Parameters
withOuterCurlyBracesInclude the outer curly braces.
maskMap describing which fields to render. If empty, all fields will be emitted; individual field identifiers can be masked setting them to false.

Member Function Documentation

◆ encodeBase64()

std::string cluon::ToJSONVisitor::encodeBase64 ( const std::string &  input)
staticnoexcept

This method returns the base64-encoded representation for the given input.

Parameters
inputto encode as base64
Returns
base64 encoded input.

References retVal.

Referenced by visit(), and cluon::ToCSVVisitor::visit().

◆ json()

std::string cluon::ToJSONVisitor::json ( ) const
noexcept
Returns
JSON-encoded data.

References retVal.

Referenced by visit().

◆ postVisit()

void cluon::ToJSONVisitor::postVisit ( )
noexcept

◆ preVisit()

void cluon::ToJSONVisitor::preVisit ( int32_t  id,
const std::string &  shortName,
const std::string &  longName 
)
noexcept

◆ visit() [1/14]

void cluon::ToJSONVisitor::visit ( uint32_t  id,
std::string &&  typeName,
std::string &&  name,
bool &  v 
)
noexcept

◆ visit() [2/14]

void cluon::ToJSONVisitor::visit ( uint32_t  id,
std::string &&  typeName,
std::string &&  name,
char &  v 
)
noexcept

◆ visit() [3/14]

void cluon::ToJSONVisitor::visit ( uint32_t  id,
std::string &&  typeName,
std::string &&  name,
int8_t &  v 
)
noexcept

◆ visit() [4/14]

void cluon::ToJSONVisitor::visit ( uint32_t  id,
std::string &&  typeName,
std::string &&  name,
uint8_t &  v 
)
noexcept

◆ visit() [5/14]

void cluon::ToJSONVisitor::visit ( uint32_t  id,
std::string &&  typeName,
std::string &&  name,
int16_t &  v 
)
noexcept

◆ visit() [6/14]

void cluon::ToJSONVisitor::visit ( uint32_t  id,
std::string &&  typeName,
std::string &&  name,
uint16_t &  v 
)
noexcept

◆ visit() [7/14]

void cluon::ToJSONVisitor::visit ( uint32_t  id,
std::string &&  typeName,
std::string &&  name,
int32_t &  v 
)
noexcept

◆ visit() [8/14]

void cluon::ToJSONVisitor::visit ( uint32_t  id,
std::string &&  typeName,
std::string &&  name,
uint32_t &  v 
)
noexcept

◆ visit() [9/14]

void cluon::ToJSONVisitor::visit ( uint32_t  id,
std::string &&  typeName,
std::string &&  name,
int64_t &  v 
)
noexcept

◆ visit() [10/14]

void cluon::ToJSONVisitor::visit ( uint32_t  id,
std::string &&  typeName,
std::string &&  name,
uint64_t &  v 
)
noexcept

◆ visit() [11/14]

void cluon::ToJSONVisitor::visit ( uint32_t  id,
std::string &&  typeName,
std::string &&  name,
float &  v 
)
noexcept

◆ visit() [12/14]

void cluon::ToJSONVisitor::visit ( uint32_t  id,
std::string &&  typeName,
std::string &&  name,
double &  v 
)
noexcept

◆ visit() [13/14]

void cluon::ToJSONVisitor::visit ( uint32_t  id,
std::string &&  typeName,
std::string &&  name,
std::string &  v 
)
noexcept

References encodeBase64().

◆ visit() [14/14]

template<typename T >
void cluon::ToJSONVisitor::visit ( uint32_t &  id,
std::string &&  typeName,
std::string &&  name,
T &  value 
)
inlinenoexcept

References json().