53 #ifndef __CU_BINARY_READER_H__
54 #define __CU_BINARY_READER_H__
56 #include <cugl/io/CUPathname.h>
100 #pragma mark Internal Methods
109 void fill(
unsigned int bytes=1);
113 #pragma mark Constructors
121 BinaryReader() : _name(
""), _stream(nullptr), _ssize(-1), _scursor(-1),
122 _buffer(nullptr), _capacity(0), _bufoff(-1), _bufsize(0) {}
146 bool init(
const std::string& file) {
199 bool init(
const std::string& file,
unsigned int capacity) {
216 bool init(
const char* file,
unsigned int capacity) {
250 return init(file.c_str());
282 return init(file.c_str(),capacity);
301 #pragma mark Static Constructors
317 static std::shared_ptr<BinaryReader>
alloc(
const std::string& file) {
318 std::shared_ptr<BinaryReader> result = std::make_shared<BinaryReader>();
319 return (result->init(file) ? result :
nullptr);
337 static std::shared_ptr<BinaryReader>
alloc(
const char* file) {
338 std::shared_ptr<BinaryReader> result = std::make_shared<BinaryReader>();
339 return (result->init(file) ? result :
nullptr);
355 static std::shared_ptr<BinaryReader>
alloc(
const std::string& file,
unsigned int capacity) {
356 std::shared_ptr<BinaryReader> result = std::make_shared<BinaryReader>();
357 return (result->init(file,capacity) ? result :
nullptr);
373 static std::shared_ptr<BinaryReader>
alloc(
const char* file,
unsigned int capacity) {
374 std::shared_ptr<BinaryReader> result = std::make_shared<BinaryReader>();
375 return (result->init(file,capacity) ? result :
nullptr);
393 std::shared_ptr<BinaryReader> result = std::make_shared<BinaryReader>();
394 return (result->initWithAsset(file) ? result :
nullptr);
412 std::shared_ptr<BinaryReader> result = std::make_shared<BinaryReader>();
413 return (result->initWithAsset(file) ? result :
nullptr);
429 static std::shared_ptr<BinaryReader>
allocWithAsset(
const std::string& file,
unsigned int capacity) {
430 std::shared_ptr<BinaryReader> result = std::make_shared<BinaryReader>();
431 return (result->initWithAsset(file,capacity) ? result :
nullptr);
447 static std::shared_ptr<BinaryReader>
allocWithAsset(
const char* file,
unsigned int capacity) {
448 std::shared_ptr<BinaryReader> result = std::make_shared<BinaryReader>();
449 return (result->initWithAsset(file,capacity) ? result :
nullptr);
454 #pragma mark Stream Management
481 bool ready(
unsigned int bytes=1)
const;
485 #pragma mark Single Element Reads
582 #pragma mark Array Reads
595 size_t read(
char* buffer,
size_t maximum,
size_t offset=0);
609 size_t read(Uint8* buffer,
size_t maximum,
size_t offset=0);
626 size_t read(Sint16* buffer,
size_t maximum,
size_t offset=0);
643 size_t read(Uint16* buffer,
size_t maximum,
size_t offset=0);
660 size_t read(Sint32* buffer,
size_t maximum,
size_t offset=0);
677 size_t read(Uint32* buffer,
size_t maximum,
size_t offset=0);
694 size_t read(Sint64* buffer,
size_t maximum,
size_t offset=0);
711 size_t read(Uint64* buffer,
size_t maximum,
size_t offset=0);
728 size_t read(
float* buffer,
size_t maximum,
size_t offset=0);
745 size_t read(
double* buffer,
size_t maximum,
size_t offset=0);
Uint32 _bufsize
Definition: CUBinaryReader.h:95
static std::shared_ptr< BinaryReader > alloc(const std::string &file)
Definition: CUBinaryReader.h:317
Sint64 _scursor
Definition: CUBinaryReader.h:88
bool ready(unsigned int bytes=1) const
~BinaryReader()
Definition: CUBinaryReader.h:129
bool init(const std::string &file, unsigned int capacity)
Definition: CUBinaryReader.h:199
void fill(unsigned int bytes=1)
static std::shared_ptr< BinaryReader > allocWithAsset(const std::string &file)
Definition: CUBinaryReader.h:392
Uint32 _capacity
Definition: CUBinaryReader.h:93
bool initWithAsset(const std::string &file)
Definition: CUBinaryReader.h:249
bool init(const char *file)
Definition: CUBinaryReader.h:165
bool initWithAsset(const std::string &file, unsigned int capacity)
Definition: CUBinaryReader.h:281
SDL_RWops * _stream
Definition: CUBinaryReader.h:84
BinaryReader()
Definition: CUBinaryReader.h:121
static std::shared_ptr< BinaryReader > allocWithAsset(const char *file, unsigned int capacity)
Definition: CUBinaryReader.h:447
static std::shared_ptr< BinaryReader > allocWithAsset(const char *file)
Definition: CUBinaryReader.h:411
size_t read(char *buffer, size_t maximum, size_t offset=0)
Sint64 _ssize
Definition: CUBinaryReader.h:86
static std::shared_ptr< BinaryReader > alloc(const char *file, unsigned int capacity)
Definition: CUBinaryReader.h:373
static std::shared_ptr< BinaryReader > alloc(const std::string &file, unsigned int capacity)
Definition: CUBinaryReader.h:355
std::string _name
Definition: CUBinaryReader.h:82
Definition: CUAnimationNode.h:52
Sint32 _bufoff
Definition: CUBinaryReader.h:97
bool init(const char *file, unsigned int capacity)
Definition: CUBinaryReader.h:216
Definition: CUPathname.h:85
bool init(const std::string &file)
Definition: CUBinaryReader.h:146
Definition: CUBinaryReader.h:79
char * _buffer
Definition: CUBinaryReader.h:91
static std::shared_ptr< BinaryReader > alloc(const char *file)
Definition: CUBinaryReader.h:337
static std::shared_ptr< BinaryReader > allocWithAsset(const std::string &file, unsigned int capacity)
Definition: CUBinaryReader.h:429