Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/trunk/src/lib/shell/shell_buffer.h @ 5173

Last change on this file since 5173 was 5173, checked in by bensch, 19 years ago

orxonox/trunk: added new Class ShellBuffer, that only handles the main shell's buffer

File size: 1.9 KB
Line 
1/*!
2 * @file shell_buffer.h
3 * @brief The Shell buffer Tasks
4*/
5
6#ifndef _SHELL_BUFFER_H
7#define _SHELL_BUFFER_H
8
9#include <stdarg.h>
10
11#define      SHELL_BUFFER_SIZE       16384         //!< The Size of the input-buffers (should be large enough to carry any kind of input)
12
13// FORWARD DECLARATION
14template<class T> class tList;
15template<class T> class tIterator;
16class Text;
17
18//! A class for ...
19class ShellBuffer {
20
21 public:
22  ShellBuffer();
23  virtual ~ShellBuffer();
24
25
26  // BUFFER //
27  /** @param bufferSize the new Buffer-Size */
28  void setBufferSize(unsigned int bufferSize) { this->bufferSize = bufferSize; };
29  void setBufferDisplaySize(unsigned int bufferDisplaySize);
30  void flushBuffers();
31  static bool addBufferLineStatic(const char* line, ...);
32  void addBufferLine(const char* line, va_list arg);
33  void printToDisplayBuffer(const char* text);
34  void moveBuffer(unsigned int lineCount);
35//    void moveBufferTo(unsigned int lineNumber);
36  const char* getBufferLine(unsigned int lineNumber);
37
38
39 private:
40   unsigned int             bufferSize;             //!< The Size of the buffer
41   unsigned int             bufferDisplaySize;      //!< The Size of the Display-buffer, in lines (not in characters)
42   tList<char>*             buffer;                 //!< A list of stored char-arrays(strings) to store the history
43   tIterator<char>*         bufferIterator;         //!< An iterator for the Shells main buffer.
44
45   Text**                   bufferText;             //!< A list of stored bufferTexts for the display of the buffer
46   char                     bufferArray[SHELL_BUFFER_SIZE];     //!< a BUFFER for fast writing
47   char                     keepBufferArray[SHELL_BUFFER_SIZE]; //!< a BUFFER to have multi-non-newLine commands be copied into the shell.
48   bool                     keepBuffer;             //!< if the keepbuffer contains unfinished lines.
49
50};
51
52#endif /* _SHELL_BUFFER_H */
Note: See TracBrowser for help on using the repository browser.