Hauptseite   Klassenhierarchie   Übersicht   Auflistung der Dateien   Datenstruktur-Elemente   Datei-Elemente  

PotWriter Klassenreferenz

Konkreter Writer für das POT-Format. Mehr...

#include <pot_writer.h>

Klassendiagramm für PotWriter:

Writer OctStruct Aufstellung aller Elemente

Öffentliche Datenelemente

 PotWriter (const char *fileName)
 Konstruktor.

virtual ~PotWriter ()
 Destruktor.

virtual const char * getFormatName ()
 Liefert den Namen Formats.

virtual const FormatType getFormatType ()
 Liefert den Format-Typ.

virtual void writeFile (IndexOct *tree) throw (WriteFileException*)
 Schreibt die Oktalbaumstruktur in die POT-Datei.


Private Datenelemente

void binWrite (Data data)
 Bitweise Kodierung und Speicherung im Bin"arformat.

void flushWrite ()
 Schreibt die gecachten Daten und leert den Cach.

const size_t getCachSize ()
 Liefert die Cach-Größe.

void writeInnerNode ()
 Schreibt die Daten für den inneren Knoten.

void writeLeaf (Color color)
 Schreibt die Daten für den Blattknoten.

void writeTree (Node node)
 Schreibt den Unterbaum node in Preordertraversierung in die Ausgabedatei.


Private Attribute

const char * fileName
 Name der Ausgabedatei.

FILE * potFile
 Handler für die Ausgabedatei.

size_t wCount
 Anzahl gecachter Bits.

Data wBinary
 Gecachter Binärwert.


Ausführliche Beschreibung

Konkreter Writer für das POT-Format.

Es wird die Oktalbaumstruktur linearisiert in Präodertraversierung geschrieben.


Beschreibung der Konstruktoren und Destruktoren

PotWriter::PotWriter const char *    fileName
 

Konstruktor.

Parameter:
fileName  Name der POT-Datei.


Dokumentation der Elementfunktionen

void PotWriter::binWrite Data    data [private]
 

Bitweise Kodierung und Speicherung im Bin"arformat.

Die Attribute NodeKind:LEAF bzw. NodeKind:INNER_NODE werden bitweise kodiert und im Binärformat gespeichert. Am Ende der Ausgabe muss ein Flush durchgef"uhrt werden, wobei evtl. noch mit zus"atzlichen Nullen aufgef"ullt wird.

Parameter:
data  zu schreibendes Attribut

const size_t PotWriter::getCachSize   [private]
 

Liefert die Cach-Größe.

Rückgabe:
Größe des Cachs

virtual const char* PotWriter::getFormatName   [virtual]
 

Liefert den Namen Formats.

Rückgabe:
"POT"

Implementiert Writer.

virtual const FormatType PotWriter::getFormatType   [virtual]
 

Liefert den Format-Typ.

Rückgabe:
Writer::POT

Implementiert Writer.

virtual void PotWriter::writeFile IndexOct   tree throw (WriteFileException*) [virtual]
 

Schreibt die Oktalbaumstruktur in die POT-Datei.

Dazu wird der Oktalbaum linearisiert. Die inneren Knoten und Blätter des Oktalbaumes werden dazu entsprechend attributiert. Im Anschluss daran wird der Baum traversiert, d.h., nach dem Schema "Depth-First" (Tiefensuche) wird der Baum einmal durchlaufen und die Werte der innere Knoten bzw. Blätter werden bei ihrem ersten Besuch aufgeschrieben. Als Ergebnis liegt der Baum in einem in der Ausgabedatei geschriebenen Binärstrom vor.

Parameter:
tree  zu schreibender Oktalbaum
Ausnahmebehandlung:
WriteFileException  Dateischreibefehler

Implementiert Writer.

void PotWriter::writeLeaf Color    color [private]
 

Schreibt die Daten für den Blattknoten.

Parameter:
color  Blattfarbe

void PotWriter::writeTree Node    node [private]
 

Schreibt den Unterbaum node in Preordertraversierung in die Ausgabedatei.

Parameter:
node  Unterbaum


Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Datei:
Erzeugt am Fri Mar 14 19:44:51 2003 für cad2octree von doxygen1.2.16