Up Right Nisserver mit mehreren Typen von Maps

Abstrakte Map-Schnittstelle dmap

Klasse Dmap definiert die Abstrakte Schnittstelle für Abbildungen auf Dateiebene:
class Dmap
{
public:
  virtual int open()=0;  //Bereitstellen
  virtual int close()=0; //Bereitstellung aufheben
  virtual int fetch(Gdat &key,Gdat &val)=0;
  virtual int firstkey(Gdat &fkey)=0;
  virtual int nextkey(Gdat &erg,Gdat &vorg)=0;
  
  virtual unsigned long get_dtm()=0;
};
Modifizierbare Dmap:
class mDmap : public Dmap
{
public:
  virtual int create()=0;
  virtual int openforchange()=0;
  virtual int store(Gdat &key,Gdat &value,Dmapflag flag)=0;
};
Gdat die generalisierte Datumsklasse wickelt das Speichergeraffel ab

Die eigentliche Versorgung der Parameter erfolgt in den Unterklassen-Konstruktoren:

Klasse Dmap_dbtree
Klasse Dmap_dbhash
Klasse Dmap_gdbm
Klasse Dmap_adabas
(Andere Datenbanken kann man ähnlich einbinden)

Einordnung

Diese Klassen sind die Datenabstraktionsschicht (Data AbstraktionLayer) und sind so vielseitig einsetzbar.

Sonstiges

Ideen

Ähnliche Arbeiten

In Perl, TCL und sendmail
gibt es auch allgemeine Schnittstellen für die Maps.

Natürlich hätte ich es auch aus einem extrahieren können, doch die Idee kam zu spät und schlieslich bin ich ein Freund der Objektorientierten Programmierung

AnyDBM von Webping
Diese habe ich mir auch angesehen.

Positiv: Können besser C++ als ich.

Negativ:


Rudolf Weber Informatik und Netzwerkverein Ravensburg e.V