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);
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:30
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 Base64ToBinary(const std::string &base64Str, std::vector< char > &binary)
Decodes base64 data into binary data.
Definition: Serialization.h:69
void BinaryToJson(const RepositoryT *repository, const char *blob, std::ostringstream &json)
Serializes binary representation of an object to json.
Definition: Serialization.h:113
void TypeToString(const RepositoryT *repository, DotsC_TypeId typeId, std::ostream &os)
Writes a complete text description of a type.
Definition: Serialization.h:159
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 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
void BinaryToBase64(const char *binary, size_t size, std::ostringstream &base64)
Encodes binary data to base64.
Definition: Serialization.h:56
void BinaryToXml(const RepositoryT *repository, const char *blob, std::ostringstream &xml)
Serializes binary representation of an object to xml.
Definition: Serialization.h:85