EvEmu  0.8.4
11 September 2021
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
EVETCPConnection.h
Go to the documentation of this file.
1 /*
2  ------------------------------------------------------------------------------------
3  LICENSE:
4  ------------------------------------------------------------------------------------
5  This file is part of EVEmu: EVE Online Server Emulator
6  Copyright 2006 - 2021 The EVEmu Team
7  For the latest information visit https://evemu.dev
8  ------------------------------------------------------------------------------------
9  This program is free software; you can redistribute it and/or modify it under
10  the terms of the GNU Lesser General Public License as published by the Free Software
11  Foundation; either version 2 of the License, or (at your option) any later
12  version.
13 
14  This program is distributed in the hope that it will be useful, but WITHOUT
15  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
16  FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
17 
18  You should have received a copy of the GNU Lesser General Public License along with
19  this program; if not, write to the Free Software Foundation, Inc., 59 Temple
20  Place - Suite 330, Boston, MA 02111-1307, USA, or go to
21  http://www.gnu.org/copyleft/lesser.txt.
22  ------------------------------------------------------------------------------------
23  Author: Zhur
24 */
25 
26 #ifndef __NETWORK__EVE_TCP_CONNECTION_H__INCL__
27 #define __NETWORK__EVE_TCP_CONNECTION_H__INCL__
28 
29 class PyRep;
30 class EVETCPServer;
31 
38 : public TCPConnection
39 {
40  friend class EVETCPServer;
41 
42 public:
44  static const uint32 TIMEOUT_MS;
46  static const uint32 PACKET_SIZE_LIMIT;
47 
52  virtual ~EVETCPConnection() { /* do nothing here */ }
53 
59  // consumes PyRep
60  void QueueRep( const PyRep* rep, bool compress=true );
61 
67  PyRep* PopRep();
68 
76  {
79  };
81 
82 protected:
90  EVETCPConnection( Socket* sock, uint32 rIP, uint16 rPort );
91 
92  bool RecvData( char* errbuf = 0 );
93  bool ProcessReceivedData( char* errbuf = 0 );
94 
95  void ClearBuffers();
96 
99 
104 };
105 
106 #endif /* !__NETWORK__EVE_TCP_CONNECTION_H__INCL__ */
Base Python wire object.
Definition: PyRep.h:66
Simple wrapper for sockets.
Definition: Socket.h:34
static const uint32 PACKET_SIZE_LIMIT
Hardcoded limit of packet size (NetClient.dll).
packet_direction
Dumps buffer to file.
void ClearBuffers()
Clears send and receive buffers.
bool RecvData(char *errbuf=0)
Receives data and puts them into receive queue.
Common wrapper for platform-specific mutexes.
Definition: Mutex.h:36
void QueueRep(const PyRep *rep, bool compress=true)
Queues given PyRep into send queue.
static const uint32 TIMEOUT_MS
Time (in milliseconds) after which the connection is dropped if no data were received.
PyRep * PopRep()
Pops PyRep from receive queue.
bool ProcessReceivedData(char *errbuf=0)
Processes received data.
Generic class for buffers.
Definition: Buffer.h:40
void DumpBuffer(Buffer *buf, packet_direction packet_direction)
EVE derivation of TCP connection.
StreamPacketizer mInQueue
Received data queue.
virtual ~EVETCPConnection()
Generic class for TCP connections.
Definition: TCPConnection.h:45
unsigned __int32 uint32
Definition: eve-compat.h:50
EVETCPConnection()
Creates empty EVE connection.
Timer mTimeoutTimer
Timer used to implement timeout.
Mutex mMInQueue
Mutex to protect received data queue.
Definition: timer.h:30
unsigned __int16 uint16
Definition: eve-compat.h:48
EVE derivation of TCP server.
Definition: EVETCPServer.h:36