载入中...
搜索中...
未找到
DataModule.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4
5#include "CompressedData.h"
6#include "Compressor.h"
7#include "HashFunction.h"
8#include "DataView.h"
9#include "ByteData.h"
10#include "JsonDocument.h"
11#include "XmlDocument.h"
12
13#include "common/Module.h"
14
15#include <string>
16
17namespace eve
18{
19namespace data
20{
21
29
43EVENGINE_API_FOUNDATION CompressedData *compress(std::string format, const char *rawbytes, size_t rawsize,
44 int level = -1);
45
55EVENGINE_API_FOUNDATION char *decompress(CompressedData *data, size_t &decompressedsize);
56
68EVENGINE_API_FOUNDATION char *decompress(std::string format, const char *cbytes, size_t compressedsize,
69 size_t &rawsize);
70
83EVENGINE_API_FOUNDATION char *encode(std::string format, const char *src, size_t srclen, size_t &dstlen,
84 size_t linelen = 0);
85
97EVENGINE_API_FOUNDATION char *decode(std::string format, const char *src, size_t srclen, size_t &dstlen);
98
107EVENGINE_API_FOUNDATION std::string hash(std::string function, Data *input);
109EVENGINE_API_FOUNDATION std::string hash(std::string function, const char *input, uint64_t size);
111EVENGINE_API_FOUNDATION void hash(std::string function, Data *input, HashFunction::Value &output);
113EVENGINE_API_FOUNDATION void hash(std::string function, const char *input, uint64_t size, HashFunction::Value &output);
114
115
118public:
121 DataModule();
123 virtual ~DataModule();
124
126 DataView *newDataView(Data *data, size_t offset, size_t size);
128 ByteData *newByteData(size_t size);
130 ByteData *newByteData(const void *d, size_t size);
132 ByteData *newByteData(void *d, size_t size, bool own);
133
135 JsonDocument *newJsonDocument();
137 JsonDocument *decodeJson(const std::string &text);
139 JsonDocument *decodeJson(const std::string &text, std::string *error);
141 JsonDocument *decodeJson(Data *data, std::string *error = nullptr);
143 std::string encodeJson(JsonDocument *doc, bool pretty = false);
145 ByteData * encodeJsonData(JsonDocument *doc, bool pretty = false);
146
148 XmlDocument *newXmlDocument();
150 XmlDocument *decodeXml(const std::string &text);
152 XmlDocument *decodeXml(const std::string &text, std::string *error);
154 XmlDocument *decodeXml(Data *data, std::string *error = nullptr);
156 std::string encodeXml(XmlDocument *doc, bool pretty = false);
158 ByteData * encodeXmlData(XmlDocument *doc, bool pretty = false);
159
160}; // DataModule
161
162} // data
163} // eve
std::string output
std::array< std::uint8_t, 32 > hash
Definition Evpack.cpp:172
EvpackChunkInput input
Definition Evpack.cpp:170
#define EVENGINE_API_FOUNDATION
每个链接组(link group)各自的导出宏。
Definition Export.h:106
std::string text
size_t offset
int level
std::string error
Definition Package.cpp:60
float d
MigrationFunction function
float size
Definition TreeMesh.cpp:156
Data public API.
Definition Data.h:8
EVENGINE_API_FOUNDATION public API.
Definition Module.h:46
In-memory byte buffer implementing eve::Data (ref-counted).
Definition ByteData.h:13
EVENGINE_API_FOUNDATION public API.
Definition DataModule.h:117
Module_REG(DataModule)
Contains a reference to a subsection of an existing Data object.
Definition DataView.h:16
Thin RAII wrapper over a Poco JSON value (object/array/scalar).
Thin RAII wrapper over a Poco XML DOM document.
Definition XmlDocument.h:12
char * encode(std::string format, const char *src, size_t srclen, size_t &dstlen, size_t linelen)
Encodes raw bytes (e.g. hex / base64) into a text buffer.
CompressedData * compress(std::string format, const char *rawbytes, size_t rawsize, int level)
Compresses a block of memory using the given compression format.
char * decompress(CompressedData *data, size_t &decompressedsize)
Decompresses existing compressed data into raw bytes.
ContainerType
ContainerType public API.
Definition DataModule.h:24
@ CONTAINER_MAX_ENUM
Definition DataModule.h:27
@ CONTAINER_DATA
Definition DataModule.h:25
@ CONTAINER_STRING
Definition DataModule.h:26
char * decode(std::string format, const char *src, size_t srclen, size_t &dstlen)
Decodes a text buffer (hex / base64) back into raw bytes.
Build metadata (engine git commit, build time, third-party version).
Definition Build.cpp:16