VR-Forces 4.0.4 Class Documentation
include/vrfMsgTransport/splitMessageCollector.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 1999-2001 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: splitMessageCollector.h,v $ $Revision: 1.2 $ $State: Exp $
00007 *******************************************************************************/
00011 
00014 
00015 #ifndef DtSplitMessageCollector_H_
00016 #define DtSplitMessageCollector_H_
00017 
00018 #include "vrfMsgTransport/vrfMsgTransportDefines.h"
00019 
00020 #include <map>
00021 
00022 #include <vlpi/simulationAddress.h>
00023 #include <vrfutil/splitContentTimer.h>
00024 
00025 class DtVrfMessageInterface;
00026 class DtSimInterfaceMessage;
00027 class DtSplitMessageKey;
00028 
00030 class DT_DLL_vrfMsgTransport DtSplitMessageCollector
00031 {
00032 public:
00033    typedef std::map<DtSplitMessageKey, std::map<int, DtSimInterfaceMessage> > DtSplitMap;
00034 
00035 public:
00036 
00038    DtSplitMessageCollector();
00039 
00041    virtual ~DtSplitMessageCollector();
00042 
00043    virtual void processSplitContentTimeout(const DtSplitMessageKey& key);
00044 
00047    virtual bool reassembleMessage(const DtSplitMessageKey& key,
00048       int nOriginalContentType,
00049       DtVrfMessageInterface& vrfMsgIf);
00050 
00058    virtual bool receiveMessage(
00059       const DtSimInterfaceMessage& msg,
00060       DtVrfMessageInterface& vrfMsgIf);
00061 
00063    virtual void timeoutOldSplits();
00064 
00065    virtual const DtSplitContentTimer& splitContentTimer() const;
00066    virtual DtSplitContentTimer& splitContentTimer();
00067 
00068    static void splitContentTimeoutCbk(const DtSplitMessageKey& key, void *pUsr);
00069 
00070 protected:
00071 
00074    DtSplitMessageCollector(const DtSplitMessageCollector& orig);
00075 
00076    const DtSplitMessageCollector& operator=(
00077       const DtSplitMessageCollector& orig);
00079 
00080 protected:
00081    DtSplitMap           mySplitMessages;
00082    DtSplitContentTimer  mySplitContentTimer;
00083 };
00084 
00085 inline const DtSplitContentTimer& DtSplitMessageCollector::splitContentTimer() const
00086 {
00087    return (mySplitContentTimer);
00088 }
00089 
00090 inline DtSplitContentTimer& DtSplitMessageCollector::splitContentTimer()
00091 {
00092    return (mySplitContentTimer);
00093 }
00094 
00095 #endif
00096 
00097 

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)