diff options
Diffstat (limited to 'FoundationEx/Reader.h')
-rw-r--r-- | FoundationEx/Reader.h | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/FoundationEx/Reader.h b/FoundationEx/Reader.h new file mode 100644 index 0000000..e1154d1 --- /dev/null +++ b/FoundationEx/Reader.h @@ -0,0 +1,67 @@ +/* Starshatter: The Open Source Project + Copyright (c) 2021-2022, Starshatter: The Open Source Project Contributors + Copyright (c) 2011-2012, Starshatter OpenSource Distribution Contributors + Copyright (c) 1997-2006, Destroyer Studios LLC. + + AUTHOR: John DiCamillo + + + OVERVIEW + ======== + Declaration of the Reader class +*/ + +#ifndef READER_H +#define READER_H + +#include "Text.h" + +// +-------------------------------------------------------------------+ + +class Reader +{ +public: + Reader() { } + virtual ~Reader() { } + + virtual Text more() = 0; +}; + +class ConsoleReader : public Reader +{ +public: + virtual Text more(); + + void printPrimaryPrompt(); + void fillInputBuffer(); + +private: + char buffer[1000]; + char* p; +}; + +class FileReader : public Reader +{ +public: + FileReader(const char* fname); + virtual Text more(); + +private: + Text filename; + int done; +}; + +class BlockReader : public Reader +{ +public: + BlockReader(const char* block); + BlockReader(const char* block, int len); + virtual Text more(); + +private: + char* data; + int done; + int length; +}; + +#endif |