sipXcallLib home page


TaoTransportTask.h
Go to the documentation of this file.
1 //
2 // Copyright (C) 2004-2006 SIPfoundry Inc.
3 // Licensed by SIPfoundry under the LGPL license.
4 //
5 // Copyright (C) 2004-2006 Pingtel Corp. All rights reserved.
6 // Licensed to SIPfoundry under a Contributor Agreement.
7 //
8 // $$
10 
11 #ifndef _TaoTransportTask_h_
12 #define _TaoTransportTask_h_
13 
14 #if _MSC_VER >= 1000
15 #pragma once
16 #endif // _MSC_VER >= 1000
17 
18 // SYSTEM INCLUDES
19 
20 // APPLICATION INCLUDES
21 //#include <os/OsTask.h>
22 #include <os/OsServerTask.h>
23 #include <os/OsServerSocket.h>
24 #include <os/OsMsgQ.h>
25 #include "tao/TaoObject.h"
26 #include "tao/TaoMessage.h"
27 #include "tao/TaoObjectMap.h"
28 #include "tao/TaoReference.h"
29 
30 // DEFINES
31 // MACROS
32 // EXTERNAL FUNCTIONS
33 // EXTERNAL VARIABLES
34 // CONSTANTS
35 // STRUCTS
36 // TYPEDEFS
37 // FORWARD DECLARATIONS
38 class TaoServerTask;
39 class TaoListeningTask;
40 
41 //:Used to send messages, resposible for generating and maintaining transactions,
42 // resposible for putting TaoMessage out to the wire, maintains "keep alive"
43 // session with server, maintains sockets for incoming notification response
44 // messages, maintains db of outstanding transactions.
45 class TaoTransportTask : public OsServerTask
46 {
47 /* //////////////////////////// PUBLIC //////////////////////////////////// */
48 public:
49 /* ============================ CREATORS ================================== */
51  //:Default constructor
52 
53  TaoTransportTask(const char * listenerHost, const char * listenerPort);
54  //:Constructor, establishes socket connection to host
55 
56  TaoTransportTask(const int listenerPort);
57  //:Constructor, establishes socket connection to host
58 
59  TaoTransportTask(const TaoTransportTask& rTaoTransportTask);
60  //:Copy constructor (not implemented for this class)
61 
62  virtual ~TaoTransportTask();
63  //:Destructor
64 
65 /* ============================ MANIPULATORS ============================== */
66 
67  virtual UtlBoolean handleMessage(OsMsg& rMsg);
68  //:Handle an incoming message.
69  // If the message is not one that the object is prepared to process,
70  // the handleMessage() method in the derived class should return FALSE
71  // which will cause the OsServerTask::handleMessage() method to be
72  // invoked on the message.
73 
74  int startListening(void);
75 
76  int stopListening(void);
77 
78  OsServerTask* getServer() { return mpServer; };
79 
80  void setServer(OsServerTask* pServer) { mpServer = pServer; };
81 
82  void setClient(TaoObjHandle hClient) { mClientHandle = hClient; };
83 
84 /* ============================ ACCESSORS ============================== */
85  TaoStatus getListenSocket(OsConnectionSocket& socket);
86 
87 /* //////////////////////////// PROTECTED ///////////////////////////////// */
88 protected:
89 
90  void initialize();
91 
92 /* //////////////////////////// PRIVATE /////////////////////////////////// */
93 private:
94 /* ============================ MANIPULATORS ============================== */
95  int send(TaoMessage& rMsg);
96 
97 /* ============================ VARIABLES ================================ */
98 
99  UtlString mRemoteHost; // remote TaoServer
100  int mRemotePort; // TaoServer's listener port
101  int mListenerPort; // this transport's listener port
102 
104  OsServerSocket* mpListenSocket;
107 
108  OsServerTask* mpServer;
110 
112  static int mRef;
113 
114 };
115 
116 #endif // _TaoTransportTask_h_
Definition: TaoReference.h:35
TaoTransportTask()
Definition: TaoTransportTask.cpp:60
Definition: TaoMessage.h:51
int stopListening(void)
Definition: TaoTransportTask.cpp:109
Definition: TaoObjectMap.h:56
OsServerTask * getServer()
Definition: TaoTransportTask.h:78
OsServerSocket * mpListenSocket
Definition: TaoTransportTask.h:104
TaoStatus getListenSocket(OsConnectionSocket &socket)
int send(TaoMessage &rMsg)
Definition: TaoTransportTask.cpp:177
virtual UtlBoolean handleMessage(OsMsg &rMsg)
Definition: TaoTransportTask.cpp:132
Definition: TaoTransportTask.h:45
void setClient(TaoObjHandle hClient)
Definition: TaoTransportTask.h:82
void setServer(OsServerTask *pServer)
Definition: TaoTransportTask.h:80
static int mRef
Definition: TaoTransportTask.h:112
int mListenerPort
Definition: TaoTransportTask.h:101
OsServerTask * mpServer
Definition: TaoTransportTask.h:108
int mRemotePort
Definition: TaoTransportTask.h:100
TaoStatus
Definition: TaoDefs.h:41
TaoListeningTask * mpTaoListeningTask
Definition: TaoTransportTask.h:105
static TaoReference * mpTransactionCnt
Definition: TaoTransportTask.h:111
int startListening(void)
Definition: TaoTransportTask.cpp:96
Definition: TaoServerTask.h:49
void initialize()
Definition: TaoTransportTask.cpp:85
TaoObjHandle mClientHandle
Definition: TaoTransportTask.h:103
TaoReference * mpSocketCnt
Definition: TaoTransportTask.h:106
TaoObjectMap * mpSockets
Definition: TaoTransportTask.h:109
virtual ~TaoTransportTask()
Definition: TaoTransportTask.cpp:71
uintptr_t TaoObjHandle
Definition: TaoDefs.h:32
Definition: TaoListeningTask.h:40
UtlString mRemoteHost
Definition: TaoTransportTask.h:99