mirror of
https://github.com/paboyle/Grid.git
synced 2025-06-17 07:17:06 +01:00
Separated IO reader/writers into a proper abstract base,
derived relationship. Have Text/Binary/Xml versions of Reader & Writer. Any new Reader/Writer class inheriting the interface can give object serialisation to any desired format now. new file: lib/serialisation/BaseIO.h modified: lib/serialisation/BinaryIO.h modified: lib/serialisation/Serialisation.h modified: lib/serialisation/TextIO.h modified: lib/serialisation/XmlIO.h The test uses the Xml, Binary and Text formats as well as cout << Object.
This commit is contained in:
49
lib/serialisation/BaseIO.h
Normal file
49
lib/serialisation/BaseIO.h
Normal file
@ -0,0 +1,49 @@
|
||||
#ifndef GRID_SERIALISATION_ABSTRACT_READER_H
|
||||
#define GRID_SERIALISATION_ABSTRACT_READER_H
|
||||
|
||||
namespace Grid {
|
||||
class Writer {
|
||||
public:
|
||||
|
||||
virtual ~Writer() {};
|
||||
|
||||
virtual void push(const std::string &s) = 0;
|
||||
virtual void pop(void) =0;
|
||||
virtual void write( const std::string& s,const std::string &output ) =0;
|
||||
virtual void write( const std::string& s, int16_t output ) =0;
|
||||
virtual void write( const std::string& s, uint16_t output ) =0;
|
||||
virtual void write( const std::string& s, int32_t output ) =0;
|
||||
virtual void write( const std::string& s, uint32_t output ) =0;
|
||||
virtual void write( const std::string& s, int64_t output ) =0;
|
||||
virtual void write( const std::string& s, uint64_t output ) =0;
|
||||
virtual void write( const std::string& s, float output ) =0;
|
||||
virtual void write( const std::string& s, double output ) =0;
|
||||
virtual void write( const std::string& s, bool output ) =0;
|
||||
|
||||
};
|
||||
|
||||
class Reader {
|
||||
public:
|
||||
|
||||
|
||||
|
||||
virtual ~Reader() {};
|
||||
|
||||
virtual void read( const std::string& s,std::string &output ) =0;
|
||||
virtual void push(const std::string &s) =0;
|
||||
virtual void pop(void) = 0;
|
||||
|
||||
virtual void read( const std::string& s, int16_t &output ) =0;
|
||||
virtual void read( const std::string& s, uint16_t &output ) =0;
|
||||
virtual void read( const std::string& s, int32_t &output ) =0;
|
||||
virtual void read( const std::string& s, uint32_t &output ) =0;
|
||||
virtual void read( const std::string& s, int64_t &output ) =0;
|
||||
virtual void read( const std::string& s, uint64_t &output ) =0;
|
||||
virtual void read( const std::string& s, float &output ) =0;
|
||||
virtual void read( const std::string& s, double &output ) =0;
|
||||
virtual void read( const std::string& s, bool &output ) =0;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
#endif
|
Reference in New Issue
Block a user