Messagequeues



  • Hi,
    ich habe da folgendes aufzusetzen:
    Von einem Thread A bekomme ich immer wieder Funktionsaufrufe mit einer eindeutigen Request ID und verschiedenen Argumenten.
    Also Funktion(int RequestID, typ Argument);
    Die Argumenttypen variieren.
    Diese Funktionsaufrufe muss ich buffern und von einem anderen Prozess abarbeiten lassen. Wenn die Antwort da ist, schaue ich in die Queue, zu welchem Aufruf sie gehört und sende dann das Ergebnis zurück an Thread B.
    Was ich also wissen möchte, wie realisiere ich am besten diese Messagepumpe, im Hinblick auf die unterschiedlichen Typen bei den Aufrufparametern.

    Danke!
    Theresa



  • Virtuelle Funktion definieren, die den Argumenttyp zurückliefert, so dass du entsprechend dem Typ reagieren/casten kannst.



  • @Mahias
    kannste mal n beispiel bringen?



  • class Argument
    {
       enum EArgmumentTyp { EArgument, EFehlerArgument, ....}
       virtual EArgmumentTyp GetType () { return Argument::EArgument;}
    }
    
    class FehlerArgument: public Argument
    {
       virtual EArgmumentTyp GetType () { return Argument::EFehlerArgument;}
    }
    

Anmelden zum Antworten