Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/output/src/libraries/network/NetworkPrereqs.h @ 8829

Last change on this file since 8829 was 8829, checked in by landauf, 13 years ago

enhanced chat system. chat related code is now separated into network-side code (located in Host, Client, Server) and client-side code (located in ChatManager).
note that there are now two chat related listeners: NetworkChatListener, which is used to send chat from the network to ChatManager, and ChatListener, which is used to send online and offline chat from ChatManager to the actual chat interfaces (ChatOverlay, ChatInputHandler, …).
the "chat" console command now supports a second argument which is the clientID of the receiver. this allows private messages (or gameplay messages directed to only one specific player).

  • Property svn:eol-style set to native
File size: 4.7 KB
Line 
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
29/**
30@file
31@brief
32    Shared library macros, enums, constants and forward declarations for the network library
33*/
34
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
67namespace orxonox
68{
69  static const 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 const unsigned int LAN_DISCOVERY_PORT          = 55558;
73  static const unsigned int NETWORK_PEER_ID_SERVER      = 0;
74  static const unsigned int NETWORK_PEER_ID_BROADCAST   = static_cast<unsigned int>(-1);
75  static const unsigned int NETWORK_PEER_ID_UNKNOWN     = static_cast<unsigned int>(-2);
76  static const unsigned int NETWORK_CHANNEL_DEFAULT     = 0;
77  static const unsigned int NETWORK_CHANNEL_UNRELIABLE  = 1;
78  static const unsigned int NETWORK_CHANNEL_COUNT       = 2;
79}
80
81//-----------------------------------------------------------------------
82// Enums
83//-----------------------------------------------------------------------
84
85namespace orxonox
86{
87  namespace packet
88  {
89    namespace PacketFlag
90    {
91      enum Value
92      {
93        Reliable    = 1,
94        Unsequenced = 2,
95        NoAllocate  = 4
96      };
97    }
98  }
99}
100
101//-----------------------------------------------------------------------
102// Forward declarations
103//-----------------------------------------------------------------------
104
105// from ENet
106struct _ENetPeer;
107typedef _ENetPeer     ENetPeer;
108struct _ENetPacket;
109typedef _ENetPacket   ENetPacket;
110struct _ENetEvent;
111typedef _ENetEvent    ENetEvent;
112struct _ENetHost;
113typedef _ENetHost     ENetHost;
114struct _ENetAddress;
115typedef _ENetAddress  ENetAddress;
116typedef uint8_t       ENetChannelID;
117
118namespace orxonox
119{
120  class Client;
121  class ClientConnection;
122  class ClientConnectionListener;
123  class ClientInformation;
124  class Connection;
125  class FunctionCall;
126  class FunctionCallManager;
127  class GamestateClient;
128  class GamestateHandler;
129  class GamestateManager;
130  class Host;
131  class NetworkChatListener;
132  class NetworkFunctionBase;
133  struct NetworkFunctionPointer;
134  class NetworkFunctionStatic;
135  template <class T>
136  class NetworkMemberFunction;
137  class NetworkMemberFunctionBase;
138  class Server;
139  class ServerConnection;
140  class TrafficControl;
141
142  // packet
143  namespace packet
144  {
145    class Acknowledgement;
146    class Chat;
147    class ClassID;
148    class DeleteObjects;
149    class FunctionCalls;
150    class FunctionIDs;
151    class Gamestate;
152    class Packet;
153    class Welcome;
154  }
155
156  // synchronisable
157  template <class T>
158  class NetworkCallback;
159  template <class T, class U>
160  class NetworkCallbackNotify;
161  class NetworkCallbackBase;
162  class NetworkCallbackManager;
163  class Synchronisable;
164  class SynchronisableHeader;
165  template <class T>
166  class SynchronisableVariable;
167  class SynchronisableVariableBase;
168  template <class T>
169  class SynchronisableVariableBidirectional;
170}
171
172namespace boost
173{
174  class mutex;
175  class thread;
176}
177
178#endif /* _NetworkPrereqs_H__ */
Note: See TracBrowser for help on using the repository browser.