VR-Exchange 2.2 API Documentation
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 #include <portal/portalVersion.h>
16 #include <portal/pMessageFactory.h>
17 
18 #include <list>
19 #include <map>
20 
21 #define VRX_DISCONNECTED_EXCEPTION 100
22 
23 class DtInetTcpSocket;
24 
25 namespace MAKVrExchange {
26 
27  class DtPortalInteraction;
28  class DtPortalObject;
29  class DtSubscribableMessageQueue;
30 
33  //
39  class DT_DLL_LIBPORTAL DtPortalConnection
40  {
41 
42  public:
43 
44  typedef void (*MessageCbFcn)(const DtPortalMessage& message, void* usr);
45 
47  //
56  DtPortalConnection(const DtString &brokerName, DtU8 brokerId,
57  const DtString &controlQueueName,
58  const DtString &interactionQueueName,
59  const DtString &objectQueueName,
60  int port = 5111,
61  int commandLineArgc = 0,
62  char ** commandLineArgv = 0);
63  virtual ~DtPortalConnection();
64 
65  private:
66 
69 
71  DtPortalConnection& operator=(const DtPortalConnection &other);
72 
73  public:
74 
76  virtual DtPortalMessageFactory* messageFactory();
77 
80  virtual void send(const DtPortalMessage& message) ;
81 
84  virtual void send(const DtPortalInteraction& inter) ;
85 
89  virtual void send(const DtPortalObject& inter);
90 
98  //
101  virtual void drainInput(int maxControlMessages = -1,
102  int maxInterMessages = -1, int maxObjectMessages = -1);
103 
105  virtual DtU8 brokerId() const;
106 
108  virtual void setBrokerId(DtU8);
109 
111  virtual const DtString& brokerName() const;
112 
114  virtual DtClock* clock();
115 
124  virtual void addMessageCallback(
125  DtPortalMessageKind msgKnd, MessageCbFcn fnc, void *usr);
126 
129  virtual void addMessageCallback(MessageCbFcn fnc, void *usr);
130 
133  virtual void removeMessageCallback(
134  DtPortalMessageKind msgKnd, MessageCbFcn fnc, void *usr);
136  virtual void removeMessageCallback(MessageCbFcn fnc, void *usr);
137 
139 
141  virtual double receivedMessagesPerSecond() const;
142 
144  virtual double sentMessagesPerSecond() const;
145 
147  DtString lookupBrokerName( const DtU16& brokerId) const;
148 
150  DtU16 lookupBrokerId( const DtString& brokerName ) const;
151 
153  virtual void processRemoveBrokerMessage( const DtU32 id);
154 
156  virtual void processAddBrokerMessage(const DtString& name, const DtU32 id);
157 
158  public:
159 
161  static const DtString version();
162 
164  static const DtString build();
165 
166  protected:
167 
168 
170  virtual void processMessage(const DtPortalMessage& message) const;
171 
174  virtual void drainControlQueue(int maxMessages) const;
175 
178  virtual void drainInteractionQueue(int maxMessages) const;
179 
182  virtual void drainObjectQueue(int maxMessages) const;
183 
186  virtual void drainQueue( DtSubscribableMessageQueue *messageQueue, const int maxMessages ) const;
187 
191  virtual void cleanupMessageQueues();
192 
194  virtual bool isQueueManagerOk();
195 
196  protected:
197 
201 
208  DtInetTcpSocket *myTcpSocket;
209  DtClock myClock;
216 
218  struct CallbackPair { MessageCbFcn fcn; void *userData; };
219  typedef std::list<CallbackPair> CallbackPairList;
222 
223  typedef std::map<DtU16, DtString> BrokerIdToNameMap;
225 
226 
227  };
228 }
229 
230 #endif

Document ID: Generated on Mon Apr 15 17:15:50 EDT 2013 from SVN revision 126154
Copyright © 2005-2012 VT MÄK. All Rights Reserved (www.mak.com)