15#include "CoreObject.h"
56class AnyFile :
public CoreObject,
public MediaFile {
77 AnyFile(isize capacity);
80 void init(isize capacity);
81 void init(
const fs::path &path)
throws;
82 void init(
const fs::path &path, std::istream &stream)
throws;
83 void init(std::istream &stream)
throws;
84 void init(
const u8 *buf, isize len)
throws;
85 void init(FILE *file)
throws;
93 virtual isize getSize()
const override {
return size; }
96 virtual u8 *getData()
const override {
return data; }
106 virtual string name()
const override;
107 virtual PETName<16> getName()
const;
110 u8 getData(isize nr) {
return (data && nr < size) ? data[nr] : 0; }
113 u64 fnv()
const override;
116 void strip(isize count);
125 void flash(u8 *buf, isize offset = 0)
const override;
134 virtual bool isCompatiblePath(
const fs::path &path) = 0;
135 virtual bool isCompatibleStream(std::istream &stream) = 0;
137 void readFromStream(std::istream &stream)
override;
138 void readFromFile(
const fs::path &path)
override;
139 void readFromBuffer(
const u8 *buf, isize len)
override;
143 void writeToStream(std::ostream &stream)
override;
144 void writeToFile(
const fs::path &path)
override;
145 void writeToBuffer(u8 *buf)
override;
151 virtual void finalizeRead() throws { };
152 virtual void finalizeWrite() throws { };
VirtualC64 project namespace.
Definition CmdQueue.cpp:16