00001 #ifndef SCT_OSTREAM_H
00002 #define SCT_OSTREAM_H
00003 
00004 #include <string>
00005 
00006 namespace Sct {
00007     
00008 class OStream {
00009 public:
00010     virtual OStream & operator<<(bool val) = 0;
00011     virtual OStream & operator<<(char val) = 0;
00012     virtual OStream & operator<<(unsigned char val)  = 0;
00013     virtual OStream & operator<<(short val)  = 0;
00014     virtual OStream & operator<<(unsigned short val)  = 0;
00015     virtual OStream & operator<<(int val)  = 0;
00016     virtual OStream & operator<<(unsigned int val)  = 0;
00017     virtual OStream & operator<<(long val)  = 0;
00018     virtual OStream & operator<<(unsigned long val)  = 0;
00019     virtual OStream & operator<<(double val) = 0;
00020     virtual OStream & operator<<(float val)  = 0;
00021     virtual OStream & operator<<(const std::string & val)  = 0;
00022 
00023 
00024 
00025     virtual OStream & operator<<(const char * str)  = 0;
00026     virtual OStream & operator<<(const unsigned char * str)  = 0;
00027     
00028     virtual OStream & put(const bool* p, size_t size) = 0;
00029     virtual OStream & put(const char* p, size_t size) = 0;
00030     virtual OStream & put(const unsigned char* p, size_t size) = 0;
00031     virtual OStream & put(const short* p, size_t size) = 0;
00032     virtual OStream & put(const unsigned short* p, size_t size) = 0;
00033     virtual OStream & put(const int* p, size_t size) = 0;
00034     virtual OStream & put(const unsigned int* p, size_t size) = 0;
00035     virtual OStream & put(const long* p, size_t size) = 0;
00036     virtual OStream & put(const unsigned long* p, size_t size) = 0;
00037     virtual OStream & put(const float* p, size_t size) = 0;
00038     virtual OStream & put(const double* p, size_t size) = 0;
00039     virtual OStream & put(const std::string* p, size_t size) = 0;
00040 
00041 
00042 };
00043 }
00044 #endif