Orxonox  0.0.5 Codename: Arcturus
NetworkPrereqs.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  * Reto Grieder
24  * Co-authors:
25  * ...
26  *
27  */
28 
35 #ifndef _NetworkPrereqs_H__
36 #define _NetworkPrereqs_H__
37 
38 #include "OrxonoxConfig.h"
39 
40 //-----------------------------------------------------------------------
41 // Shared library settings
42 //-----------------------------------------------------------------------
43 
44 #if defined(ORXONOX_PLATFORM_WINDOWS) && !defined( NETWORK_STATIC_BUILD )
45 # ifdef NETWORK_SHARED_BUILD
46 # define _NetworkExport __declspec(dllexport)
47 # else
48 # if defined( __MINGW32__ )
49 # define _NetworkExport
50 # else
51 # define _NetworkExport __declspec(dllimport)
52 # endif
53 # endif
54 # define _NetworkPrivate
55 #elif defined (ORXONOX_GCC_VISIBILITY)
56 # define _NetworkExport __attribute__ ((visibility("default")))
57 # define _NetworkPrivate __attribute__ ((visibility("hidden")))
58 #else
59 # define _NetworkExport
60 # define _NetworkPrivate
61 #endif
62 
63 //-----------------------------------------------------------------------
64 // Constants
65 //-----------------------------------------------------------------------
66 
67 namespace orxonox
68 {
69  static constexpr unsigned int GAMESTATEID_INITIAL = static_cast<unsigned int>(-1);
70  extern const char* LAN_DISCOVERY_MESSAGE;
71  extern const char* LAN_DISCOVERY_ACK;
72  static constexpr unsigned int LAN_DISCOVERY_PORT = 55558;
73  static constexpr unsigned int NETWORK_PEER_ID_SERVER = 0;
74  static constexpr unsigned int NETWORK_PEER_ID_BROADCAST = static_cast<unsigned int>(-1);
75  static constexpr unsigned int NETWORK_PEER_ID_UNKNOWN = static_cast<unsigned int>(-2);
76  static constexpr unsigned int NETWORK_CHANNEL_DEFAULT = 0;
77  static constexpr unsigned int NETWORK_CHANNEL_UNRELIABLE = 1;
78  static constexpr unsigned int NETWORK_CHANNEL_COUNT = 2;
79 }
80 
81 //-----------------------------------------------------------------------
82 // Enums
83 //-----------------------------------------------------------------------
84 
85 namespace orxonox
86 {
87  namespace packet
88  {
89  namespace PacketFlag
90  {
91  static constexpr uint32_t Reliable = 1;
92  static constexpr uint32_t Unsequenced = 2;
93  static constexpr uint32_t NoAllocate = 4;
94  }
95  }
96 
97  namespace StaticInitialization
98  {
99  typedef int Type;
100  static constexpr Type NETWORK_FUNCTION = 6;
101  }
102 }
103 
104 //-----------------------------------------------------------------------
105 // Forward declarations
106 //-----------------------------------------------------------------------
107 
108 // from ENet
109 struct _ENetPeer;
110 typedef _ENetPeer ENetPeer;
111 struct _ENetPacket;
112 typedef _ENetPacket ENetPacket;
113 struct _ENetEvent;
114 typedef _ENetEvent ENetEvent;
115 struct _ENetHost;
116 typedef _ENetHost ENetHost;
118 typedef _ENetAddress ENetAddress;
119 typedef uint8_t ENetChannelID;
120 
121 namespace orxonox
122 {
123  class Client;
124  class ClientConnection;
125  class ClientConnectionListener;
126  class ClientInformation;
127  class Connection;
128  class FunctionCall;
129  class FunctionCallManager;
130  class GamestateClient;
131  class GamestateHandler;
132  class GamestateManager;
133  class Host;
134  class MasterServer;
135  class MasterServerComm;
136  class NetworkChatListener;
137  class NetworkFunctionBase;
138  struct NetworkFunctionPointer;
139  class NetworkFunctionStatic;
140  template <class T>
141  class NetworkMemberFunction;
142  class NetworkMemberFunctionBase;
143  class PeerList;
144  class Server;
145  class ServerConnection;
146  class TrafficControl;
147  class WANDiscoverable;
148  class WANDiscovery;
149 
150  // packet
151  namespace packet
152  {
153  class Acknowledgement;
154  class Chat;
155  class ClassID;
156  class DeleteObjects;
157  class FunctionCalls;
158  class FunctionIDs;
159  class Gamestate;
160  class Packet;
161  class Welcome;
162  }
163 
164  // synchronisable
165  template <class T>
167  template <class T, class U>
169  class NetworkCallbackBase;
171  class Synchronisable;
172  class SynchronisableHeader;
173  template <class T>
176  template <class T>
178 }
179 
180 namespace boost
181 {
182  class mutex;
183  class thread;
184 }
185 
186 #endif /* _NetworkPrereqs_H__ */
Portable internet address structure.
Definition: enet.h:82
: stores information about a Synchronisable
Definition: Synchronisable.h:118
Definition: SynchronisableVariable.h:58
_ENetPacket ENetPacket
Definition: NetworkPrereqs.h:111
Definition: CorePrereqs.h:309
This class is the base class of all the Objects in the universe that need to be synchronised over the...
Definition: Synchronisable.h:142
uint8_t ENetChannelID
Definition: NetworkPrereqs.h:119
static constexpr unsigned int NETWORK_CHANNEL_DEFAULT
Definition: NetworkPrereqs.h:76
static constexpr unsigned int NETWORK_PEER_ID_BROADCAST
Definition: NetworkPrereqs.h:74
static constexpr unsigned int NETWORK_PEER_ID_SERVER
Definition: NetworkPrereqs.h:73
static constexpr Type NETWORK_FUNCTION
Definition: NetworkPrereqs.h:100
_ENetAddress ENetAddress
Definition: NetworkPrereqs.h:117
static constexpr uint32_t Reliable
Definition: NetworkPrereqs.h:91
static constexpr unsigned int NETWORK_CHANNEL_COUNT
Definition: NetworkPrereqs.h:78
Various constants for compiler, architecture and platform.
Definition: NetworkPrereqs.h:177
An ENet host for communicating with peers.
Definition: enet.h:345
Definition: NetworkPrereqs.h:168
Definition: NetworkCallbackManager.h:40
Definition: NetworkPrereqs.h:166
An ENet event as returned by enet_host_service().
Definition: enet.h:416
An ENet peer which data packets may be sent or received from.
Definition: enet.h:253
const char * LAN_DISCOVERY_MESSAGE
Definition: LANDiscoverable.cc:43
Die Wagnis Klasse hat die folgenden Aufgaben:
Definition: ApplicationPaths.cc:66
_ENetEvent ENetEvent
Definition: NetworkPrereqs.h:113
const char * LAN_DISCOVERY_ACK
Definition: LANDiscoverable.cc:44
static constexpr unsigned int NETWORK_CHANNEL_UNRELIABLE
Definition: NetworkPrereqs.h:77
_ENetPeer ENetPeer
Definition: NetworkPrereqs.h:109
Type
Definition: Packet.h:46
Definition: NetworkPrereqs.h:174
static constexpr unsigned int LAN_DISCOVERY_PORT
Definition: NetworkPrereqs.h:72
_ENetHost ENetHost
Definition: NetworkPrereqs.h:115
static constexpr uint32_t Unsequenced
Definition: NetworkPrereqs.h:92
Definition: NetworkCallback.h:41
static constexpr unsigned int NETWORK_PEER_ID_UNKNOWN
Definition: NetworkPrereqs.h:75
static constexpr unsigned int GAMESTATEID_INITIAL
Definition: NetworkPrereqs.h:69
static constexpr uint32_t NoAllocate
Definition: NetworkPrereqs.h:93
ENet packet structure.
Definition: enet.h:147