#include <string>
#include <msp/core/noncopyable.h>
#include <msp/io/base.h>
+#include "mspdatafile_api.h"
namespace Msp {
namespace DataFile {
class Collection;
-class RawData: public NonCopyable
+class MSPDATAFILE_API RawData: public NonCopyable
{
private:
enum Flags
char *data = nullptr;
char *owned_data = nullptr;
+ static const char signature[4];
+
public:
~RawData();
+ static bool detect_signature(const std::string &);
+
void open_file(Collection &, const std::string &);
void open_io(IO::Base &, const std::string &);
void load();
void load_into(void *);
+ void write_io(IO::Base &, bool = false);
+
std::size_t get_size() const { return size; }
const void *get_data() const { return data; }
};