VR-Forces 4.8 Class Documentation
 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 <vl/globalObjectDesignator.h>
14 #include <map>
15 #include <deque>
16 #include "vrfobjcore/commModel.h"
19 
21 
23 {
24 private:
26 
31 
32 protected:
36  virtual bool init();
37 
38 public:
42 
43  virtual ~DtExternalCommModel();
44 
46  virtual DtString type() const;
47 
50  virtual void registerRadio(DtVrfRadio* radio);
51 
56  virtual void sendMessage(DtVrfObjectMessage* message, DtVrfRadio* sendingRadio);
57 
60  virtual void tick();
61 
62 protected:
63  virtual DtU32 nextMessageId(const DtEntityIdentifier& entityId);
64 
66  virtual void passMessageToReceiver(DtVrfObjectMessageConstPtr, const DtEntityIdentifier& receiver);
67 
68  static void messageClearToReceiveCallback(const DtExternalCommsProcessMessageData& data, void* usr);
69  virtual void processMessageClearToReceive(const DtExternalCommsProcessMessageData& data);
70 
71  static void messageTimeoutCallback(const DtExternalCommsTimeoutData& data, void* usr);
72  virtual void processMessageTimeout(const DtExternalCommsTimeoutData& data);
73 
74  static void newMessageCallback(const DtExternalCommsMessageTransporter::DtExternalCommsMessageCallbackParams& params, void* usr);
75  virtual void processNewMessage(const DtExternalCommsMessageTransporter::DtExternalCommsMessageCallbackParams& params);
76 
77  static void readyToSendCallback(const DtExternalCommsReadyToSendData& data, void* usr);
78  virtual void processReadyToSend(const DtExternalCommsReadyToSendData& data);
79 
80 protected:
81 
82 
84  {
86  DtEntityIdentifier myReceiver;
87  };
88 
90 
91  typedef std::map<DtU32, DtVrfObjectMessageConstPtr> DtRadioMessageMap;
96 
99  typedef std::deque<DtClearToReceiveData> DtClearToReceiveDeque;
101 
103 
106  typedef std::map<DtU32, DtExternalCommsProcessMessageData> DtExternalCommsMessageDataMap;
108 
111  typedef std::map<DtU32, DtExternalCommsTimeoutData> DtExternalCommsTimeoutMap;
113 };
DtExternalCommsMessageDataMap myWaitingForMessageMap
Definition: externalCommModel.h:107
DtCommModel & operator=(const DtCommModel &orig)
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:106
Definition: externalCommModel.h:22
Base class for all communication models in VR-Forces.
Definition: commModel.h:57
std::deque< DtClearToReceiveData > DtClearToReceiveDeque
This holds messages that have been cleared for sending by the external comms server.
Definition: externalCommModel.h:99
DtRadioMessageMap mySentMessages
Contains all the message that have been sent, but are awaiting authorization from the external comms ...
Definition: externalCommModel.h:94
virtual void sendMessage(DtVrfObjectMessage *message, DtVrfRadio *sendingRadio)
Sends the specified message though the comm model.
DtExternalCommsMessageTransporter * myTransporter
Definition: externalCommModel.h:95
virtual DtString type() const
std::map< DtU32, DtVrfObjectMessageConstPtr > DtRadioMessageMap
Definition: externalCommModel.h:91
static DtCommModel * create(DtCommModelCreationParams &params)
Static creator function that can be registered with factories.
virtual void tick()
Method that is called every simulation tick.
Definition: externalCommsMessageTransporter.h:41
#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:111
Definition: externalCommsMessageTransporter.h:34
DtClearToReceiveDeque myClearToReceiveDeque
Definition: externalCommModel.h:100
Definition: externalCommModel.h:83
The base class for all messages to/from a specific DtVrfObject.
Definition: vrfObjectMessage.h:30
const DtExternalCommModelDescriptor * myExternalCommModelDescriptor
Definition: externalCommModel.h:102
DtExternalCommsTimeoutMap myTimedOutMessageMap
Definition: externalCommModel.h:112
DtU32 myLastMessageId
Definition: externalCommModel.h:89
virtual void registerRadio(DtVrfRadio *radio)
Adds a new radio to the comm model.
std::pair< DtExternalCommsMessageParams, DtVrfObjectMessageConstPtr > DtExternalCommsMessageCallbackParams
Definition: externalCommsMessageTransporter.h:93
DtEntityIdentifier myReceiver
Definition: externalCommModel.h:86
Definition: externalCommsMessageTransporter.h:25
This class manages encoding and decoding of messages to and from an external comms effects server...
Definition: externalCommsMessageTransporter.h:61
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:85
Base class for any radios on VrfObjects.
Definition: vrfRadio.h:43

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)