VR-Forces 4.0.4 Class Documentation
include/vrfmsgs/msgExec.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2005 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: msgExec.h,v $ $Revision: 1.13 $ $State: Exp $
00007 *******************************************************************************/
00008 
00011 
00017 
00018 
00019 #ifndef DtMessageExecutive_H_
00020 #define DtMessageExecutive_H_
00021 
00022 #include <vlutil/vlList.h>
00023 #include "vrfmsgs/simMsg.h"
00024 #include <vlutil/vlHashlist.h>
00025 #include <vlutil/vlTime.h>
00026 
00027 class DtMessageCallbackInfo;
00028 
00030 typedef void (*DtMessageCallbackFcn)(DtSimMessage * msg, void * usr);
00031 
00041 
00042 #include "vrfmsgs/vrfmsgsDefines.h"
00043 class DT_DLL_vrfmsgs DtMessageExecutive
00044 {
00045 public:
00046 
00048    DtMessageExecutive();
00049 
00051    virtual ~DtMessageExecutive();
00052 
00054    DtMessageExecutive(const DtMessageExecutive& orig);
00055 
00057    DtMessageExecutive& operator=(const DtMessageExecutive& orig);
00058 
00061    virtual void addMessageCallback(int type, DtMessageCallbackFcn fcn, 
00062       void* usrData);
00063 
00064    virtual void removeMessageCallback(int type, DtMessageCallbackFcn fcn, 
00065       void* usrData);
00066 
00068    virtual void addSimMessageCallback(DtMessageCallbackFcn fcn, 
00069       void* usrData);
00070 
00071    virtual void removeSimMessageCallback(DtMessageCallbackFcn fcn, 
00072       void* usrData);
00073 
00075    virtual void processMessage(const DtSimMessage& msg) const;
00076 
00078    virtual int numCallbacks(int type) const;
00079 
00083    virtual int indexType(const DtSimMessage & message) const = 0;
00084 
00085 public:
00087    static unsigned generateMessageId();
00088 
00089 
00093    static int maximumContentSize();
00094    static void setMaximumContentSize(int sz);
00096 
00099    static unsigned maximumSignalDataSize();
00100 
00101    static DtTime timeoutCheckInterval();
00102    static void setTimeoutCheckInterval(DtTime nSecs);
00103    static DtTime timeoutDuration();
00104    static void setTimeoutDuration(DtTime nSecs);
00105 
00106 protected:
00107 
00109    virtual void addMessageCallback(int type, DtMessageCallbackInfo* info);
00110 
00111    virtual void removeMessageCallback(int, const DtMessageCallbackInfo& info);
00112 
00115    void emptyList();
00116 
00119    void copyList(const DtMessageExecutive& orig);
00120 
00121 protected:
00122 
00123    DtList mySimMsgCbs;
00124 
00127    DtHashlist myListOfCbLists;
00128 
00129    static int     theMaximumContentSize;
00130    static unsigned theMaxSignalDataSize;
00131 
00132    static unsigned   theSplitId;
00133 
00134    static DtTime  theTimeoutCheckInterval;
00135    static DtTime  theTimeoutDuration;
00136 };
00137 
00138 #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)