Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/consolecommands3/src/libraries/network/Host.h @ 7216

Last change on this file since 7216 was 7190, checked in by landauf, 14 years ago

removed unnecessary return values from console commands "log", "error", "warning", "info", and "debug"
removed return value from console command Chat (the non-static chat functions still return a bool)
config and tconfig don't return a bool anymore but instead print an error if the config value doesn't exist.

fixed console command "printRTT" - it shouldn't crash on a standalone system.

  • Property svn:eol-style set to native
File size: 3.2 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 *      Oliver Scheuss <scheusso [at] ee.ethz.ch>, (C) 2008
24 *   Co-authors:
25 *      ...
26 *
27 */
28
29#ifndef _NETWORK_Host_H__
30#define _NETWORK_Host_H__
31
32#include "NetworkPrereqs.h"
33#include "core/CorePrereqs.h"
34
35#include <vector>
36
37namespace orxonox {
38
39  const unsigned int CLIENTID_SERVER = 0;
40  const unsigned int NETWORK_FREQUENCY = 25;
41  const float NETWORK_PERIOD = 1.0f/NETWORK_FREQUENCY;
42
43/**
44*       @brief Base class of Server and Client
45*       This is the Base class of the Server and Client classes
46*       - Makes server and client a singleton
47*       - defines static functions available on both server and client
48*       - is the interface to be used when communicating with the network
49*       @author Oliver Scheuss
50*/
51class _NetworkExport Host{
52  private:
53    //TODO add these functions or adequate
54    //virtual bool processChat(packet::Chat *message, unsigned int clientID)=0;
55    //virtual bool sendChat(packet::Chat *chat)=0;
56    virtual bool queuePacket(ENetPacket *packet, int clientID)=0;
57    virtual bool chat(const std::string& message)=0;
58    virtual bool broadcast(const std::string& message)=0;
59    virtual bool processChat(const std::string& message, unsigned int playerID)=0;
60    virtual bool isServer_()=0;
61
62
63
64  protected:
65    Host();
66    virtual ~Host();
67    void setActive( bool bActive ){ bIsActive_ = bActive; }
68//     static Host *instance_;
69
70  public:
71//     static Host* getInstance(){ return instance_; }
72    static bool running(){ return instances_s.size(); }
73    static bool addPacket(ENetPacket *packet, int clientID=0);
74    //static bool chat(std::string& message);
75//     static bool receiveChat(packet::Chat *message, unsigned int clientID);
76    static unsigned int getPlayerID(){ return clientID_s; }
77    static unsigned int getShipID(){return shipID_s;}
78    static void setClientID(unsigned int id){ clientID_s = id; }
79    static void setShipID(unsigned int id){ shipID_s = id; }
80    static bool isServer();
81    static void Chat(const std::string& message);
82    static bool Broadcast(const std::string& message);
83    static bool incomingChat(const std::string& message, unsigned int playerID);
84    virtual void printRTT()=0;
85    bool isActive(){ return bIsActive_; }
86  private:
87    ConsoleCommand* printRTTCC_;
88    static uint32_t clientID_s;
89    static uint32_t shipID_s;
90    static std::vector<Host*> instances_s;
91    bool bIsActive_;
92};
93
94}
95
96#endif /* _NETWORK_Host_H__ */
Note: See TracBrowser for help on using the repository browser.