From 79b01a9f6289424502115c88f1027d24587fc742 Mon Sep 17 00:00:00 2001 From: chatty Date: Tue, 28 Nov 2000 17:07:44 +0000 Subject: * Created from bits of MsgStream.h --- comm/BufStream.h | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 comm/BufStream.h diff --git a/comm/BufStream.h b/comm/BufStream.h new file mode 100644 index 0000000..a221bfa --- /dev/null +++ b/comm/BufStream.h @@ -0,0 +1,62 @@ +/* + * The Unix Channel + * + * by Michel Beaudouin-Lafon + * + * Copyright 1990-1997 + * Laboratoire de Recherche en Informatique (LRI) + * + * Buffered streams + * + * $Id$ + * $CurLog$ + */ + +#ifndef BufStream_H_ +#define BufStream_H_ + +#include "Stream.h" +#include "MsgBuffer.h" + +class UchBufStream : public UchStream { +protected: + UchMsgBuffer InBuffer; + UchMsgBuffer OutBuffer; + int OutSize; + bool Sync; + + UchBufStream (const UchBufStream&); + int ReadInput (); + void HandleWrite (); + + void WriteLong (lword); + void WriteShort (sword); + void WriteByte (byte); + void WriteChar (char); + void WriteString (const char*); + void WriteBuf (const byte*, int); + + + bool ReadLong (lword&); + bool ReadShort (sword&); + bool ReadByte (byte&); + bool ReadChar (char&); + int ReadString (char*, int); + int ReadString (CcuString&); + bool ReadBuf (byte*, int); + +public: + UchBufStream (UchAddress* = 0, UchAddress* = 0); + ~UchBufStream (); + + void InputBuffer (int min, int grow, int max); + void OutputBuffer (int min, int grow, int max); +inline bool GetSyncMode () { return Sync; } +inline void SetSyncMode (bool s) { Sync = s; Flush (); } +inline void FlushSize (int n) { OutSize = n; } +virtual void Flush (); + +virtual void Closing (bool); +}; + +#endif /* BufStream_H_ */ -- cgit v1.1