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>
42#ifdef DOXYGEN_BUG_WORKAROUND
43#define Base64ToBinary Base64ToBinary_
64 inline void BinaryToBase64(
const char* binary,
size_t size, std::ostringstream& base64)
66 std::string bin(binary, size);
67 base64<<Internal::SerializationUtils::ToBase64(bin,
false);
77 inline void Base64ToBinary(
const std::string& base64Str, std::vector<char>& binary)
80 Internal::SerializationUtils::FromBase64(base64Str, bin);
81 binary.insert(binary.begin(), bin.begin(), bin.end());
92 template <
class RepositoryT>
93 void BinaryToXml(
const RepositoryT* repository,
const char* blob, std::ostringstream& xml)
95 (Internal::BlobToXmlSerializer<RepositoryT>(repository))(blob, xml);
106 template <
class RepositoryT>
107 void XmlToBinary(
const RepositoryT* repository,
const char* xml, std::vector<char>& binary)
109 (Internal::XmlToBlobSerializer<RepositoryT>(repository))(xml, binary);
120 template <
class RepositoryT>
121 void BinaryToJson(
const RepositoryT* repository,
const char* blob, std::ostringstream& json)
123 (Internal::BlobToJsonSerializer<RepositoryT>(repository))(blob, json);
134 template <
class RepositoryT>
135 void JsonToBinary(
const RepositoryT* repository,
const char* json, std::vector<char>& binary)
137 (Internal::JsonToBlobSerializer<RepositoryT>(repository))(json, binary);
153 template <
class RepositoryT>
156 (Internal::ToStringHelper<RepositoryT>(repository, includeCreateRoutines)).
RepositoryToString(os);
166 template <
class RepositoryT>
167 void TypeToString(
const RepositoryT* repository, DotsC_TypeId typeId, std::ostream &os)
169 (Internal::ToStringHelper<RepositoryT>(repository,
false)).TypeInfoToString(typeId, os);
176#ifdef DOXYGEN_BUG_WORKAROUND
177#undefef Base64ToBinary
This namespace contains all the functionality and definitions of the SAFIR SDK.
Definition Backdoor.h:31
void Base64ToBinary(const std::string &base64Str, std::vector< char > &binary)
Decodes base64 data into binary data.
Definition Serialization.h:77
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:154
void BinaryToJson(const RepositoryT *repository, const char *blob, std::ostringstream &json)
Serializes binary representation of an object to json.
Definition Serialization.h:121
void BinaryToBase64(const char *binary, size_t size, std::ostringstream &base64)
Encodes binary data to base64.
Definition Serialization.h:64
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:107
void BinaryToXml(const RepositoryT *repository, const char *blob, std::ostringstream &xml)
Serializes binary representation of an object to xml.
Definition Serialization.h:93
void TypeToString(const RepositoryT *repository, DotsC_TypeId typeId, std::ostream &os)
Writes a complete text description of a type.
Definition Serialization.h:167
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:135