 |
ATLAS Offline Software
|
Go to the documentation of this file.
11 #include "CoralBase/Blob.h"
21 uLongf comprLen = compressBound(strlen(in));
23 blob.resize(comprLen);
24 unsigned char*
ptr =
static_cast<unsigned char*
>(
blob.startingAddress());
25 if (
compress(
ptr, &comprLen,
reinterpret_cast<const unsigned char*
>(in), strlen(in)) != Z_OK) {
28 blob.resize(comprLen);
42 TMemFile
fout(
"buffer",
"recreate");
44 tree->CloneTree(-1,
"fast")->Write();
46 uLongf comprLen =
fout.GetSize();
47 unsigned char *
buffer =
new unsigned char[comprLen];
50 blob.resize(comprLen);
51 char*
ptr =
reinterpret_cast<char*
>(
blob.startingAddress());
64 uLongf uncompLen = 50000;
65 std::unique_ptr<unsigned char[]> uncompBuf(
new unsigned char[uncompLen+1]);
68 actualLen = uncompLen;
69 int res(uncompress(uncompBuf.get(), &actualLen,
reinterpret_cast<const unsigned char*
>(
blob.startingAddress()),
static_cast<uLongf
>(
blob.size())));
70 if(
res == Z_OK )
break;
71 if(
res == Z_BUF_ERROR) {
73 std::cout <<
"ATTENTION: Increasing buffer to " << uncompLen << std::endl;
74 uncompBuf.reset(
new unsigned char[uncompLen+1]);
81 uncompBuf.get()[actualLen]=0;
82 out = std::move(uncompBuf);
88 std::unique_ptr<unsigned char[]> bf {};
91 const char* cstring =
reinterpret_cast<const char*
>(bf.get());
92 out.assign(cstring, len);
103 std::cout <<
"ATTENTION: Cannot unpack Blob object as JSON!" << std::endl;
110 const std::string_view
name){
111 const char* cstring =
reinterpret_cast<const char*
>(
blob.startingAddress());
113 sb.assign(cstring,
blob.size());
115 TMemFile
f(
"buffer",
reinterpret_cast<char*
>(bdata.data()), bdata.size());
117 f.GetObject(
name.data(),
t);
void compress(const AmgSymMatrix(N) &covMatrix, std::vector< float > &vec)
bool compressBlob(const char *, coral::Blob &)
bool readBlobAsJson(const coral::Blob &, nlohmann::json &)
bool writeBlobFromTTree(TTree *, coral::Blob &)
std::vector< unsigned char > base64_decode(const std::string &)
bool readBlobAsString(const coral::Blob &, std::string &)
std::pair< std::vector< unsigned int >, bool > res
bool uncompressBlob(const coral::Blob &, std::unique_ptr< unsigned char[]> &, unsigned long &)
std::string base64_encode(const unsigned char *, unsigned int)
bool writeBlobFromJson(const nlohmann::json &, coral::Blob &)
bool readBlobAsTTree(const coral::Blob &blob, std::unique_ptr< TTree > &tree, const std::string_view name="tree")
Interprets the coral::Blob as a TTree instance.
bool writeBlobFromString(const std::string_view, coral::Blob &)