/* * File: MTTimerFactory.h * Author: jgaebler * * Created on May 21, 2010, 8:20 AM */ #pragma once #ifndef _MTTIMERFACTORY_H #define _MTTIMERFACTORY_H #include "GTTimer.h" #include "LTTimer.h" #include "GTAwaitTimer.h" #include "GarbageTimer.h" namespace ubeeme { namespace moversight { class MessageTransfer; /** * @class MTTimerFactory * @brief Provides builder and setup utility methods to create the three MT timer types * @ingroup Moversight * @author Jan Gäbler */ class MTTimerFactory { public: /** * @brief Creates an GT timer * @param mt the message transfer instance used as callback within the timer * @return the created timer */ static MTTimer* createGTTimer(MessageTransfer & mt) { GTTimer * timer = new GTTimer(mt); return timer; }//End createGTTimer /** * @brief Creates an GTAwait timer * @param mt the message transfer instance used as callback within the timer * @return the created timer */ static MTTimer* createGTAwaitTimer(MessageTransfer & mt) { return new GTAwaitTimer(mt); }//End createGTAwaitTimer /** * @brief Creates an LT timer * @param mt the message transfer instance used as callback within the timer * @return the created timer */ static MTTimer* createLTTimer(MessageTransfer & mt) { return new LTTimer(mt); }//End createLTTimer /** * @brief Creates an Garbage timer * @param mt the message transfer instance used as callback within the timer * @return the created timer */ static MTTimer* createGarbageTimer(MessageTransfer & mt) { return new GarbageTimer(mt); }//End createLTTimer private: MTTimerFactory() { }; MTTimerFactory(const MTTimerFactory& /*orig*/) { }; virtual ~MTTimerFactory() { }; }; } } #endif /* _MTTIMERFACTORY_H */