VR-Exchange 2.10 API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
pConnection.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2016 MAK Technologies, Inc.
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #pragma once
11 
12 #ifdef BuildWEBLVC
13 #include "../../brokers/webLvcBroker/webLvcBrokerApp/webLvcVersion.h"
14 #else
15 #include <portal/portalVersion.h>
16 #endif
17 #include <portal/pMessageFactory.h>
18 #include <portal/vrxExceptions.h>
19 
20 #include <vlutil/vlString.h>
21 
22 #include <list>
23 #include <map>
24 
25 class DtInetTcpSocket;
26 
27 namespace MAKVrExchange
28 {
29 
30  class DtPortalInteraction;
31  class DtPortalObject;
32  class DtSubscribableMessageQueue;
33 
35  {
36  DEFAULT = 0,
37  WEBLVC = 1
38  };
39 
40 
43  //
50  {
51 
52  public:
53 
54  typedef void (*MessageCbFcn)(const DtPortalMessage& message, void* usr);
55 
57  //
66  DtPortalConnection(const DtString &brokerName, DtU8 brokerId, DtU32 brokerType,
67  const DtString &controlQueueName,
68  const DtString &interactionQueueName,
69  const DtString &objectQueueName,
70  int port = 5111,
71  int commandLineArgc = 0,
72  char ** commandLineArgv = 0);
73  virtual ~DtPortalConnection();
74 
75  private:
76 
79 
81  DtPortalConnection& operator=(const DtPortalConnection &other);
82 
83  public:
84 
86  virtual DtPortalMessageFactory* messageFactory();
87 
90  virtual void send(const DtPortalMessage& message) ;
91 
94  virtual void send(const DtPortalInteraction& inter) ;
95 
99  virtual void send(const DtPortalObject& inter);
100 
108  //
111  virtual void drainInput(int maxControlMessages = -1,
112  int maxInterMessages = -1, int maxObjectMessages = -1);
113 
115  virtual DtU8 brokerId() const;
116 
118  virtual void setBrokerId(DtU8);
119 
121  virtual const DtString& brokerName() const;
122 
124  virtual DtClock* clock();
125 
134  virtual void addMessageCallback( DtPortalMessageKind msgKnd, MessageCbFcn fnc, void* usr );
135 
138  virtual void addMessageCallback( MessageCbFcn fnc, void* usr );
139 
142  virtual void removeMessageCallback( DtPortalMessageKind msgKnd, MessageCbFcn fnc, void* usr );
143 
145  virtual void removeMessageCallback( MessageCbFcn fnc, void* usr );
146 
148 
150  virtual double receivedMessagesPerSecond() const;
151 
153  virtual double sentMessagesPerSecond() const;
154 
156  DtString lookupBrokerName( const DtU16& brokerId) const;
157 
159  DtU16 lookupBrokerId( const DtString& brokerName ) const;
160 
162  virtual void processRemoveBrokerMessage( const DtU32 id);
163 
165  virtual void processAddBrokerMessage(const DtString& name, const DtU32 id);
166 
167  public:
168 
170  static const DtString version();
171 
173  static const DtString build();
174 
175  protected:
176 
177 
179  virtual void processMessage(const DtPortalMessage& message) const;
180 
183  virtual void drainControlQueue(int maxMessages) const;
184 
187  virtual void drainInteractionQueue(int maxMessages) const;
188 
191  virtual void drainObjectQueue(int maxMessages) const;
192 
195  virtual void drainQueue( DtSubscribableMessageQueue *messageQueue, const int maxMessages ) const;
196 
200  virtual void cleanupMessageQueues();
201 
203  virtual bool isQueueManagerOk();
204 
205  protected:
206 
210 
218  DtInetTcpSocket *myTcpSocket;
219  DtClock myClock;
226 
228  struct CallbackPair { MessageCbFcn fcn; void *userData; };
229  typedef std::list<CallbackPair> CallbackPairList;
232 
233  typedef std::map<DtU16, DtString> BrokerIdToNameMap;
235 
236  };
237 
238 }
DtSubscribableMessageQueue * myInteractionMessageQueue
Definition: pConnection.h:208
Declares constants which define the release number of VR-Exchange.
DtU8 myBrokerId
Definition: pConnection.h:212
DtU32 myBrokerType
Definition: pConnection.h:213
#define DT_DLL_LIBPORTAL
Definition: include/portal/dllExport.h:20
DtTime myLastTcpHeartbeat
Definition: pConnection.h:224
DtU32 mySentObjectMessages
Definition: pConnection.h:222
DtU32 myMutableReceivedMessages
Definition: pConnection.h:223
void * userData
Definition: pConnection.h:228
Implements a message queue for multiple subscribers.
Definition: smSubscribableMessageQueue.h:34
DtString myBrokerName
Definition: pConnection.h:211
Structures, types and variables used to register callbacks.
Definition: pConnection.h:228
DtPortalObject are messages which also serve as state repositories for simulated objects.
Definition: pObject.h:23
The base class for all messages passed through the portal.
Definition: pMessage.h:67
DtClock myClock
Definition: pConnection.h:219
bool myOneTimeSendBrokerIdFlag
Definition: pConnection.h:225
std::map< DtU16, DtString > BrokerIdToNameMap
Definition: pConnection.h:233
DtInetTcpSocket * myTcpSocket
Definition: pConnection.h:218
Definition: pConnection.h:36
DtPortalInteractions are a special type of DtPortalMessages which are used to transmit simulation dat...
Definition: pInteraction.h:21
DtU32 mySentControlMessages
Definition: pConnection.h:220
const unsigned int DtMaxPortalMessageKinds
The maximum number of different message kinds.
Definition: pMessageKinds.h:188
DtPortalMessageFactory myMessageFactory
Definition: pConnection.h:217
Contains the DtPortalMessageFactory class declaration.
Definition: pConnection.h:37
DtU32 myObjectSerialNumber
Definition: pConnection.h:214
DtU32 myInteractionSerialNumber
Definition: pConnection.h:215
CallbackPairList myNoTypeCbList
Definition: pConnection.h:230
DtU32 mySentInteractionMessages
Definition: pConnection.h:221
BrokerIdToNameMap myBrokerIdToNameMap
Definition: pConnection.h:234
This factory creates DtPortalMessage instances from a byte array.
Definition: pMessageFactory.h:22
Contains the VR-Exchange exception declarations.
DtSubscribableMessageQueue * myObjectMessageQueue
Definition: pConnection.h:209
DtSubscribableMessageQueue * myControlMessageQueue
Definition: pConnection.h:207
Connects a broker to the Portal Data Exchange.
Definition: pConnection.h:49
DtPortalMessageKind
A List of message kinds distributed with the Portal.
Definition: pMessageKinds.h:23
DtU32 myControlSerialNumber
Definition: pConnection.h:216
DtBrokerType
Definition: pConnection.h:34
std::list< CallbackPair > CallbackPairList
Definition: pConnection.h:229

Document ID: Generated on Mon May 25 18:45:12 EDT 2026 from SVN revision 289111
Copyright © 2005-2026 MAK Technologies. All Rights Reserved (www.mak.com)