diff options
Diffstat (limited to 'Src/timer/tmultiplex.h')
-rw-r--r-- | Src/timer/tmultiplex.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/Src/timer/tmultiplex.h b/Src/timer/tmultiplex.h new file mode 100644 index 00000000..3ed426ba --- /dev/null +++ b/Src/timer/tmultiplex.h @@ -0,0 +1,45 @@ +#ifndef __MAIN_TIMERMULTIPLEXER_H +#define __MAIN_TIMERMULTIPLEXER_H + +#include "timermul.h" +#include <bfc/depend.h> +#include <bfc/string/StringW.h> +#include <api/timer/timerclient.h> + +class VirtualTimer +{ + public: + VirtualTimer(TimerClient *_client, intptr_t _id, api_dependent *depend); + virtual ~VirtualTimer() { } + + TimerClient *client, *mclient; + api_dependent *dep; + StringW name; + intptr_t id; +}; + +class MainTimerMultiplexer : public TimerMultiplexer, public TimerMultiplexerClient, public DependentViewerI { + public: + + MainTimerMultiplexer(); + virtual ~MainTimerMultiplexer(); + + virtual void add(TimerClient *client, intptr_t id, int ms); + virtual void remove(TimerClient *client, intptr_t id); + + virtual void onMultiplexedTimer(void *data, int skip, int mssincelast); + virtual void onServerTimer(); + + virtual int viewer_onItemDeleted(api_dependent *item); + + private: + + int isValidTimerClientPtr(TimerClient *tc, api_dependent *dep); + + int haveClient(TimerClient *client); + PtrList<VirtualTimer> timerclients; + PtrListQuickSortedByPtrVal<TimerClient> masters; + +}; + +#endif |