![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2007 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: vrfObjectMessageExecutive.h,v $ $Revision: 1.4 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00013 00014 #ifndef vrfObjectMessageExecutive_h 00015 #define vrfObjectMessageExecutive_h 00016 00017 #include "vrfmsgs/vrfmsgsDefines.h" 00018 #include "vrfutil/callbackList.h" 00019 #include <map> 00020 #include <vlutil/vlSmartPointers.h> 00021 00023 #include "vrfmsgs/vrfObjectMessage.h" 00024 00025 class DtSimMessage; 00026 00027 typedef void (*DtVrfObjectMessageCallbackFcn)(const DtVrfObjectMessage * msg, void * usr); 00028 00032 class DT_DLL_vrfmsgs DtVrfObjectMessageExecutive 00033 { 00034 private: 00036 DtVrfObjectMessageExecutive(const DtVrfObjectMessageExecutive& orig); 00038 DtVrfObjectMessageExecutive& operator=(const DtVrfObjectMessageExecutive& orig); 00039 00040 public: 00041 DtVrfObjectMessageExecutive(); 00042 virtual ~DtVrfObjectMessageExecutive(); 00043 00046 virtual void processMessage(const DtVrfObjectMessage* message); 00047 00050 00051 virtual void addMessageCallback(DtVrfObjectMessageCallbackFcn fcn, void* usr); 00052 virtual void removeMessageCallback(DtVrfObjectMessageCallbackFcn fcn, void* usr); 00054 00057 00058 virtual void addMessageCallback(int type, DtVrfObjectMessageCallbackFcn fcn, void* usr); 00059 virtual void removeMessageCallback(int type, DtVrfObjectMessageCallbackFcn fcn, void* usr); 00061 00066 00067 virtual void addMessageCallbackByCategory(int category, DtVrfObjectMessageCallbackFcn fcn, void* usr); 00068 virtual void removeMessageCallbackByCategory(int category, DtVrfObjectMessageCallbackFcn fcn, void* usr); 00070 00072 virtual void removeAllCallbacks(); 00073 00074 protected: 00075 typedef DtCallbackList<const DtVrfObjectMessage*> DtObjectMessageCallbackList; 00076 typedef DtBoost::shared_ptr<DtObjectMessageCallbackList> DtObjectMessageCallbackListPtr; 00077 typedef std::map<int, DtObjectMessageCallbackListPtr> DtObjectMessageCallbackMap; 00078 00080 DtObjectMessageCallbackMap myObjectMessageCallbacksByType; 00082 DtObjectMessageCallbackList myObjectMessageCallbacks; 00084 DtObjectMessageCallbackMap myObjectMessageCallbacksByCategory; 00085 }; 00086 00087 #endif