gloox  1.0.24
connectionbase.h
1 /*
2  Copyright (c) 2007-2019 by Jakob Schröter <js@camaya.net>
3  This file is part of the gloox library. http://camaya.net/gloox
4 
5  This software is distributed under a license. The full license
6  agreement can be found in the file LICENSE in this distribution.
7  This software may not be copied, modified, sold or distributed
8  other than expressed in the named license agreement.
9 
10  This software is distributed without any warranty.
11 */
12 
13 
14 
15 #ifndef CONNECTIONBASE_H__
16 #define CONNECTIONBASE_H__
17 
18 #include "gloox.h"
19 #include "connectiondatahandler.h"
20 
21 #include <string>
22 
23 namespace gloox
24 {
25 
34  class GLOOX_API ConnectionBase
35  {
36  public:
43  : m_handler( cdh ), m_state( StateDisconnected ), m_port( -1 )
44  {}
45 
49  virtual ~ConnectionBase() { cleanup(); }
50 
55  virtual ConnectionError connect() = 0;
56 
62  virtual ConnectionError recv( int timeout = -1 ) = 0;
63 
71  virtual bool send( const std::string& data ) = 0;
72 
78  virtual ConnectionError receive() = 0;
79 
83  virtual void disconnect() = 0;
84 
89  virtual void cleanup() {}
90 
95  ConnectionState state() const { return m_state; }
96 
102  void registerConnectionDataHandler( ConnectionDataHandler* cdh ) { m_handler = cdh; }
103 
109  void setServer( const std::string &server, int port = -1 ) { m_server = server; m_port = port; }
110 
115  const std::string& server() const { return m_server; }
116 
121  int port() const { return m_port; }
122 
127  virtual int localPort() const { return -1; }
128 
133  virtual const std::string localInterface() const { return EmptyString; }
134 
140  virtual void getStatistics( long int &totalIn, long int &totalOut ) = 0;
141 
148  virtual ConnectionBase* newInstance() const = 0;
149 
150  protected:
153 
156 
158  std::string m_server;
159 
161  int m_port;
162 
163  };
164 
165 }
166 
167 #endif // CONNECTIONBASE_H__
gloox::ConnectionState
ConnectionState
Definition: gloox.h:641
gloox::ConnectionDataHandler
This is an abstract base class to receive events from a ConnectionBase-derived object.
Definition: connectiondatahandler.h:36
gloox::ConnectionBase::connect
virtual ConnectionError connect()=0
gloox::ConnectionBase::state
ConnectionState state() const
Definition: connectionbase.h:95
gloox::ConnectionBase::~ConnectionBase
virtual ~ConnectionBase()
Definition: connectionbase.h:49
gloox::ConnectionBase::ConnectionBase
ConnectionBase(ConnectionDataHandler *cdh)
Definition: connectionbase.h:42
gloox::ConnectionBase::localInterface
virtual const std::string localInterface() const
Definition: connectionbase.h:133
gloox::ConnectionBase::m_state
ConnectionState m_state
Definition: connectionbase.h:155
gloox::ConnectionBase::send
virtual bool send(const std::string &data)=0
gloox::ConnectionBase::port
int port() const
Definition: connectionbase.h:121
gloox::StateDisconnected
@ StateDisconnected
Definition: gloox.h:642
gloox::ConnectionBase::disconnect
virtual void disconnect()=0
gloox::ConnectionBase::m_handler
ConnectionDataHandler * m_handler
Definition: connectionbase.h:152
gloox::ConnectionBase::cleanup
virtual void cleanup()
Definition: connectionbase.h:89
gloox::ConnectionBase::registerConnectionDataHandler
void registerConnectionDataHandler(ConnectionDataHandler *cdh)
Definition: connectionbase.h:102
gloox::ConnectionBase::newInstance
virtual ConnectionBase * newInstance() const =0
gloox
The namespace for the gloox library.
Definition: adhoc.cpp:28
gloox::ConnectionBase
An abstract base class for a connection.
Definition: connectionbase.h:35
gloox::ConnectionBase::getStatistics
virtual void getStatistics(long int &totalIn, long int &totalOut)=0
gloox::ConnectionBase::localPort
virtual int localPort() const
Definition: connectionbase.h:127
gloox::ConnectionError
ConnectionError
Definition: gloox.h:684
gloox::ConnectionBase::m_port
int m_port
Definition: connectionbase.h:161
gloox::ConnectionBase::server
const std::string & server() const
Definition: connectionbase.h:115
gloox::EmptyString
const std::string EmptyString
Definition: gloox.cpp:124
gloox::ConnectionBase::setServer
void setServer(const std::string &server, int port=-1)
Definition: connectionbase.h:109
gloox::ConnectionBase::receive
virtual ConnectionError receive()=0
gloox::ConnectionBase::m_server
std::string m_server
Definition: connectionbase.h:158
gloox::ConnectionBase::recv
virtual ConnectionError recv(int timeout=-1)=0