Hallo zusammen,
ich habe den folgenden Sachverhalt, und auch einen ersten Lösungsansatz, doch denke ich dass dieser womöglich nicht ganz optimal ist, habt ihr irgendwelche Tipps/Vorschläge?
Meine Ausgangslage: Ich habe eine in C++ geschrieben DLL, die darin enthaltenen Interface-Methoden werden über eine GUI angesprochen, jeder Aufruf einer Interface-Methode wird in einem speziellen Log-File mitgeloggt (es werden in diese File nur die Funktionsaufrufe samt deren Parameterliste geschrieben). Nun soll es ermöglicht werden die einzelnen Funktionsaufrufe aus dem Log-File auszulesen und diese auszuführen.
Gibt es hierzu nun eine andere Möglichkeit als zuerst den entsprechenden Methodennamen auszulesen und in einem großen if-else if-else Statement nach der korrekten Behandlungsroutine zu suchen? Nachteil an dieser Lösung ist, dass es zu einem sehr länglichen Konstrukt kommen würde, da die Anzahl der verschiedenen Methoden gegen 200 geht. Die einzelnen Methoden besitzen dann natürlich auch noch die unterschiedlichsten Parameterlisten. Vorteil der if-else if-else Lösung wäre mit Sicherheit deren Einfachheit.
Nun noch mal zu meiner Frage ist es möglich den Mechanismus in irgendeiner Art und Weise dynamischer zu machen, so dass nicht ein rießiges if-else Konstrukt benötigt wird, oder gibt es beim Einsatz von C++ keine andere Möglichkeit?
Hab schon an Reflection gedacht da ich aus der Java-Welt komme, unter C++ gibts das aber leider nicht standardmäßig, hab aber ein passendes Projekt unter http://seal-reflex.web.cern.ch/seal-reflex/ entdeckt, hat jemand von euch schon mal damit gearbeitet bzw. Erfahrung damit? Oder kennt ihr ein anderes passendes Projekt?
Danke für eure Antworten
Jens
ich habe den folgenden Sachverhalt, und auch einen ersten Lösungsansatz, doch denke ich dass dieser womöglich nicht ganz optimal ist, habt ihr irgendwelche Tipps/Vorschläge?
Meine Ausgangslage: Ich habe eine in C++ geschrieben DLL, die darin enthaltenen Interface-Methoden werden über eine GUI angesprochen, jeder Aufruf einer Interface-Methode wird in einem speziellen Log-File mitgeloggt (es werden in diese File nur die Funktionsaufrufe samt deren Parameterliste geschrieben). Nun soll es ermöglicht werden die einzelnen Funktionsaufrufe aus dem Log-File auszulesen und diese auszuführen.
Gibt es hierzu nun eine andere Möglichkeit als zuerst den entsprechenden Methodennamen auszulesen und in einem großen if-else if-else Statement nach der korrekten Behandlungsroutine zu suchen? Nachteil an dieser Lösung ist, dass es zu einem sehr länglichen Konstrukt kommen würde, da die Anzahl der verschiedenen Methoden gegen 200 geht. Die einzelnen Methoden besitzen dann natürlich auch noch die unterschiedlichsten Parameterlisten. Vorteil der if-else if-else Lösung wäre mit Sicherheit deren Einfachheit.
Nun noch mal zu meiner Frage ist es möglich den Mechanismus in irgendeiner Art und Weise dynamischer zu machen, so dass nicht ein rießiges if-else Konstrukt benötigt wird, oder gibt es beim Einsatz von C++ keine andere Möglichkeit?
Hab schon an Reflection gedacht da ich aus der Java-Welt komme, unter C++ gibts das aber leider nicht standardmäßig, hab aber ein passendes Projekt unter http://seal-reflex.web.cern.ch/seal-reflex/ entdeckt, hat jemand von euch schon mal damit gearbeitet bzw. Erfahrung damit? Oder kennt ihr ein anderes passendes Projekt?
Danke für eure Antworten
Jens
Comment