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.