10 #ifndef SUPPORTLIB_BLOB_H
11 #define SUPPORTLIB_BLOB_H
17 #include <boost/iostreams/filter/gzip.hpp>
18 #include <boost/iostreams/filtering_stream.hpp>
23 class Blob :
private std::vector<char>,
public Object<Blob>
26 using std::vector<char>::push_back;
27 using std::vector<char>::pop_back;
28 using std::vector<char>::emplace_back;
29 using std::vector<char>::front;
30 using std::vector<char>::back;
31 using std::vector<char>::operator[];
32 using std::vector<char>::operator=;
33 using std::vector<char>::begin;
34 using std::vector<char>::end;
35 using std::vector<char>::cbegin;
36 using std::vector<char>::cend;
37 using std::vector<char>::crbegin;
38 using std::vector<char>::crend;
39 using std::vector<char>::assign;
40 using std::vector<char>::size;
41 using std::vector<char>::at;
42 using std::vector<char>::clear;
43 using std::vector<char>::empty;
44 using std::vector<char>::erase;
45 using std::vector<char>::insert;
46 using std::vector<char>::resize;
47 using std::vector<char>::reserve;
48 using std::vector<char>::iterator;
49 using std::vector<char>::const_iterator;
50 using std::vector<char>::data;
51 using std::vector<char>::vector;
57 return std::string(begin(), end());
65 assign(s.begin(), s.end());
75 bool toFile(
const std::filesystem::path& file){
84 void loadFile(
const std::filesystem::path& file) {
107 boost::iostreams::filtering_istreambuf in;
108 in.push(boost::iostreams::gzip_compressor(boost::iostreams::zlib::best_compression));
109 in.push(boost::iostreams::array_source(data(), size()));
110 assign(std::istreambuf_iterator<char>{&in}, {});
117 boost::iostreams::filtering_istreambuf in;
118 in.push(boost::iostreams::gzip_decompressor(boost::iostreams::zlib::best_compression));
119 in.push(boost::iostreams::array_source(data(), size()));
120 assign(std::istreambuf_iterator<char>{&in}, {});
Contains Base64 encoding/decoding algorithms.
Contains FileSystem I/O functions.
Base class of all classes.
Binary large object.
Definition: Blob.h:24
void loadString(const std::string &s)
Definition: Blob.h:64
void loadBase64(const std::string &data)
Definition: Blob.h:99
void compress()
Definition: Blob.h:106
std::string toString() const
Definition: Blob.h:56
bool toFile(const std::filesystem::path &file)
Definition: Blob.h:75
void decompress()
Definition: Blob.h:116
std::string toBase64() const
Definition: Blob.h:91
void loadFile(const std::filesystem::path &file)
Definition: Blob.h:84
Base Class of all classes.
Definition: Object.h:33
std::vector< char > Decode(const std::string &base64Data)
Definition: Base64.h:104
std::string Encode(const std::vector< char > &data)
Definition: Base64.h:60
std::vector< char > LoadFile(const std::filesystem::path &file)
Definition: FileSystem.h:44
bool WriteFile(const std::filesystem::path &file, const std::vector< char > &data)
Definition: FileSystem.h:68
Namespace for giri's C++ support library.
Definition: Base64.h:47