//===========================================================================// // File: apptask.hpp // // Project: MUNGA Brick: Application // // Contents: Interface specification for Application // //---------------------------------------------------------------------------// // Date Who Modification // // -------- --- ---------------------------------------------------------- // // 08/24/94 ECH Initial coding. // //---------------------------------------------------------------------------// // Copyright (C) 1994-1995, Virtual World Entertainment, Inc. // // All Rights reserved worldwide // // This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL // //===========================================================================// #if !defined(APPTASK_HPP) # define APPTASK_HPP # if !defined(STYLE_HPP) # include # endif # if !defined(CMPNNT_HPP) # include # endif # if !defined(SCHAIN_HPP) # include # endif # 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(); }; #endif