Rudolf's Radius Klassenbibliothek
Left Up Right Klassenbibliothek

Klasse Attrdict sowie wichtige Komponenten

Zweck

Die Klasse Attrdict verwaltet das sog. Dictionary, welches Menschenlesbare Bezeichnungen sowie Typen den Attributidentitäten zuordnet. Auch die Werte der Attribute werden mit verwaltet.

Beschreibung

Initialisierung

Attrdict()
Konstruktor, der die internen Strukturen aufbaut (Baum)
const char *init(char *datname);
initialisiert das Dictionary aus der Datei datname

Abfrage

Polymorpher Operator []
Attreintrag *operator[](Attribut_t attribut);
liefert Attributeintrag aus einem Attribut_t
Attreintrag *operator[](name_t name)
liefert Attributeintrag aus dem Namenstring

Bemerkung zur Implementierung

Die Attribute werden in einem Array mit der Attributnummer als Index gespeichert. Zwischen den Standardattributen und den (von Ascend) erweiterten Attributen klafft eine Lücke.
Bei Erweiterung müssen ggf.daher die Konstanten Attrdictanzstd, Attrdictanzerw und Attrdoctfirsterw in dict.h angepasst werden !

Komponentenklasse Attreintrag

Die Komponentenklasse Attreintrag verwaltet ein Attribut.
Attribut_t id
char name[]
int type
sowie eine Liste der Konstanten falls angebracht, die mit folgenden Operationen abgefragt wird:
const char *operator()(int value);
ermittelt die zugehörige Wertbezeichnung
int wert(char *wertbez);
ermittelt aus der Wertbezeichung das Integeräquivalent
Operationen:
void string(char *aname,char *vstr,u_char *value,int len,int log=0);
liefert den Attributname aname und den Wertstring vstr als dem Attributwert value.
void print(ostream &ostr,u_char *value,int len,int log=0);
druckt den Attributwert aus. Der Parameter log=1 verhindert die Doppelhochkommas bei der Ausgabe von Zeichenketten , wie es im Logfile gebraucht wird.

Rudolf Weber Informatik- und Netzwerkverein Ravensburg e.V