OpenTTD Source  12.0-beta2
tcp_content.h
Go to the documentation of this file.
1 /*
2  * This file is part of OpenTTD.
3  * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
4  * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
5  * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
6  */
7 
12 #ifndef NETWORK_CORE_TCP_CONTENT_H
13 #define NETWORK_CORE_TCP_CONTENT_H
14 
15 #include "os_abstraction.h"
16 #include "tcp.h"
17 #include "packet.h"
18 #include "../../debug.h"
19 #include "tcp_content_type.h"
20 
23 protected:
25 
33  virtual bool Receive_CLIENT_INFO_LIST(Packet *p);
34 
42  virtual bool Receive_CLIENT_INFO_ID(Packet *p);
43 
56  virtual bool Receive_CLIENT_INFO_EXTID(Packet *p);
57 
71  virtual bool Receive_CLIENT_INFO_EXTID_MD5(Packet *p);
72 
89  virtual bool Receive_SERVER_INFO(Packet *p);
90 
98  virtual bool Receive_CLIENT_CONTENT(Packet *p);
99 
110  virtual bool Receive_SERVER_CONTENT(Packet *p);
111 
112  bool HandlePacket(Packet *p);
113 public:
119  NetworkContentSocketHandler(SOCKET s = INVALID_SOCKET) :
121  {
122  }
123 
126  {
127  /* Virtual functions get called statically in destructors, so make it explicit to remove any confusion. */
128  this->CloseSocket();
129  }
130 
131  bool ReceivePackets();
132 };
133 
135 
136 #endif /* NETWORK_CORE_TCP_CONTENT_H */
NetworkContentSocketHandler
Base socket handler for all Content TCP sockets.
Definition: tcp_content.h:22
NetworkContentSocketHandler::Receive_SERVER_CONTENT
virtual bool Receive_SERVER_CONTENT(Packet *p)
Server sending list of content info: uint32 unique id uint32 file size (0 == does not exist) string f...
Definition: tcp_content.cpp:180
NetworkContentSocketHandler::ReceivePackets
bool ReceivePackets()
Receive a packet at TCP level.
Definition: tcp_content.cpp:129
NetworkContentSocketHandler::Receive_CLIENT_INFO_EXTID_MD5
virtual bool Receive_CLIENT_INFO_EXTID_MD5(Packet *p)
Client requesting a list of content info based on an external 'unique' id; GRF ID + MD5 checksum for ...
Definition: tcp_content.cpp:177
ContentType
ContentType
The values in the enum are important; they are used as database 'keys'.
Definition: tcp_content_type.h:16
PacketContentType
PacketContentType
Enum with all types of TCP content packets.
Definition: tcp_content_type.h:33
NetworkContentSocketHandler::Receive_CLIENT_INFO_EXTID
virtual bool Receive_CLIENT_INFO_EXTID(Packet *p)
Client requesting a list of content info based on an external 'unique' id; GRF ID for NewGRFS,...
Definition: tcp_content.cpp:176
NetworkContentSocketHandler::~NetworkContentSocketHandler
virtual ~NetworkContentSocketHandler()
On destructing of this class, the socket needs to be closed.
Definition: tcp_content.h:125
tcp_content_type.h
Packet
Internal entity of a packet.
Definition: packet.h:44
NetworkContentSocketHandler::NetworkContentSocketHandler
NetworkContentSocketHandler(SOCKET s=INVALID_SOCKET)
Create a new cs socket handler for a given cs.
Definition: tcp_content.h:119
NetworkContentSocketHandler::ReceiveInvalidPacket
bool ReceiveInvalidPacket(PacketContentType type)
Helper for logging receiving invalid packets.
Definition: tcp_content.cpp:168
NetworkContentSocketHandler::Receive_CLIENT_CONTENT
virtual bool Receive_CLIENT_CONTENT(Packet *p)
Client requesting the actual content: uint16 count of unique ids uint32 unique id (count times)
Definition: tcp_content.cpp:179
packet.h
NetworkContentSocketHandler::Receive_CLIENT_INFO_LIST
virtual bool Receive_CLIENT_INFO_LIST(Packet *p)
Client requesting a list of content info: byte type uint32 openttd version.
Definition: tcp_content.cpp:174
NetworkContentSocketHandler::Receive_CLIENT_INFO_ID
virtual bool Receive_CLIENT_INFO_ID(Packet *p)
Client requesting a list of content info: uint16 count of ids uint32 id (count times)
Definition: tcp_content.cpp:175
tcp.h
Subdirectory
Subdirectory
The different kinds of subdirectories OpenTTD uses.
Definition: fileio_type.h:108
os_abstraction.h
GetContentInfoSubDir
Subdirectory GetContentInfoSubDir(ContentType type)
Helper to get the subdirectory a ContentInfo is located in.
Definition: tcp_content.cpp:187
NetworkContentSocketHandler::HandlePacket
bool HandlePacket(Packet *p)
Handle the given packet, i.e.
Definition: tcp_content.cpp:102
NetworkContentSocketHandler::Receive_SERVER_INFO
virtual bool Receive_SERVER_INFO(Packet *p)
Server sending list of content info: byte type (invalid ID == does not exist) uint32 id uint32 file_s...
Definition: tcp_content.cpp:178
NetworkTCPSocketHandler::CloseSocket
void CloseSocket()
Close the actual socket of the connection.
Definition: tcp.cpp:53
NetworkTCPSocketHandler
Base socket handler for all TCP sockets.
Definition: tcp.h:32