Diese Klasse verbindet die beiden oben vorgestellten. So ist sie abgeleitet von der Klasse MOIofSNMP_Table und enthält eine Instanz der Klasse PollingIntervall.
class dynMOICreation_ofSNMP_Table : protected MOIofSNMP_Table
{
private:
PollingIntervall pollInt;
int actualTime;
int changes;
int numberMOIs;
public:
dynMOICreation_ofSNMP_Table(char *newIpAddress,
char *newOid, char *newNamingAttrOID=NULL,
char *newClassOID=NULL,
char *newParentInstName=NULL) :
MOIofSNMP_Table(newOid,newIpAddress,
newNamingAttrOID,newClassOID,
newParentInstName)
{
actualTime=0;
numberMOIs=0;
}
~dynMOICreation_ofSNMP_Table() { }
int TestToCreateMOI();
int CreateMOI();
int getPollingIntervall();
int getPollingClass();
};
Die Aufgabe einer Instanz dieser Klasse läßt sich in zwei Kategorien einteilen,
entsprechend existieren dafür die beiden Methoden TestToCreateMOI und
CreateMOI:
int dynMOICreation_ofSNMP_Table :: TestToCreateMOI()
{
actualTime++; // Zeitzaehler erhoehen = Anzahl der
// Aufrufe der Methode zaehlen
if (actualTime==pollInt.getPollingIntervall())
// Pollingintervall abgelaufen ?
{
// Falls ja, rufe Methode zur Replikation auf
numberMOIs = updateMOIs(changes);
if (changes)
// Falls Klassen kreiert bzw. geloescht
// wurden, erniedrige die Intervallgroesse
pollInt.pollingClassDown(1);
else
// sonst erhoehe die Intervallgroesse
pollInt.pollingClassUp(1);
// setze Zeitzaehler auf 0
actualTime = 0;
}
return(numberMOIs);
}
Die Methode CreateMOI steht unabhängig zu der gerade implementierten
Polling-Strategie: Sie ruft ohne Beachtung des Zeitzählers direkt die geerbte
Methode updateMOIs auf. Dies wird zur Realisierung der Aktion ,,
aktualisiereTabelle`` benötigt. Dort soll ja die explizite, sofortige Replikation
der SNMP-Tabelle im Gateway erfolgen.