VR-Exchange 2.6 API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
pConnection.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2016 VT MAK
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 }

Document ID: Generated on Wed Jan 30 18:15:18 EST 2019 from SVN revision 195534
Copyright © 2005-2019 VT MÄK. All Rights Reserved (www.mak.com)