summaryrefslogtreecommitdiff
path: root/comm/IOS.h
diff options
context:
space:
mode:
authorchatty1994-05-10 09:52:56 +0000
committerchatty1994-05-10 09:52:56 +0000
commit44c762cb8f968f11cf824c1926937633eaa4161e (patch)
treedf7293ef206dab27006736744267c4bf7d4fd608 /comm/IOS.h
parent8ad2474d8a297c4c85f715f3577c0609628ebce5 (diff)
downloadivy-league-44c762cb8f968f11cf824c1926937633eaa4161e.zip
ivy-league-44c762cb8f968f11cf824c1926937633eaa4161e.tar.gz
ivy-league-44c762cb8f968f11cf824c1926937633eaa4161e.tar.bz2
ivy-league-44c762cb8f968f11cf824c1926937633eaa4161e.tar.xz
Initial revision
Diffstat (limited to 'comm/IOS.h')
-rw-r--r--comm/IOS.h58
1 files changed, 58 insertions, 0 deletions
diff --git a/comm/IOS.h b/comm/IOS.h
new file mode 100644
index 0000000..a0cceb9
--- /dev/null
+++ b/comm/IOS.h
@@ -0,0 +1,58 @@
+/*
+ * The Unix Channel
+ *
+ * by Michel Beaudouin-Lafon
+ *
+ * Copyright 1990-1994
+ * Laboratoire de Recherche en Informatique (LRI)
+ *
+ * Basic I/O
+ *
+ * $Id$
+ * $CurLog$
+ */
+
+#ifndef UchIO_H_
+#define UchIO_H_
+
+#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 void ReadLong (lword&) = 0;
+virtual void ReadShort (sword&) = 0;
+virtual void ReadByte (byte&) = 0;
+virtual void ReadChar (char&) = 0;
+virtual void ReadString (char*) = 0;
+virtual void ReadString (CcuString&) = 0;
+virtual void ReadBuf (byte*, int) = 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_ */
+