Friedrich-Alexander-Universität Erlangen-Nürnberg  /   Technische Fakultät  /   Department Informatik

Darstellung verschiedener Datentypen auf dem BildschirmDie Klasse CGA_Stream ermöglicht die Ausgabe verschiedener Datentypen als Zeichenketten auf dem CGA Bildschirm eines PCs. Dazu braucht CGA_Stream nur von den Klassen O_Stream und CGA_Window abgeleitet und endlich die Methode flush() implementiert werden. Für weitergehende Formatierung oder spezielle Effekte stehen die Methoden der Klasse CGA_Window zur Verfügung. Mehr ...

#include <device/cga_stream.h>

Klassendiagramm für CGA_Stream:
Zusammengehörigkeiten von CGA_Stream:

Öffentliche Methoden

 CGA_Stream (int from_col, int to_col, int from_row, int to_row, bool use_cursor=false)
 Konstruktor. Mehr ...
 
 CGA_Stream (void)
 (Leerer) Standardkonstruktor Mehr ...
 
void flush ()
 Methode zur Ausgabe des Pufferinhalts der Basisklasse Stringbuffer. Mehr ...
 
- Öffentliche Methoden geerbt von O_Stream
 O_Stream ()
 Konstruktor; Initiale Zahlenbasis ist das Dezimalsystem. Mehr ...
 
virtual ~O_Stream ()
 Destruktor.
 
O_Streamoperator<< (char c)
 Stellt ein einzelnes Zeichen dar. Mehr ...
 
O_Streamoperator<< (unsigned char c)
 Stellt ein einzelnes Zeichen dar. Mehr ...
 
O_Streamoperator<< (const char *string)
 Darstellung einer nullterminierten Zeichenkette. Mehr ...
 
O_Streamoperator<< (bool b)
 Stellt ein Boolean dar. Mehr ...
 
O_Streamoperator<< (short ival)
 Darstellung ganzer Zahlen im Zahlensystem zur Basis base. Mehr ...
 
O_Streamoperator<< (unsigned short ival)
 Darstellung ganzer Zahlen im Zahlensystem zur Basis base. Mehr ...
 
O_Streamoperator<< (int ival)
 Darstellung ganzer Zahlen im Zahlensystem zur Basis base. Mehr ...
 
O_Streamoperator<< (unsigned int ival)
 Darstellung ganzer Zahlen im Zahlensystem zur Basis base. Mehr ...
 
O_Streamoperator<< (long ival)
 Darstellung ganzer Zahlen im Zahlensystem zur Basis base. Mehr ...
 
O_Streamoperator<< (unsigned long ival)
 Darstellung ganzer Zahlen im Zahlensystem zur Basis base. Mehr ...
 
O_Streamoperator<< (long long ival)
 Darstellung ganzer Zahlen im Zahlensystem zur Basis base. Mehr ...
 
O_Streamoperator<< (unsigned long long ival)
 Darstellung ganzer Zahlen im Zahlensystem zur Basis base. Mehr ...
 
O_Streamoperator<< (const void *ptr)
 Darstellung eines Zeigers als hexadezimale ganze Zahl. Mehr ...
 
O_Streamoperator<< (O_Stream &(*f)(O_Stream &))
 Aufruf einer Manipulatorfunktion. Mehr ...
 
- Öffentliche Methoden geerbt von Stringbuffer
virtual ~Stringbuffer ()
 Destruktor (hier nichts zu tun)
 
- Öffentliche Methoden geerbt von CGA_Window
 CGA_Window (int from_col, int to_col, int from_row, int to_row, bool use_cursor=false)
 Konstruktor. Mehr ...
 
void setpos (int x, int y)
 Setzen des Cursors im Fenster auf Spalte x und Zeile y. Mehr ...
 
void getpos (int &x, int &y)
 Abfragen der Cursorpostion. Mehr ...
 
void print (const char *string, int length, Attribute attrib=Attribute())
 Anzeige mehrerer Zeichen im Fenster ab der aktuellen Cursorposition. Mehr ...
 
void reset (char character=' ', Attribute attrib=Attribute())
 Löschen des Inhalts und Zurücksetzen des Cursors. Mehr ...
 

Öffentliche, statische Methoden

static void arrange (CGA_Stream &kout, CGA_Stream dout[8])
 Automatische Aufteilung der Fenster. Mehr ...
 
- Öffentliche, statische Methoden geerbt von CGA_Window
static void show (int x, int y, char character, Attribute attrib=Attribute())
 Grundlegende Anzeige eines Zeichens mit Attribut an einer bestimmten Stelle auf dem kompletten CGA-Bildschirm. Mehr ...
 

Weitere Geerbte Elemente

- Öffentliche Typen geerbt von CGA_Window
enum  Color {
  BLACK, BLUE, GREEN, CYAN,
  RED, MAGENTA, BROWN, LIGHT_GREY,
  DARK_GREY, LIGHT_BLUE, LIGHT_GREEN, LIGHT_CYAN,
  LIGHT_RED, LIGHT_MAGENTA, YELLOW, WHITE
}
 CGA-Farben. Mehr ...
 
- Öffentliche Attribute geerbt von O_Stream
int base
 Basis des zur Anzeige verwendeten Zahlensystems (z.B. 2, 8, 10 oder 16) Mehr ...
 
- Statische öffentliche Attribute geerbt von CGA_Window
static const int ROWS = 25
 Groesse des kompletten CGA-Bildschirms.
 
static const int COLUMNS = 80
 
- Geschützte Methoden geerbt von Stringbuffer
 Stringbuffer ()
 Konstruktor; Markiert Puffer als leer.
 
void put (char c)
 Fügt das Zeichen c in den Puffer ein. Mehr ...
 
- Geschützte Attribute geerbt von Stringbuffer
char buffer [80]
 Zeichenpuffer.
 
int pos
 Aktuelle Position im Puffer.
 
- Geschützte Attribute geerbt von CGA_Window
int x_pos
 
int y_pos
 
int from_col
 
int to_col
 
int from_row
 
int to_row
 
bool use_cursor
 

Ausführliche Beschreibung

Darstellung verschiedener Datentypen auf dem Bildschirm

Die Klasse CGA_Stream ermöglicht die Ausgabe verschiedener Datentypen als Zeichenketten auf dem CGA Bildschirm eines PCs. Dazu braucht CGA_Stream nur von den Klassen O_Stream und CGA_Window abgeleitet und endlich die Methode flush() implementiert werden. Für weitergehende Formatierung oder spezielle Effekte stehen die Methoden der Klasse CGA_Window zur Verfügung.

Beschreibung der Konstruktoren und Destruktoren

◆ CGA_Stream() [1/2]

CGA_Stream::CGA_Stream ( int  from_col,
int  to_col,
int  from_row,
int  to_row,
bool  use_cursor = false 
)
inline

Konstruktor.

Das CGA_Window spannt ein Fenster auf der CGA-Bildschirmfläche auf, dass durch das Rechteck colums*rows beschrieben wird.

Parameter
from_colFensterrechteck beginnt in Spalte from_col
to_colFensterrechteck erstreckt sich bis Spalte to_col (inklusive)
from_rowFensterrechteck beginn in Zeile from_row
to_rowFensterrechteck erstreckt sich bis Zeile to_row (inklusive)
use_cursorGibt an, ob der CGA Hardwarecursor verwendet werden soll. Defaultmässig ist dies nicht der Fall.

◆ CGA_Stream() [2/2]

CGA_Stream::CGA_Stream ( void  )
inline

(Leerer) Standardkonstruktor

Die Aufteilung der Fenster kann auch automatisch zur Laufzeit geschehen. Einziges Problem: Die Anzahl der CPUs ist erst nach dem Auswerten der der ACPI Tabelle (durch Aufurf von System::init() in der boot/startup.cc) bekannt, globale Konstruktoren wie die von kout werden jedoch schon früher ausgeführt. Deshalb gibt dieser Konstruktor jedem Fenster jeweils 2 seperate Zeilen für die Ausgabe, die eigentliche Aufteilung geschieht durch Aufruf von CGA_Stream::arrange() in der main()

Dokumentation der Elementfunktionen

◆ arrange()

void CGA_Stream::arrange ( CGA_Stream kout,
CGA_Stream  dout[8] 
)
static

Automatische Aufteilung der Fenster.

Nachdem die Systeminformationen ausgelesen wurden, kann mit System::getNumberOfCPUs() die Anzahl der vorhandenen Kerne abgefragt und diese Information zur automatischen Anordnung der Fenster verwendet werden.

Parameter
koutZeiger auf das Objekt für das Hauptfenster
doutZeiger auf ein Array mit einem Debugfenster für jede CPU

◆ flush()

void CGA_Stream::flush ( )
virtual

Methode zur Ausgabe des Pufferinhalts der Basisklasse Stringbuffer.

Die Methode wird implizit aufgerufen, sobald der Puffer voll ist, kann aber auch explizit verwendet werden, um eine Ausgabe zu erzwingen.

Implementiert O_Stream.


Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Dateien: