OpenTTD
core.h
Go to the documentation of this file.
1 /* $Id: core.h 24900 2013-01-08 22:46:42Z planetmaker $ */
2 
3 /*
4  * This file is part of OpenTTD.
5  * 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.
6  * 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.
7  * 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/>.
8  */
9 
14 #ifndef NETWORK_CORE_CORE_H
15 #define NETWORK_CORE_CORE_H
16 
17 #include "../../newgrf_config.h"
18 #include "config.h"
19 
20 #ifdef ENABLE_NETWORK
21 
23 void NetworkCoreShutdown();
24 
37 };
38 
40 struct Packet;
41 
46  bool has_quit;
47 public:
49  NetworkSocketHandler() { this->has_quit = false; }
50 
52  virtual ~NetworkSocketHandler() { this->Close(); }
53 
55  virtual void Close() {}
56 
63  virtual NetworkRecvStatus CloseConnection(bool error = true) { this->has_quit = true; return NETWORK_RECV_STATUS_OKAY; }
64 
71  bool HasClientQuit() const { return this->has_quit; }
72 
76  void Reopen() { this->has_quit = false; }
77 
78  void SendGRFIdentifier(Packet *p, const GRFIdentifier *grf);
80  void SendCompanyInformation(Packet *p, const struct Company *c, const struct NetworkCompanyStats *stats, uint max_len = NETWORK_COMPANY_NAME_LENGTH);
81 };
82 
83 #endif /* ENABLE_NETWORK */
84 
85 #endif /* NETWORK_CORE_CORE_H */
Everything is okay.
Definition: core.h:27
bool HasClientQuit() const
Whether the current client connected to the socket has quit.
Definition: core.h:71
Internal entity of a packet.
Definition: packet.h:44
Something went wrong (down)loading the savegame.
Definition: core.h:30
Configuration options of the network stuff.
The server told us we made an error.
Definition: core.h:33
Basic data to distinguish a GRF.
Definition: newgrf_config.h:84
void Reopen()
Reopen the socket so we can send/receive stuff again.
Definition: core.h:76
bool has_quit
Whether the current client has quit/send a bad packet.
Definition: core.h:46
Done querying the server.
Definition: core.h:36
virtual void Close()
Really close the socket.
Definition: core.h:55
A desync did occur.
Definition: core.h:28
NetworkSocketHandler()
Create a new unbound socket.
Definition: core.h:49
void SendCompanyInformation(Packet *p, const struct Company *c, const struct NetworkCompanyStats *stats, uint max_len=NETWORK_COMPANY_NAME_LENGTH)
Package some generic company information into a packet.
NetworkRecvStatus
Status of a network client; reasons why a client has quit.
Definition: core.h:26
We did not have the required NewGRFs.
Definition: core.h:29
The connection is &#39;just&#39; lost.
Definition: core.h:31
The server is full.
Definition: core.h:34
The server has banned us.
Definition: core.h:35
virtual ~NetworkSocketHandler()
Close the socket when destructing the socket handler.
Definition: core.h:52
virtual NetworkRecvStatus CloseConnection(bool error=true)
Close the current connection; for TCP this will be mostly equivalent to Close(), but for UDP it just ...
Definition: core.h:63
static const uint NETWORK_COMPANY_NAME_LENGTH
The maximum length of the company name, in bytes including &#39;\0&#39;.
Definition: config.h:43
void CDECL error(const char *s,...)
Error handling for fatal non-user errors.
Definition: openttd.cpp:110
bool NetworkCoreInitialize()
Initializes the network core (as that is needed for some platforms.
Definition: core.cpp:33
We apparently send a malformed packet.
Definition: core.h:32
Simple calculated statistics of a company.
Definition: network_type.h:61
void NetworkCoreShutdown()
Shuts down the network core (as that is needed for some platforms.
Definition: core.cpp:84
void ReceiveGRFIdentifier(Packet *p, GRFIdentifier *grf)
Deserializes the GRFIdentifier (GRF ID and MD5 checksum) from the packet.
Definition: core.cpp:122
void SendGRFIdentifier(Packet *p, const GRFIdentifier *grf)
Serializes the GRFIdentifier (GRF ID and MD5 checksum) to the packet.
Definition: core.cpp:108
SocketHandler for all network sockets in OpenTTD.
Definition: core.h:45