OpenTTD Source: src/network/core/tcp_content.h Source File

OpenTTD Source 14.0-beta1

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
22 class NetworkContentSocketHandler : public NetworkTCPSocketHandler {
23 protected:
24 bool ReceiveInvalidPacket(PacketContentType type);
25
37 virtual bool Receive_CLIENT_INFO_LIST(Packet *p);
38
46 virtual bool Receive_CLIENT_INFO_ID(Packet *p);
47
60 virtual bool Receive_CLIENT_INFO_EXTID(Packet *p);
61
75 virtual bool Receive_CLIENT_INFO_EXTID_MD5(Packet *p);
76
93 virtual bool Receive_SERVER_INFO(Packet *p);
94
102 virtual bool Receive_CLIENT_CONTENT(Packet *p);
103
114 virtual bool Receive_SERVER_CONTENT(Packet *p);
115
116 bool HandlePacket(Packet *p);
117 public:
123 NetworkContentSocketHandler(SOCKET s = INVALID_SOCKET) :
124 NetworkTCPSocketHandler(s)
125 {
126 }
127
129 virtual ~NetworkContentSocketHandler()
130 {
131 /* Virtual functions get called statically in destructors, so make it explicit to remove any confusion. */
132 this->CloseSocket();
133 }
134
135 bool ReceivePackets();
136 };
137
138 Subdirectory GetContentInfoSubDir(ContentType type);
139
140 #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_t unique id uint32_t file size (0 == does not exist) stri...
Definition: tcp_content.cpp:179
NetworkContentSocketHandler::ReceivePackets
bool ReceivePackets()
Receive a packet at TCP level.
Definition: tcp_content.cpp:128
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:176
ContentType
ContentType
The values in the enum are important; they are used as database 'keys'.
Definition: tcp_content_type.h:18
PacketContentType
PacketContentType
Enum with all types of TCP content packets.
Definition: tcp_content_type.h:35
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:175
NetworkContentSocketHandler::~NetworkContentSocketHandler
virtual ~NetworkContentSocketHandler()
On destructing of this class, the socket needs to be closed.
Definition: tcp_content.h:129
tcp_content_type.h
Packet
Internal entity of a packet.
Definition: packet.h:42
NetworkContentSocketHandler::NetworkContentSocketHandler
NetworkContentSocketHandler(SOCKET s=INVALID_SOCKET)
Create a new cs socket handler for a given cs.
Definition: tcp_content.h:123
NetworkContentSocketHandler::ReceiveInvalidPacket
bool ReceiveInvalidPacket(PacketContentType type)
Helper for logging receiving invalid packets.
Definition: tcp_content.cpp:167
NetworkContentSocketHandler::Receive_CLIENT_CONTENT
virtual bool Receive_CLIENT_CONTENT(Packet *p)
Client requesting the actual content: uint16_t count of unique ids uint32_t unique id (count times)
Definition: tcp_content.cpp:178
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_t openttd version (or 0xFFFFFFFF if using ...
Definition: tcp_content.cpp:173
NetworkContentSocketHandler::Receive_CLIENT_INFO_ID
virtual bool Receive_CLIENT_INFO_ID(Packet *p)
Client requesting a list of content info: uint16_t count of ids uint32_t id (count times)
Definition: tcp_content.cpp:174
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:186
NetworkContentSocketHandler::HandlePacket
bool HandlePacket(Packet *p)
Handle the given packet, i.e.
Definition: tcp_content.cpp:101
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_t id uint32_t fi...
Definition: tcp_content.cpp:177
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:31