53 #ifndef __CU_BINARY_READER_H__
54 #define __CU_BINARY_READER_H__
55 #include <cugl/base/CUBase.h>
57 #include <cugl/io/CUPathname.h>
101 #pragma mark Internal Methods
110 void fill(
unsigned int bytes=1);
114 #pragma mark Constructors
122 BinaryReader() : _name(
""), _stream(nullptr), _ssize(-1), _scursor(-1),
123 _buffer(nullptr), _capacity(0), _bufoff(-1), _bufsize(0) {}
147 bool init(
const std::string& file) {
200 bool init(
const std::string& file,
unsigned int capacity) {
217 bool init(
const char* file,
unsigned int capacity) {
251 return init(file.c_str());
283 return init(file.c_str(),capacity);
302 #pragma mark Static Constructors
318 static std::shared_ptr<BinaryReader>
alloc(
const std::string& file) {
319 std::shared_ptr<BinaryReader> result = std::make_shared<BinaryReader>();
320 return (result->init(file) ? result :
nullptr);
338 static std::shared_ptr<BinaryReader>
alloc(
const char* file) {
339 std::shared_ptr<BinaryReader> result = std::make_shared<BinaryReader>();
340 return (result->init(file) ? result :
nullptr);
356 static std::shared_ptr<BinaryReader>
alloc(
const std::string& file,
unsigned int capacity) {
357 std::shared_ptr<BinaryReader> result = std::make_shared<BinaryReader>();
358 return (result->init(file,capacity) ? result :
nullptr);
374 static std::shared_ptr<BinaryReader>
alloc(
const char* file,
unsigned int capacity) {
375 std::shared_ptr<BinaryReader> result = std::make_shared<BinaryReader>();
376 return (result->init(file,capacity) ? result :
nullptr);
394 std::shared_ptr<BinaryReader> result = std::make_shared<BinaryReader>();
395 return (result->initWithAsset(file) ? result :
nullptr);
413 std::shared_ptr<BinaryReader> result = std::make_shared<BinaryReader>();
414 return (result->initWithAsset(file) ? result :
nullptr);
430 static std::shared_ptr<BinaryReader>
allocWithAsset(
const std::string& file,
unsigned int capacity) {
431 std::shared_ptr<BinaryReader> result = std::make_shared<BinaryReader>();
432 return (result->initWithAsset(file,capacity) ? result :
nullptr);
448 static std::shared_ptr<BinaryReader>
allocWithAsset(
const char* file,
unsigned int capacity) {
449 std::shared_ptr<BinaryReader> result = std::make_shared<BinaryReader>();
450 return (result->initWithAsset(file,capacity) ? result :
nullptr);
455 #pragma mark Stream Management
482 bool ready(
unsigned int bytes=1)
const;
486 #pragma mark Single Element Reads
583 #pragma mark Array Reads
596 size_t read(
char* buffer,
size_t maximum,
size_t offset=0);
610 size_t read(Uint8* buffer,
size_t maximum,
size_t offset=0);
627 size_t read(Sint16* buffer,
size_t maximum,
size_t offset=0);
644 size_t read(Uint16* buffer,
size_t maximum,
size_t offset=0);
661 size_t read(Sint32* buffer,
size_t maximum,
size_t offset=0);
678 size_t read(Uint32* buffer,
size_t maximum,
size_t offset=0);
695 size_t read(Sint64* buffer,
size_t maximum,
size_t offset=0);
712 size_t read(Uint64* buffer,
size_t maximum,
size_t offset=0);
729 size_t read(
float* buffer,
size_t maximum,
size_t offset=0);
746 size_t read(
double* buffer,
size_t maximum,
size_t offset=0);
Uint32 _bufsize
Definition: CUBinaryReader.h:96
static std::shared_ptr< BinaryReader > alloc(const std::string &file)
Definition: CUBinaryReader.h:318
Sint64 _scursor
Definition: CUBinaryReader.h:89
bool ready(unsigned int bytes=1) const
~BinaryReader()
Definition: CUBinaryReader.h:130
bool init(const std::string &file, unsigned int capacity)
Definition: CUBinaryReader.h:200
void fill(unsigned int bytes=1)
static std::shared_ptr< BinaryReader > allocWithAsset(const std::string &file)
Definition: CUBinaryReader.h:393
Uint32 _capacity
Definition: CUBinaryReader.h:94
bool initWithAsset(const std::string &file)
Definition: CUBinaryReader.h:250
bool init(const char *file)
Definition: CUBinaryReader.h:166
bool initWithAsset(const std::string &file, unsigned int capacity)
Definition: CUBinaryReader.h:282
SDL_RWops * _stream
Definition: CUBinaryReader.h:85
BinaryReader()
Definition: CUBinaryReader.h:122
static std::shared_ptr< BinaryReader > allocWithAsset(const char *file, unsigned int capacity)
Definition: CUBinaryReader.h:448
static std::shared_ptr< BinaryReader > allocWithAsset(const char *file)
Definition: CUBinaryReader.h:412
size_t read(char *buffer, size_t maximum, size_t offset=0)
Sint64 _ssize
Definition: CUBinaryReader.h:87
static std::shared_ptr< BinaryReader > alloc(const char *file, unsigned int capacity)
Definition: CUBinaryReader.h:374
static std::shared_ptr< BinaryReader > alloc(const std::string &file, unsigned int capacity)
Definition: CUBinaryReader.h:356
std::string _name
Definition: CUBinaryReader.h:83
Definition: CUAction.h:51
Sint32 _bufoff
Definition: CUBinaryReader.h:98
bool init(const char *file, unsigned int capacity)
Definition: CUBinaryReader.h:217
Definition: CUPathname.h:85
bool init(const std::string &file)
Definition: CUBinaryReader.h:147
Definition: CUBinaryReader.h:80
char * _buffer
Definition: CUBinaryReader.h:92
static std::shared_ptr< BinaryReader > alloc(const char *file)
Definition: CUBinaryReader.h:338
static std::shared_ptr< BinaryReader > allocWithAsset(const std::string &file, unsigned int capacity)
Definition: CUBinaryReader.h:430