18 #ifndef CUPT_FILE_SEEN
19 #define CUPT_FILE_SEEN
38 internal::FileImpl* __impl;
39 File(
const File&) =
delete;
46 operator bool()
const {
return size; }
47 operator string()
const {
return string(data, size); }
49 RawBuffer chompAsRecord()
const;
63 File(
const string& path,
const char* mode,
string& error);
66 virtual ~File() noexcept(false);
79 File& rawGetLine(const
char*& buffer,
size_t& size);
100 File& getLine(
string& line);
101 RawBuffer getRecord();
102 RawBuffer getBlock(
size_t size);
109 void getFile(
string& block);
114 void put(const
string& data);
120 void put(const
char* data,
size_t size);
121 void unbufferedPut(const
char* data,
size_t size);
133 void seek(
size_t newPosition);
141 void lock(
int flags);
145 class CUPT_API RequiredFile: public File
152 RequiredFile(
const string& path,
const char* mode);