module_master Klassenreferenz

#include <module.h>

Aufstellung aller Elemente

Öffentliche Methoden

int register_module (module *m)
int unregister_module (module *m)
int unload_all (void)
int broadcast (const char *msg)
moduleget_module (const char *name, int id=-1)
moduleget_module (int id)

Öffentliche, statische Methoden

static module_masterptr (void)

Private Methoden

 module_master (void)
 Erstellt die einzige Instanz des Singletons.
 module_master (const module_master &)

Private Attribute

vector< module_infodb


Ausführliche Beschreibung

module_master ist die Klasse, die alle Daten über alle momentan geladenen Module enthält. Diese Klasse ist ein Singleton, d.h. es gibt nur eine Instanz für jeden Programmlauf. Genaueres ist in der Projektdokumentation zu finden.


Beschreibung der Konstruktoren und Destruktoren

module_master::module_master ( void   )  [private]

Erstellt die einzige Instanz des Singletons.

module_master::module_master ( const module_master  )  [private]


Dokumentation der Elementfunktionen

int module_master::broadcast ( const char *  msg  ) 

Reicht eine Nachricht an alle Module weiter. Wie diese darauf reagieren, ist in handle_msg festgelegt.

Parameter:
msg Die zu sendende Nachricht
Rückgabe:
0, wenn kein Fehler auftrat. Sonst -1.

module* module_master::get_module ( int  id  ) 

module * module_master::get_module ( const char *  name,
int  id = -1 
)

Liefert die Adresse eines bestimmten Moduls. Wenn eine ID von -1 angegeben wird, was standardmäßig der Fall ist, geht das Programm davon aus, dass das erste Modul, das den selben Namen trägt, gefunden werden soll.

Parameter:
name Der Name des Moduls, beispielsweise "module_net_tcp"
id Die ID des Moduls. Momentan ungenutzt.
Rückgabe:
Zeiger auf Modul oder NULL, wenn dieses nicht gefunden wurde.

module_master & module_master::ptr ( void   )  [static]

Liefert eine Instanz des Singletons. Wenn der Singleton auf diese Weise (über eine statische Instanz) erzeugt wird, hat dies den Vorteil, dass man Konstruktoren/Destruktoren verwenden kann und sich nicht um Speicherverwaltung kümmern muss.

int module_master::register_module ( module m  ) 

Registriert ein Modul, indem dieses zur Datenbank hinzugefügt wird. Die Anzahl der Module kann beliebig groß sein, sofern das RAM mitmacht. Beim Registrieren wird das Modul durch einen Aufruf von mod_load() gleich geladen.

Parameter:
m Das zu registrierende Modul.
Rückgabe:
0, wenn das Modul registriert werden konnte. -1, wenn ein Fehler auftrat.

int module_master::unload_all ( void   ) 

Beendet alle Module.

Rückgabe:
0, wenn kein Fehler auftrat. Sonst -1.

int module_master::unregister_module ( module m  ) 

Entfernt die Regstrierung eines Moduls aus der Datenbank. Das Modul wird dabei auch gleich beendet, sodass z.B. benutzter Speicher wieder freigegeben wird.

Parameter:
m Das zu entfernende Modul
Rückgabe:
0, wenn das Modul erfolgreich entfernt werden konnte. -1 sonst.


Dokumentation der Datenelemente

vector<module_info> module_master::db [private]


Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Dateien:
Erzeugt am Sun Sep 3 23:58:31 2006 für Eukalyptos von  doxygen 1.4.7