Rudolf's Radius Klassenbibliothek
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