/* * The Unix Channel * * by Michel Beaudouin-Lafon * * Copyright 1990-1995 * Laboratoire de Recherche en Informatique (LRI) * * Basic I/O * * $Id$ * $CurLog$ */ #ifndef UchIO_H_ #define UchIO_H_ #ifdef __GNUG__ #pragma interface #endif #include "cplus_bugs.h" #include "global.h" class CcuString; class UchIOS { public: UchIOS (); virtual ~UchIOS (); virtual void WriteLong (lword) = 0; virtual void WriteShort (sword) = 0; virtual void WriteByte (byte) = 0; virtual void WriteChar (char) = 0; virtual void WriteString (const char*) = 0; virtual void WriteBuf (const byte*, int) = 0; virtual bool ReadLong (lword&) = 0; virtual bool ReadShort (sword&) = 0; virtual bool ReadByte (byte&) = 0; virtual bool ReadChar (char&) = 0; virtual bool ReadBuf (byte*, int) = 0; virtual int ReadString (char*, int = -1) = 0; virtual int ReadString (CcuString&) = 0; inline UchIOS& operator << (lword l) { WriteLong (l); return *this; } inline UchIOS& operator << (sword s) { WriteShort (s); return *this; } inline UchIOS& operator << (byte b) { WriteByte (b); return *this; } inline UchIOS& operator << (char c) { WriteChar (c); return *this; } inline UchIOS& operator << (const char* s) { WriteString (s); return *this; } inline UchIOS& operator >> (lword& l) { ReadLong (l); return *this; } inline UchIOS& operator >> (sword& s) { ReadShort (s); return *this; } inline UchIOS& operator >> (byte& b) { ReadByte (b); return *this; } inline UchIOS& operator >> (char& c) { ReadChar (c); return *this; } inline UchIOS& operator >> (char* s) { ReadString (s); return *this; } inline UchIOS& operator >> (CcuString& s) { ReadString (s); return *this; } }; #endif /* UchIO_H_ */