diff options
author | Aki <please@ignore.pl> | 2022-04-02 18:34:06 +0200 |
---|---|---|
committer | Aki <please@ignore.pl> | 2022-04-02 18:34:06 +0200 |
commit | d5fe6f541817105955a0cf48331e564c5e2d5692 (patch) | |
tree | 382fcb70fcd70fa6700b974311ee74ac6677b6f5 /FoundationEx/Reader.h | |
parent | 814335e5ce06058c0f8ea715a715eb08187d3755 (diff) | |
download | starshatter-d5fe6f541817105955a0cf48331e564c5e2d5692.zip starshatter-d5fe6f541817105955a0cf48331e564c5e2d5692.tar.gz starshatter-d5fe6f541817105955a0cf48331e564c5e2d5692.tar.bz2 |
Moved Reader to FoundationEx
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 |