VR-Exchange 2.5 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 
36  //
43  {
44 
45  public:
46 
47  typedef void (*MessageCbFcn)(const DtPortalMessage& message, void* usr);
48 
50  //
59  DtPortalConnection(const DtString &brokerName, DtU8 brokerId,
60  const DtString &controlQueueName,
61  const DtString &interactionQueueName,
62  const DtString &objectQueueName,
63  int port = 5111,
64  int commandLineArgc = 0,
65  char ** commandLineArgv = 0);
66  virtual ~DtPortalConnection();
67 
68  private:
69 
72 
74  DtPortalConnection& operator=(const DtPortalConnection &other);
75 
76  public:
77 
79  virtual DtPortalMessageFactory* messageFactory();
80 
83  virtual void send(const DtPortalMessage& message) ;
84 
87  virtual void send(const DtPortalInteraction& inter) ;
88 
92  virtual void send(const DtPortalObject& inter);
93 
101  //
104  virtual void drainInput(int maxControlMessages = -1,
105  int maxInterMessages = -1, int maxObjectMessages = -1);
106 
108  virtual DtU8 brokerId() const;
109 
111  virtual void setBrokerId(DtU8);
112 
114  virtual const DtString& brokerName() const;
115 
117  virtual DtClock* clock();
118 
127  virtual void addMessageCallback( DtPortalMessageKind msgKnd, MessageCbFcn fnc, void* usr );
128 
131  virtual void addMessageCallback( MessageCbFcn fnc, void* usr );
132 
135  virtual void removeMessageCallback( DtPortalMessageKind msgKnd, MessageCbFcn fnc, void* usr );
136 
138  virtual void removeMessageCallback( MessageCbFcn fnc, void* usr );
139 
141 
143  virtual double receivedMessagesPerSecond() const;
144 
146  virtual double sentMessagesPerSecond() const;
147 
149  DtString lookupBrokerName( const DtU16& brokerId) const;
150 
152  DtU16 lookupBrokerId( const DtString& brokerName ) const;
153 
155  virtual void processRemoveBrokerMessage( const DtU32 id);
156 
158  virtual void processAddBrokerMessage(const DtString& name, const DtU32 id);
159 
160  public:
161 
163  static const DtString version();
164 
166  static const DtString build();
167 
168  protected:
169 
170 
172  virtual void processMessage(const DtPortalMessage& message) const;
173 
176  virtual void drainControlQueue(int maxMessages) const;
177 
180  virtual void drainInteractionQueue(int maxMessages) const;
181 
184  virtual void drainObjectQueue(int maxMessages) const;
185 
188  virtual void drainQueue( DtSubscribableMessageQueue *messageQueue, const int maxMessages ) const;
189 
193  virtual void cleanupMessageQueues();
194 
196  virtual bool isQueueManagerOk();
197 
198  protected:
199 
203 
210  DtInetTcpSocket *myTcpSocket;
211  DtClock myClock;
218 
220  struct CallbackPair { MessageCbFcn fcn; void *userData; };
221  typedef std::list<CallbackPair> CallbackPairList;
224 
225  typedef std::map<DtU16, DtString> BrokerIdToNameMap;
227 
228  };
229 
230 }

Document ID: Generated on Wed Dec 21 15:05:11 EST 2016 from SVN revision 171891
Copyright © 2005-2016 VT MÄK. All Rights Reserved (www.mak.com)