00001 #ifndef mswMOD_LIST_MANAGER_H 00002 #define mswMOD_LIST_MANAGER_H 00003 /******************************************************************************* 00004 * E.S.O. - VLT project 00005 * 00006 * "@(#) $Id: mswMOD_LIST_MANAGER.h,v 1.115 2003/11/12 14:33:36 vltsccm Exp $" 00007 * 00008 * who when what 00009 * -------- -------- ---------------------------------------------- 00010 * gchiozzi 04/04/97 Removed _CACHE subclasses 00011 * gchiozzi 28/06/96 Now inherits from evhDB_CMD_SERIAL 00012 * gchiozzi 27/06/96 Added phase mode to SendAll() 00013 * awalland 22/05/96 Replaced GetAddrVector with GetRequiredModules 00014 * mverola 03/04/96 Added CheckReqModState, UpdateReqModList 00015 * Changed GetStateVector into GetAddrVector 00016 * awalland 10/08/94 moved methods to MOD_LIST_COMMAND and MOD_LIST 00017 * gchiozzi 30/03/95 created 00018 */ 00019 00020 /************************************************************************ 00021 * 00022 *---------------------------------------------------------------------- 00023 */ 00024 #ifndef __cplusplus 00025 #error This is a C++ include file and cannot be used from plain C 00026 #endif 00027 00028 #include "msw.h" 00029 #include "evhDB_CMD_SERIAL.h" 00030 #include "mswMOD_LIST_COMMAND.h" 00031 #include "mswMOD_LIST.h" 00032 00033 class mswMOD_LIST_MANAGER : public evhDB_CMD_SERIAL 00034 { 00035 public: 00036 mswMOD_LIST_MANAGER(); 00037 mswMOD_LIST_MANAGER(const dbSYMADDRESS dbPoint); 00038 ~mswMOD_LIST_MANAGER(); 00039 00040 ccsCOMPL_STAT SendAll(msgMESSAGE &msg, 00041 const vltINT8 phase = mswSEND_NO_PHASE, 00042 const vltINT8 mode = mswSEND_REQUIRED, 00043 const vltINT8 focus = 0); 00044 ccsCOMPL_STAT UpdateCallbacks(); 00045 00046 const mswMOD_RECORD_ARRAY &GetRequiredModules(); 00047 00048 //MVE added 00049 vltLOGICAL CheckReqModState(vltINT32 stateToCheck); 00050 ccsCOMPL_STAT UpdateReqModList(vltINT8 oldFocus, 00051 vltINT8 newFocus); 00052 00053 ccsCOMPL_STAT DisableModulesListEvent(); 00054 ccsCOMPL_STAT EnableModulesListEvent(); 00055 00056 protected: 00057 virtual evhCB_COMPL_STAT ListChangedCB(evtEVENT_MSG &msg, void *udata); 00058 virtual evhCB_COMPL_STAT UnitStateChangedCB(evtEVENT_MSG &msg, void *udata); 00059 00060 private: 00061 ccsCOMPL_STAT ConstructorInit(); 00062 ccsCOMPL_STAT TriggerEvaluation(vltINT8 whatToTrigger); 00063 00064 evtEVENT evt; 00065 evtEVENT unitEvent[mswNO_OF_MODULES]; 00066 00067 mswMOD_LIST *modList; 00068 00069 dbSYMADDRESS modPoint; 00070 }; 00071 00072 #endif