123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- #ifndef _STREAMABLE_FBASICS_H
- #define _STREAMABLE_FBASICS_H
- #include <iostream>
- #include <string>
- namespace NICE {
- extern const char* GERMAN_LOCALE;
- extern const char* US_ENGLISH_LOCALE;
- class Streamable {
- public:
-
- enum Format {
-
- ASCII=0,
-
- ASCII_BZ=1,
-
- ASCII_GZ=2
- };
- virtual ~Streamable(){}
-
- virtual void read(std::istream& stream) = 0;
-
- virtual void write(std::ostream& stream) const = 0;
-
- virtual void readFromFile(const char* filename,
- Format compression=ASCII);
-
- inline void readFromFile(const std::string& filename,
- Format compression=ASCII) {
- readFromFile(filename.c_str(), compression);
- }
-
- virtual void writeToFile(const char* filename,
- Format compression=ASCII) const;
-
- inline void writeToFile(const std::string& filename,
- Format compression=ASCII) const {
- writeToFile(filename.c_str(), compression);
- }
-
- virtual std::string toString() const;
- };
- inline std::ostream& operator<<(std::ostream &strm, const Streamable &ex) {
- ex.write(strm);
- return strm;
- }
- inline std::istream& operator>>(std::istream &strm, Streamable &ex) {
- ex.read(strm);
- return strm;
- }
- inline void writeBool(std::ostream& output, bool b) {
- int i = (b ? 1 : 0);
- output << i;
- }
- inline bool readBool(std::istream& input) {
- int i;
- input >> i;
- return i != 0;
- }
- };
- #endif
|