//////////////////////////////////////////////////////////////////////// // Copyright (c) Nehmulos 2011-2014 // This file is part of N0 Strain Serialization Library. // // N0Strain-Serialization-Library is free software: you can redistribute it and/or modify // it under the terms of the GNU Lesser General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // N0Strain-Serialization-Library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public License // along with N0Strain-Serialization-Library. If not, see https://gnu.org/licenses/lgpl-3.0 //////////////////////////////////////////////////////////////////////// #ifndef BINARYFSTREAM_H_ #define BINARYFSTREAM_H_ #include "N0SlibConstants.h" #include namespace nw { class BinaryFstream { public: BinaryFstream(const char * filename, const char * mode); virtual ~BinaryFstream(); void close(); bool isOpen(); const char* getFilepath(); //TODO 2.0 add bigEndian support void operator<<(String&); void operator<<(int&); void operator<<(char&); void operator<<(unsigned char&); void operator<<(unsigned int&); void operator<<(float&); void operator<<(double&); void operator<<(bool); void operator<<(signed char&); void operator<<(unsigned long&); void operator<<(long&); void operator<<(short&); void operator<<(unsigned short&); void operator<<(long long&); void operator<<(long double&); void write(void *binaryBlob, unsigned int size); void operator>>(String&); void operator>>(int&); void operator>>(char&); void operator>>(unsigned char&); void operator>>(unsigned int&); void operator>>(float&); void operator>>(double&); void operator>>(bool&); void operator>>(signed char&); void operator>>(unsigned long&); void operator>>(long&); void operator>>(short&); void operator>>(unsigned short&); void operator>>(long long&); void operator>>(long double&); void read(void *binaryBlob, unsigned int size); private: FILE *file; const char* filepath; }; } // namespace nw #endif /* BINARYFSTREAM_H_ */