Liebe Doxygennutzer. Ich habe ein Projekt übernommen, bei dem schon seh viel Code existiert, aber der kaum bis nicht dokumentiert ist. Überraschung!! :) Jetzt möchte ich da mit Doxygen Ordnung reinbringen, was auch gut funktioniert. Nur stellt sich mir gerade eine Aufgabe, für die ich noch keine befriedigende Lösung habe. Der Code kann viele Benutzerbefehle abarbeiten. Dazu wird der Befehl über eine Schnittstelle eingelesen. Je nachdem, was in dem Befehl steht, erfolgen verschiedene Aktionen. Soweit normal. Nur wird jetzt nicht für jeden Befehl eine eigene Funktion aufgerufen, sondern alles innerhalb EINER Funktion über switch case abgearbeitet. Damit habe ich nicht mehr viele Funktionen, die ich einzeln dokumentieren kann. Ich frage mich jetzt, wie ich am besten eine Befehlsüberischt anlegen kann. Was könnt ihr mir da für Doxygenbefehle empfehlen? Ich hab mir jetzt mal das Grouping mit \defgroup angeschaut und \page mit \section. Aber so richtig glücklich bin ich damit noch nicht. Danke! Sebastian
Sebastian R. schrieb: > Nur wird jetzt nicht für jeden Befehl eine eigene Funktion aufgerufen, > sondern alles innerhalb EINER Funktion über switch case abgearbeitet. Suchst Du eine Übersicht über alle enums und ihre Werte?
Nein, das sind keine enums. Die Struktur ist etwa so:
1 | switch (Befehl[0]) |
2 | {
|
3 | case 'a': mach_irgendwas(Befehl[1]); |
4 | case 'b': mach_irgendwas(Befehl[2]); |
5 | case 'c': mach_was_anderes(Befehl[3]); |
6 | case 'd': mach_was_anderes(Befehl[4]); |
7 | }
|
:
Bearbeitet durch User
ehrlich gesagt hab ich das in doxygen auch schonmal gesucht (erfolglos) ich hab mir dann selber geholfen indem ich den kompletten Quellcode Ordner nach dem switch keyword durchsucht hab (es waren zum Glück nur zwei Dateien und drei Funktionen die mir da relevant waren letzenendes.. und sieben Dateien die ich mir dafür ansehen musste, ging also) die 'paar' switchcases hab ich dann manuell dokumentiert (--!) und das war's dann schon wenn es leichter geht, bin ich interessiert zu erfahren wie ;) (wer weiss wann ich das wieder brauche) 'sid
Lösung 1:
1 | /// \page Befehlliste
|
2 | /// \secreflist
|
3 | /// \refitem cmd0 Befehl 0
|
4 | /// \refitem cmd1 Befehl 1
|
5 | /// \refitem cmd2 Befehl 2
|
6 | /// \endsecreflist
|
7 | |
8 | switch (command[0]) |
9 | |
10 | /// \page Befehlliste
|
11 | /// \section cmd0 Befehl 0
|
12 | /// Der 0 Befehl macht was tolles.
|
13 | case 0: ........ |
Ich leg eine eigene Seite für die Befehlsübersicht an. Darin gibt es dann eine Liste, die auch verlinkt ist. Nachteil: Die Liste muss manuell angelegt und sortiert werden.
:
Bearbeitet durch User
Ich hab sowas händisch in die funktionsbeschreibung reingeschrieben. Da ging es um Message-types die das Modul (hatte eine Einstiegs-funktion und viele Helper-functions) verarbeitet oder verschickt. Ging anders nicht, das Ergebnis aber durchaus zufriedenstellend. Ja, manchmal kann/könnte man enums einsetzen und das lohnt sich auch durchaus dann auch auf enums umzustellen.
Lösung 2:
1 | /// \defgroup Befehle Befehlsübersicht
|
2 | |
3 | switch (command[0]) |
4 | |
5 | /// \ingroup Befehle
|
6 | /// \defgroup cmd0 Befehl 0
|
7 | /// Der 0 Befehl macht was tolles.
|
8 | case 0: ........ |
9 | |
10 | /// \ingroup Befehle
|
11 | /// \defgroup cmd1 Befehl 1
|
12 | /// Der 1 Befehl macht was anderes.
|
13 | case 1: ........ |
Damit geht´s auch, aber es wird keine Liste am Anfang angelegt. Und die erzeugte Seite tauscht nur unter "Module" auf. Also evtl. nicht so leicht zu finden.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.