Code reorganiation

This commit is contained in:
2023-03-09 16:22:08 +01:00
parent 14a109b21c
commit 5ef773b3fb
8 changed files with 229 additions and 323 deletions
+32 -1
View File
@@ -25,7 +25,7 @@
#include <variant>
#include <fstream>
#include <cstring>
#include "propertyvariant.h"
#include "variant.h"
namespace LibXISF
{
@@ -33,6 +33,37 @@ namespace LibXISF
class XISFReaderPrivate;
class XISFWriterPrivate;
class LIBXISF_EXPORT ByteArray
{
using PtrType = std::vector<char>;
using Ptr = std::shared_ptr<PtrType>;
Ptr _data;
void makeUnique();
public:
ByteArray() : ByteArray((size_t)0) {}
explicit ByteArray(size_t size);
explicit ByteArray(const char *ptr);
ByteArray(const char *ptr, size_t size)
{
_data = std::make_shared<std::vector<char>>();
_data->resize(size);
std::memcpy(data(), ptr, size);
}
ByteArray(const ByteArray &d);
char& operator[](size_t i);
const char& operator[](size_t i) const;
char* data() { return &_data->at(0); }
const char* data() const { return &_data->at(0); }
const char* constData() const { return &_data->at(0); }
size_t size() const;
void resize(size_t newsize);
void append(char c);
void decodeBase64();
void encodeBase64();
void encodeHex();
void decodeHex();
};
struct LIBXISF_EXPORT DataBlock
{
enum CompressionCodec