Orxonox  0.0.5 Codename: Arcturus
ClientConnection.h
Go to the documentation of this file.
1 /*
2  * ORXONOX - the hottest 3D action shooter ever to exist
3  * > www.orxonox.net <
4  *
5  *
6  * License notice:
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License
10  * as published by the Free Software Foundation; either version 2
11  * of the License, or (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21  *
22  * Author:
23  * Oliver Scheuss
24  * Co-authors:
25  * ...
26  *
27  */
28 
29 #ifndef _ClientConnection_H__
30 #define _ClientConnection_H__
31 
32 #include "NetworkPrereqs.h"
33 #include "Connection.h"
34 
35 namespace orxonox
36 {
37 
39  public:
41  virtual ~ClientConnection();
42 
43  void setServerAddress( const std::string& serverAddress );
44  void setPort( unsigned int port );
45 
46  // create a new listener thread
47  virtual bool establishConnection();
48  virtual bool closeConnection();
49  // add a packet to queue for the server
50  void addPacket(ENetPacket *packet, uint8_t channelID);
51  inline bool isConnected(){ return this->established_; }
52  protected:
53  virtual void connectionClosed()=0;
54  uint32_t getRTT();
55  private:
56  virtual void addPeer(uint32_t peerID) override;
57  virtual void removePeer(uint32_t peerID) override;
58 
59  bool disconnectConnection();
60  // enet stuff
63  // clientlist
65 };
66 
67 
68 }
69 
70 #endif /* _ClientConnection_H__ */
Portable internet address structure.
Definition: enet.h:82
bool established_
Definition: ClientConnection.h:62
Shared library macros, enums, constants and forward declarations for the network library ...
::std::string string
Definition: gtest-port.h:756
An ENet peer which data packets may be sent or received from.
Definition: enet.h:253
Die Wagnis Klasse hat die folgenden Aufgaben:
Definition: ApplicationPaths.cc:66
#define _NetworkExport
Definition: NetworkPrereqs.h:59
bool isConnected()
Definition: ClientConnection.h:51
Definition: ClientConnection.h:38
Definition: Connection.h:92
ENetAddress * serverAddress_
Definition: ClientConnection.h:61
ENetPeer * server_
Definition: ClientConnection.h:64
ENet packet structure.
Definition: enet.h:147