VR-Forces 4.0.4 Class Documentation
include/vrfmsgs/vrfObjectMessageExecutive.h
Go to the documentation of this file.
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

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)