#pragma once #include "style.h" #include "cmpnnt.h" #include "schain.h" #if defined(TRACE_COMPLETE_CYCLES) extern BitTrace Complete_Cycles; #define SET_COMPLETE_CYCLES() Complete_Cycles.Set() #define CLEAR_COMPLETE_CYCLES() Complete_Cycles.Clear() #else #define SET_COMPLETE_CYCLES() #define CLEAR_COMPLETE_CYCLES() #endif #if defined(TRACE_DEATH_ROW) extern BitTrace Death_Row; #define SET_DEATH_ROW() Death_Row.Set() #define CLEAR_DEATH_ROW() Death_Row.Clear() #else #define SET_DEATH_ROW() #define CLEAR_DEATH_ROW() #endif //########################################################################## //####################### ApplicationTask ############################ //########################################################################## class ApplicationTask: public Component { public: ApplicationTask(ClassID class_ID = ApplicationTaskClassID); ~ApplicationTask(); }; //########################################################################## //####################### BackgroundTasks ############################ //########################################################################## class BackgroundTasks: public Component { public: BackgroundTasks(); ~BackgroundTasks(); Logical TestInstance() const; void AddTask(ApplicationTask *task); void Execute(); private: SChainOf taskSocket; SChainIteratorOf *taskIterator; }; //~~~~~~~~~~~~~~~~~~~~~~~~~ NetworkManagerTask ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ class NetworkManagerTask: public ApplicationTask { public: NetworkManagerTask() {} ~NetworkManagerTask() {} void Execute(); }; //~~~~~~~~~~~~~~~~~~~~~~~~~~~ RoutePacketTask ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ class RoutePacketTask: public ApplicationTask { public: RoutePacketTask() {} ~RoutePacketTask() {} void Execute(); }; //~~~~~~~~~~~~~~~~~~~~~~~~~~ ProcessEventTask ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ class ProcessEventTask: public ApplicationTask { public: ProcessEventTask() {} ~ProcessEventTask() {} void Execute(); }; //~~~~~~~~~~~~~~~~~~~~~~~~~~ AudioRendererTask ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ class AudioRendererTask: public ApplicationTask { public: AudioRendererTask() {} ~AudioRendererTask() {} void Execute(); }; //~~~~~~~~~~~~~~~~~~~~~~~~~~ GaugeRendererTask ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ class GaugeRendererTask: public ApplicationTask { public: GaugeRendererTask() {} ~GaugeRendererTask() {} void Execute(); }; //~~~~~~~~~~~~~~~~~~~~~~~~~ CompleteCyclesTask ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ class CompleteCyclesTask: public ApplicationTask { public: CompleteCyclesTask() {} ~CompleteCyclesTask() {} void Execute(); }; //~~~~~~~~~~~~~~~~~~~~~~~~~~~ FryDeathRowTask ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ class FryDeathRowTask: public ApplicationTask { public: FryDeathRowTask() {} ~FryDeathRowTask() {} void Execute(); };