VR-Forces 5.0.1 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
externalCommModel.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 #include <map>
14 #include <deque>
15 #include "vrfobjcore/commModel.h"
18 
20 
22 {
23 private:
25 
30 
31 protected:
35  virtual bool init();
36 
37 public:
41 
42  virtual ~DtExternalCommModel();
43 
45  virtual DtString type() const;
46 
49  virtual void registerRadio(DtVrfRadio* radio);
50 
55  virtual void sendMessage(DtVrfObjectMessage* message, DtVrfRadio* sendingRadio);
56 
59  virtual void tick();
60 
61 protected:
62  virtual DtU32 nextMessageId(const DtEntityIdentifier& entityId);
63 
65  virtual void passMessageToReceiver(DtVrfObjectMessageConstPtr, const DtEntityIdentifier& receiver);
66 
67  static void messageClearToReceiveCallback(const DtExternalCommsProcessMessageData& data, void* usr);
68  virtual void processMessageClearToReceive(const DtExternalCommsProcessMessageData& data);
69 
70  static void messageTimeoutCallback(const DtExternalCommsTimeoutData& data, void* usr);
71  virtual void processMessageTimeout(const DtExternalCommsTimeoutData& data);
72 
73  static void newMessageCallback(const DtExternalCommsMessageTransporter::DtExternalCommsMessageCallbackParams& params, void* usr);
74  virtual void processNewMessage(const DtExternalCommsMessageTransporter::DtExternalCommsMessageCallbackParams& params);
75 
76  static void readyToSendCallback(const DtExternalCommsReadyToSendData& data, void* usr);
77  virtual void processReadyToSend(const DtExternalCommsReadyToSendData& data);
78 
79 protected:
80 
81 
83  {
85  DtEntityIdentifier myReceiver;
86  };
87 
89 
90  typedef std::map<DtU32, DtVrfObjectMessageConstPtr> DtRadioMessageMap;
95 
98  typedef std::deque<DtClearToReceiveData> DtClearToReceiveDeque;
100 
102 
105  typedef std::map<DtU32, DtExternalCommsProcessMessageData> DtExternalCommsMessageDataMap;
107 
110  typedef std::map<DtU32, DtExternalCommsTimeoutData> DtExternalCommsTimeoutMap;
112 };
DtExternalCommsMessageDataMap myWaitingForMessageMap
Definition: externalCommModel.h:106
DtCommModel & operator=(const DtCommModel &orig)
Not implemented.
Structure of data passed to the DtRadio constructor.
Definition: commModel.h:27
virtual bool init()
Virtual init() called from the create() method.
std::map< DtU32, DtExternalCommsProcessMessageData > DtExternalCommsMessageDataMap
This holds information for Qualnet clear to receive, if the transporter hasn&#39;t finished collecting al...
Definition: externalCommModel.h:105
Definition: externalCommModel.h:21
Base class for all communication models in VR-Forces. A DtCommModel is the central point for modeling...
Definition: commModel.h:58
std::deque< DtClearToReceiveData > DtClearToReceiveDeque
This holds messages that have been cleared for sending by the external comms server. The messages will not be sent until the next tick of the propagator.
Definition: externalCommModel.h:98
DtRadioMessageMap mySentMessages
Contains all the message that have been sent, but are awaiting authorization from the external comms ...
Definition: externalCommModel.h:93
virtual void sendMessage(DtVrfObjectMessage *message, DtVrfRadio *sendingRadio)
Sends the specified message though the comm model. This is the entry point for a message into the net...
DtExternalCommsMessageTransporter * myTransporter
Definition: externalCommModel.h:94
virtual DtString type() const
std::map< DtU32, DtVrfObjectMessageConstPtr > DtRadioMessageMap
Definition: externalCommModel.h:90
static DtCommModel * create(DtCommModelCreationParams &params)
Static creator function that can be registered with factories. Calls the constructor, and init() on the new instance before returning it.
virtual void tick()
Method that is called every simulation tick. Base class implementation does nothing.
Definition: externalCommsMessageTransporter.h:40
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
std::map< DtU32, DtExternalCommsTimeoutData > DtExternalCommsTimeoutMap
This holds information for Qualnet timeout, if the transporter hasn&#39;t finished collecting all message...
Definition: externalCommModel.h:110
Definition: externalCommsMessageTransporter.h:33
DtClearToReceiveDeque myClearToReceiveDeque
Definition: externalCommModel.h:99
Definition: externalCommModel.h:82
The base class for all messages to/from a specific DtVrfObject. Various subclasses of this class will...
Definition: vrfObjectMessage.h:30
const DtExternalCommModelDescriptor * myExternalCommModelDescriptor
Definition: externalCommModel.h:101
DtExternalCommsTimeoutMap myTimedOutMessageMap
Definition: externalCommModel.h:111
DtU32 myLastMessageId
Definition: externalCommModel.h:88
virtual void registerRadio(DtVrfRadio *radio)
Adds a new radio to the comm model. A radio must be part of the comm model in order to send or receiv...
std::pair< DtExternalCommsMessageParams, DtVrfObjectMessageConstPtr > DtExternalCommsMessageCallbackParams
Definition: externalCommsMessageTransporter.h:88
DtEntityIdentifier myReceiver
Definition: externalCommModel.h:85
Definition: externalCommsMessageTransporter.h:24
This class manages encoding and decoding of messages to and from an external comms effects server...
Definition: externalCommsMessageTransporter.h:62
DtBoost::shared_ptr< const DtVrfObjectMessage > DtVrfObjectMessageConstPtr
Boost shared pointer to a const DtVrfObjectMessage.
Definition: vrfObjectMessage.h:165
DtExternalCommModelDescriptor.
Definition: externalCommModelDescriptor.h:24
DtVrfObjectMessageConstPtr myRadioMessage
Definition: externalCommModel.h:84
Base class for any radios on VrfObjects. A DtVrfRadio acts as the interface between an entity and a D...
Definition: vrfRadio.h:41

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)