63 fh = fopen(filename,
"wb");
65 OJPH_ERROR(0x00060001,
"failed to open %s for writing", filename);
72 return fwrite(ptr, 1,
size,
fh);
118 assert(this->
is_open ==
false);
120 assert(this->
buf == NULL);
152 size_t new_used_size = (size_t)used_size +
size;
155 size_t new_buf_size = this->
buf_size;
156 while (new_used_size > new_buf_size)
157 new_buf_size += new_buf_size >> 1;
159 this->
buf = (
ui8*)realloc(this->
buf, new_buf_size);
184 fh = fopen(filename,
"rb");
186 OJPH_ERROR(0x00060002,
"failed to open %s for reading", filename);
193 return fread(ptr, 1,
size,
fh);
230 assert(this->data == NULL);
241 size_t bytes_to_read =
ojph_min(
size, (
size_t)bytes_left);
242 memcpy(ptr,
cur_ptr, bytes_to_read);
244 return bytes_to_read;
256 if (offset >= 0 && (
size_t)offset <=
size)
264 std::ptrdiff_t bytes_off =
cur_ptr -
data; bytes_off += offset;
265 if (bytes_off >= 0 && (
size_t)bytes_off <=
size)
273 if (offset <= 0 && (std::ptrdiff_t)
size + offset >= 0)
void open(const char *filename)
size_t read(void *ptr, size_t size) override
void open(const char *filename)
size_t write(const void *ptr, size_t size) override
size_t read(void *ptr, size_t size) override
void open(const ui8 *data, size_t size)
size_t write(const void *ptr, size_t size) override
void open(size_t initial_size=65536)
int ojph_fseek(FILE *stream, si64 offset, int origin)
si64 ojph_ftell(FILE *stream)
#define OJPH_ERROR(t,...)