VR-Exchange 2.4 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) 1992-2010 VT MAK
3 ** All rights reserved.
4 *********************************************************************/
5 
6 #ifndef smExerciseConn_H_
7 #define smExerciseConn_H_
8 
12 
13 
14 #include <vlutil/vlString.h>
15 #ifdef BuildWEBLVC
16 #include "../../brokers/webLVCBroker/webLVCBrokerApp/webLVCVersion.h"
17 #else
18 #include <portal/portalVersion.h>
19 #endif
20 #include <portal/pMessageFactory.h>
21 
22 #include <list>
23 #include <map>
24 
25 #define VRX_DISCONNECTED_EXCEPTION 100
26 
27 class DtInetTcpSocket;
28 
29 namespace MAKVrExchange {
30 
31  class DtPortalInteraction;
32  class DtPortalObject;
33  class DtSubscribableMessageQueue;
34 
37  //
44  {
45 
46  public:
47 
48  typedef void (*MessageCbFcn)(const DtPortalMessage& message, void* usr);
49 
51  //
60  DtPortalConnection(const DtString &brokerName, DtU8 brokerId,
61  const DtString &controlQueueName,
62  const DtString &interactionQueueName,
63  const DtString &objectQueueName,
64  int port = 5111,
65  int commandLineArgc = 0,
66  char ** commandLineArgv = 0);
67  virtual ~DtPortalConnection();
68 
69  private:
70 
73 
75  DtPortalConnection& operator=(const DtPortalConnection &other);
76 
77  public:
78 
80  virtual DtPortalMessageFactory* messageFactory();
81 
84  virtual void send(const DtPortalMessage& message) ;
85 
88  virtual void send(const DtPortalInteraction& inter) ;
89 
93  virtual void send(const DtPortalObject& inter);
94 
102  //
105  virtual void drainInput(int maxControlMessages = -1,
106  int maxInterMessages = -1, int maxObjectMessages = -1);
107 
109  virtual DtU8 brokerId() const;
110 
112  virtual void setBrokerId(DtU8);
113 
115  virtual const DtString& brokerName() const;
116 
118  virtual DtClock* clock();
119 
128  virtual void addMessageCallback(
129  DtPortalMessageKind msgKnd, MessageCbFcn fnc, void *usr);
130 
133  virtual void addMessageCallback(MessageCbFcn fnc, void *usr);
134 
137  virtual void removeMessageCallback(
138  DtPortalMessageKind msgKnd, MessageCbFcn fnc, void *usr);
140  virtual void removeMessageCallback(MessageCbFcn fnc, void *usr);
141 
143 
145  virtual double receivedMessagesPerSecond() const;
146 
148  virtual double sentMessagesPerSecond() const;
149 
151  DtString lookupBrokerName( const DtU16& brokerId) const;
152 
154  DtU16 lookupBrokerId( const DtString& brokerName ) const;
155 
157  virtual void processRemoveBrokerMessage( const DtU32 id);
158 
160  virtual void processAddBrokerMessage(const DtString& name, const DtU32 id);
161 
162  public:
163 
165  static const DtString version();
166 
168  static const DtString build();
169 
170  protected:
171 
172 
174  virtual void processMessage(const DtPortalMessage& message) const;
175 
178  virtual void drainControlQueue(int maxMessages) const;
179 
182  virtual void drainInteractionQueue(int maxMessages) const;
183 
186  virtual void drainObjectQueue(int maxMessages) const;
187 
190  virtual void drainQueue( DtSubscribableMessageQueue *messageQueue, const int maxMessages ) const;
191 
195  virtual void cleanupMessageQueues();
196 
198  virtual bool isQueueManagerOk();
199 
200  protected:
201 
205 
212  DtInetTcpSocket *myTcpSocket;
213  DtClock myClock;
220 
222  struct CallbackPair { MessageCbFcn fcn; void *userData; };
223  typedef std::list<CallbackPair> CallbackPairList;
226 
227  typedef std::map<DtU16, DtString> BrokerIdToNameMap;
229 
230 
231  };
232 }
233 
234 #endif

Document ID: Generated on Thu Jul 23 10:25:22 EDT 2015 from SVN revision 155065
Copyright © 2005-2014 VT MÄK. All Rights Reserved (www.mak.com)