12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- #ifndef _BINSTREAMABLE_FBASICS_H
- #define _BINSTREAMABLE_FBASICS_H
- #include <iostream>
- #include <core/basics/binstream.h>
- namespace NICE {
- class BinStreamable {
- public:
-
- enum Format {
-
- BIN_GZ=3,
-
- BIN=4
- };
- virtual ~BinStreamable(){}
-
- virtual void read(ibinstream& stream) = 0;
-
- virtual void write(obinstream& stream) const = 0;
-
- inline void readBin(ibinstream& stream) {
- read(stream);
- }
-
- inline void writeBin(obinstream& stream) const {
- write(stream);
- }
-
- virtual void readFromBinFile(const char *filename,
- Format compression=BIN);
-
- virtual void writeToBinFile(const char *filename,
- Format compression=BIN) const;
- };
- inline obinstream& operator<<(obinstream &strm, const BinStreamable &ex) {
- ex.writeBin(strm);
- return strm;
- }
- inline ibinstream& operator>>(ibinstream &strm, BinStreamable &ex) {
- ex.readBin(strm);
- return strm;
- }
- };
- #endif
|