53 #ifndef __CU_BINARY_WRITER_H__
54 #define __CU_BINARY_WRITER_H__
56 #include <cugl/io/CUPathname.h>
95 #pragma mark Constructors
103 BinaryWriter() : _name(
""), _stream(nullptr), _cbuffer(nullptr), _bufoff(-1) {}
128 bool init(
const std::string& file) {
184 bool init(
const std::string& file,
unsigned int capacity) {
202 bool init(
const char* file,
unsigned int capacity) {
224 #pragma mark Static Constructors
241 static std::shared_ptr<BinaryWriter>
alloc(
const std::string& file) {
242 std::shared_ptr<BinaryWriter> result = std::make_shared<BinaryWriter>();
243 return (result->init(file) ? result :
nullptr);
262 static std::shared_ptr<BinaryWriter>
alloc(
const char* file) {
263 std::shared_ptr<BinaryWriter> result = std::make_shared<BinaryWriter>();
264 return (result->init(file) ? result :
nullptr);
284 std::shared_ptr<BinaryWriter> result = std::make_shared<BinaryWriter>();
285 return (result->init(file) ? result :
nullptr);
302 static std::shared_ptr<BinaryWriter>
alloc(
const std::string& file,
unsigned int capacity) {
303 std::shared_ptr<BinaryWriter> result = std::make_shared<BinaryWriter>();
304 return (result->init(file,capacity) ? result :
nullptr);
321 static std::shared_ptr<BinaryWriter>
alloc(
const char* file,
unsigned int capacity) {
322 std::shared_ptr<BinaryWriter> result = std::make_shared<BinaryWriter>();
323 return (result->init(file,capacity) ? result :
nullptr);
340 static std::shared_ptr<BinaryWriter>
alloc(
const Pathname& file,
unsigned int capacity) {
341 std::shared_ptr<BinaryWriter> result = std::make_shared<BinaryWriter>();
342 return (result->init(file,capacity) ? result :
nullptr);
347 #pragma mark Stream Management
367 #pragma mark Single Element Writes
504 #pragma mark Array Writes
516 void write(
const char* array,
size_t length,
size_t offset=0);
529 void write(
const Uint8* array,
size_t length,
size_t offset=0);
545 void write(
const Sint16* array,
size_t length,
size_t offset=0);
561 void write(
const Uint16* array,
size_t length,
size_t offset=0);
577 void write(
const Sint32* array,
size_t length,
size_t offset=0);
593 void write(
const Uint32* array,
size_t length,
size_t offset=0);
609 void write(
const Sint64* array,
size_t length,
size_t offset=0);
625 void write(
const Uint64* array,
size_t length,
size_t offset=0);
641 void write(
const float* array,
size_t length,
size_t offset=0);
657 void write(
const double* array,
size_t length,
size_t offset=0);
static std::shared_ptr< BinaryWriter > alloc(const std::string &file)
Definition: CUBinaryWriter.h:241
void writeUint64(Uint64 n)
std::string _name
Definition: CUBinaryWriter.h:82
static std::shared_ptr< BinaryWriter > alloc(const char *file)
Definition: CUBinaryWriter.h:262
bool init(const char *file, unsigned int capacity)
Definition: CUBinaryWriter.h:202
void writeUint32(Uint32 n)
static std::shared_ptr< BinaryWriter > alloc(const Pathname &file)
Definition: CUBinaryWriter.h:283
static std::shared_ptr< BinaryWriter > alloc(const std::string &file, unsigned int capacity)
Definition: CUBinaryWriter.h:302
void writeSint16(Sint16 n)
static std::shared_ptr< BinaryWriter > alloc(const char *file, unsigned int capacity)
Definition: CUBinaryWriter.h:321
void writeUint16(Uint16 n)
Uint32 _capacity
Definition: CUBinaryWriter.h:89
BinaryWriter()
Definition: CUBinaryWriter.h:103
char * _cbuffer
Definition: CUBinaryWriter.h:87
bool init(const std::string &file)
Definition: CUBinaryWriter.h:128
bool init(const char *file)
Definition: CUBinaryWriter.h:148
void writeDouble(double n)
~BinaryWriter()
Definition: CUBinaryWriter.h:110
SDL_RWops * _stream
Definition: CUBinaryWriter.h:84
bool init(const std::string &file, unsigned int capacity)
Definition: CUBinaryWriter.h:184
Sint32 _bufoff
Definition: CUBinaryWriter.h:91
static std::shared_ptr< BinaryWriter > alloc(const Pathname &file, unsigned int capacity)
Definition: CUBinaryWriter.h:340
Definition: CUAnimationNode.h:52
Definition: CUBinaryWriter.h:79
void writeSint32(Sint32 n)
Definition: CUPathname.h:85
void writeSint64(Sint64 n)