![]() |
The Simons
|
00001 00002 // 00003 // SCL : Simons Component Library 00004 // 00006 // 00007 // Filename: TextOutput.h 00008 // Contents: TextOutput class 00009 // Author: Anthony J H Simons 00010 // Revised: 4 November 2005 00011 00012 // This software is distributed free in the hope that others will 00013 // find it useful. However, it comes WITHOUT ANY WARRANTY. No 00014 // liability can be accepted for software failure, merchantability 00015 // or fitness for a particular purpose. You can redistribute this 00016 // software in its original form, or in a modified form, provided 00017 // that this disclaimer is retained in the file banner. 00018 00019 #ifndef SCL_TEXT_OUTPUT 00020 #define SCL_TEXT_OUTPUT 00021 00022 #include "Output.h" // Include my superclass type 00023 #include "TextOutputID.h" // Include my pointer type 00024 00025 #include "StringID.h" // Depend on the pointer type 00026 00038 00039 class TextOutput : public Output { 00040 protected: 00041 TextOutput(const TextOutput&); 00042 public: 00043 TextOutput(); 00044 virtual ~TextOutput(); 00045 TextOutput(StringID); 00046 virtual ObjectID clone() const; 00047 virtual OutputID put(Boolean); 00048 virtual OutputID put(Character); 00049 virtual OutputID put(Natural); 00050 virtual OutputID put(Integer); 00051 virtual OutputID put(Decimal); 00052 virtual OutputID put(StringID); 00053 virtual OutputID put(Character[]); 00054 virtual OutputID line(); 00055 virtual OutputID space(); 00056 virtual OutputID tab(); 00057 }; 00058 00060 00063 inline TextOutputID::TextOutputID() {} 00064 00066 inline TextOutputID::~TextOutputID() {} 00067 00071 inline TextOutputID::TextOutputID(const Null* null) : 00072 OutputID(null) {} 00073 00077 inline TextOutputID::TextOutputID(const TextOutput* stream) : 00078 OutputID(stream) {} 00079 00083 inline TextOutputID::TextOutputID(const TextOutputID& pointer) : 00084 OutputID(pointer) {} 00085 00089 inline TextOutputID& TextOutputID::operator=(const TextOutput* stream) { 00090 assign(stream); 00091 return *this; 00092 } 00093 00098 inline TextOutputID& TextOutputID::operator=(const TextOutputID& pointer) { 00099 assign(pointer); 00100 return *this; 00101 } 00102 00103 00104 #endif 00105