24#ifndef __DOTS_INTERNAL_SERIALIZATION_H__
25#define __DOTS_INTERNAL_SERIALIZATION_H__
31#include <Safir/Dob/Typesystem/ToolSupport/Internal/BasicTypeOperations.h>
32#include <Safir/Dob/Typesystem/ToolSupport/Internal/BlobToXmlSerializer.h>
33#include <Safir/Dob/Typesystem/ToolSupport/Internal/BlobToJsonSerializer.h>
34#include <Safir/Dob/Typesystem/ToolSupport/Internal/XmlToBlobSerializer.h>
35#include <Safir/Dob/Typesystem/ToolSupport/Internal/JsonToBlobSerializer.h>
36#include <Safir/Dob/Typesystem/ToolSupport/Internal/RepositoryToStringHelper.h>
56 inline void BinaryToBase64(
const char* binary,
size_t size, std::ostringstream& base64)
58 std::string bin(binary, size);
59 base64<<Internal::SerializationUtils::ToBase64(bin,
false);
69 inline void Base64ToBinary(
const std::string& base64Str, std::vector<char>& binary)
72 Internal::SerializationUtils::FromBase64(base64Str, bin);
73 binary.insert(binary.begin(), bin.begin(), bin.end());
84 template <
class RepositoryT>
85 void BinaryToXml(
const RepositoryT* repository,
const char* blob, std::ostringstream& xml)
87 (Internal::BlobToXmlSerializer<RepositoryT>(repository))(blob, xml);
98 template <
class RepositoryT>
99 void XmlToBinary(
const RepositoryT* repository,
const char* xml, std::vector<char>& binary)
101 (Internal::XmlToBlobSerializer<RepositoryT>(repository))(xml, binary);
112 template <
class RepositoryT>
113 void BinaryToJson(
const RepositoryT* repository,
const char* blob, std::ostringstream& json)
115 (Internal::BlobToJsonSerializer<RepositoryT>(repository))(blob, json);
126 template <
class RepositoryT>
127 void JsonToBinary(
const RepositoryT* repository,
const char* json, std::vector<char>& binary)
129 (Internal::JsonToBlobSerializer<RepositoryT>(repository))(json, binary);
145 template <
class RepositoryT>
148 (Internal::ToStringHelper<RepositoryT>(repository, includeCreateRoutines)).
RepositoryToString(os);
158 template <
class RepositoryT>
159 void TypeToString(
const RepositoryT* repository, DotsC_TypeId typeId, std::ostream &os)
161 (Internal::ToStringHelper<RepositoryT>(repository,
false)).TypeInfoToString(typeId, os);
This namespace contains all the functionality and definitions of the SAFIR SDK.
Definition Backdoor.h:31
This namespace contains all functionality of the DOB (Components DOSE and DOTS).
Definition Connection.h:38
This namespace contains the DOB Typesystem functionality and definitions.
Definition ArrayContainer.h:37
Definition BlobReader.h:41
void Base64ToBinary(const std::string &base64Str, std::vector< char > &binary)
Decodes base64 data into binary data.
Definition Serialization.h:69
void RepositoryToString(const RepositoryT *repository, bool includeCreateRoutines, std::ostream &os)
Writes a complete text description of a type repository and all of its content.
Definition Serialization.h:146
void BinaryToJson(const RepositoryT *repository, const char *blob, std::ostringstream &json)
Serializes binary representation of an object to json.
Definition Serialization.h:113
void BinaryToBase64(const char *binary, size_t size, std::ostringstream &base64)
Encodes binary data to base64.
Definition Serialization.h:56
void XmlToBinary(const RepositoryT *repository, const char *xml, std::vector< char > &binary)
Converts a xml representation of an object to binary form.
Definition Serialization.h:99
void BinaryToXml(const RepositoryT *repository, const char *blob, std::ostringstream &xml)
Serializes binary representation of an object to xml.
Definition Serialization.h:85
void TypeToString(const RepositoryT *repository, DotsC_TypeId typeId, std::ostream &os)
Writes a complete text description of a type.
Definition Serialization.h:159
void JsonToBinary(const RepositoryT *repository, const char *json, std::vector< char > &binary)
Converts a json representation of an object to binary form.
Definition Serialization.h:127
The TypeRepository class is the baseclass of any TypeRepository implementation.
Definition TypeRepository.h:737