Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 3202


Ignore:
Timestamp:
Jun 21, 2009, 12:27:19 AM (15 years ago)
Author:
scheusso
Message:

rest of the cleanup ( mostly client connection handling)
network is now single-threaded ( only in order to become multithreaded again, but thats another story ;) )

Location:
code/branches/netp5/src
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • code/branches/netp5/src/network/Client.cc

    r3198 r3202  
    5050#include "FunctionCallManager.h"
    5151
    52 // #include "packet/Acknowledgement.h"
    53 
    5452namespace orxonox
    5553{
    56 //   SetConsoleCommandShortcut(Client, chat);
    5754
    5855
     
    6158  * initializes the address and the port to default localhost:NETWORK_PORT
    6259  */
    63   Client::Client(): client_connection(NETWORK_PORT,"127.0.0.1"){
    64     // set server address to localhost
    65     isConnected=false;
    66     isSynched_=false;
    67     gameStateFailure_=false;
     60  Client::Client():
     61      isSynched_(false),
     62      gameStateFailure_(false)
     63  {
    6864  }
    6965
     
    7369  * @param port port of the application on the server
    7470  */
    75   Client::Client(const std::string& address, int port) : client_connection(port, address){
    76     isConnected=false;
    77     isSynched_=false;
    78     gameStateFailure_=false;
    79   }
    80 
    81   /**
    82   * Constructor for the Client class
    83   * @param address the server address
    84   * @param port port of the application on the server
    85   */
    86   Client::Client(const char *address, int port) : client_connection(port, address){
    87     isConnected=false;
    88     isSynched_=false;
    89     gameStateFailure_=false;
     71  Client::Client(const std::string& address, int port):
     72      isSynched_(false),
     73      gameStateFailure_(false)
     74  {
    9075  }
    9176
    9277  Client::~Client(){
    93     if(isConnected)
     78    if ( ClientConnection::isConnected() )
    9479      closeConnection();
    9580  }
     
    10186  bool Client::establishConnection(){
    10287    Synchronisable::setClient(true);
    103     isConnected=client_connection.createConnection();
    104     if(!isConnected)
    105       COUT(1) << "could not create connection laber" << std::endl;
    106     return isConnected;
     88    return ClientConnection::establishConnection();
    10789  }
    10890
     
    11294  */
    11395  bool Client::closeConnection(){
    114     isConnected=false;
    115     return client_connection.closeConnection();
     96    return ClientConnection::closeConnection();
    11697  }
    11798
    11899  bool Client::queuePacket(ENetPacket *packet, int clientID){
    119     return client_connection.addPacket(packet);
     100    bool b = ClientConnection::addPacket(packet);
     101    assert(b);
     102    return b;
    120103  }
    121104
     
    143126    //this steers our network frequency
    144127    timeSinceLastUpdate_+=time.getDeltaTime();
    145     if(timeSinceLastUpdate_>=NETWORK_PERIOD){
     128    if(timeSinceLastUpdate_>=NETWORK_PERIOD)
     129    {
    146130      timeSinceLastUpdate_ -= static_cast<unsigned int>( timeSinceLastUpdate_ / NETWORK_PERIOD ) * NETWORK_PERIOD;
    147131      //     COUT(3) << ".";
    148       if(client_connection.isConnected() && isSynched_){
     132      if ( isConnected() && isSynched_ )
     133      {
    149134        COUT(4) << "popping partial gamestate: " << std::endl;
    150135        packet::Gamestate *gs = gamestate.getGamestate();
     
    159144      }
    160145    }
     146    sendPackets(); // flush the enet queue
    161147   
    162     ENetEvent *event;
    163     // stop if the packet queue is empty
    164     while(!(client_connection.queueEmpty())){
    165       event = client_connection.getEvent();
    166       COUT(5) << "tick packet size " << event->packet->dataLength << std::endl;
    167       packet::Packet *packet = packet::Packet::createPacket(event->packet, event->peer);
    168       // note: packet commits suicide here except for the GameState. That is then deleted by a GamestateHandler
    169       bool b = packet->process();
    170       assert(b);
    171       delete event;
    172     }
     148    Connection::processQueue();
    173149    if(gamestate.processGamestates())
    174150    {
  • code/branches/netp5/src/network/Client.h

    r3084 r3202  
    6161  *
    6262  */
    63   class _NetworkExport Client : public Host{
     63  class _NetworkExport Client : public Host, public ClientConnection{
    6464  public:
    6565    Client();
    6666    Client(const std::string& address, int port);
    67     Client(const char *address, int port);
    6867    ~Client();
    6968
     
    7473    virtual bool chat(const std::string& message);
    7574    virtual bool broadcast(const std::string& message) { return false; }
    76     //bool sendChat(packet::Chat *chat);
    7775
    7876    void update(const Clock& time);
     
    8280    virtual bool isServer_(){return false;}
    8381
    84     ClientConnection client_connection;
    8582    GamestateClient gamestate;
    86     bool isConnected;
    8783    bool isSynched_;
    8884
  • code/branches/netp5/src/network/ClientConnection.cc

    r3198 r3202  
    2727 */
    2828
    29 //
    30 // C++ Interface: ClientConnection
    31 //
    32 // Description: The Class ClientConnection manages the servers conenctions to the clients.
    33 // each connection is provided by a new process. communication between master process and
    34 // connection processes is provided by ...
    35 //
    36 //
    37 // Author:  Oliver Scheuss
    38 //
    39 
    4029#include "ClientConnection.h"
    4130
    42 #include <enet/enet.h>
    4331#include <iostream>
    4432#include <cassert>
    45 // boost.thread library for multithreading support
    46 #include <boost/thread/thread.hpp>
    47 #include <boost/bind.hpp>
    48 #include <boost/thread/recursive_mutex.hpp>
    4933
    50 #include "util/Sleep.h"
    5134#include "util/Debug.h"
    5235
    5336namespace orxonox
    5437{
    55   //static boost::thread_group network_threads;
     38  const unsigned int NETWORK_CLIENT_WAIT_TIME = 1;
     39  const unsigned int NETWORK_CLIENT_CONNECTION_TIMEOUT = 3000; //millisecs
     40  const unsigned int NETWORK_CLIENT_MAX_CONNECTIONS = 5;
     41  const unsigned int NETWORK_CLIENT_CHANNELS = 2;
    5642
    57   static boost::recursive_mutex enet_mutex_g;
    5843
    59   ClientConnection::ClientConnection(int port, const std::string& address) {
    60     quit_=false;
    61     server=NULL;
    62     serverAddress = new ENetAddress();
    63     enet_address_set_host(serverAddress, address.c_str());
    64     serverAddress->port = port;
    65     established=false;
    66   }
    67 
    68   ClientConnection::ClientConnection(int port, const char *address) {
    69     quit_=false;
    70     server=NULL;
    71     serverAddress = new ENetAddress();
    72     enet_address_set_host(serverAddress, address);
    73     serverAddress->port = port;
    74     established=false;
    75   }
    76 
    77   bool ClientConnection::waitEstablished(int milisec) {
    78     for(int i=0; i<=milisec && !established; i++)
    79       msleep(1);
    80 
    81     return established;
     44  ClientConnection::ClientConnection():
     45    server_(NULL),
     46    established_(false)
     47  {
     48    this->serverAddress_ = new ENetAddress();
     49    //set standard address and port
     50    enet_address_set_host(this->serverAddress_, "127.0.0.1");
     51    serverAddress_->port = NETWORK_PORT;
    8252  }
    8353
    8454  ClientConnection::~ClientConnection(){
    85     if(established)
     55    if(this->established_)
    8656      closeConnection();
    87     delete serverAddress; // surely was created
     57    delete this->serverAddress_; // surely was created
    8858  }
    8959
    90   ENetEvent *ClientConnection::getEvent(){
    91     if(!buffer.isEmpty())
    92       return buffer.pop();
    93     else
    94       return NULL;
    95   }
    96 
    97   bool ClientConnection::queueEmpty() {
    98     return buffer.isEmpty();
    99   }
    100 
    101   bool ClientConnection::createConnection() {
    102     receiverThread_ = new boost::thread(boost::bind(&ClientConnection::receiverThread, this));
    103     //network_threads.create_thread(boost::bind(boost::mem_fn(&ClientConnection::receiverThread), this));
    104     // wait 10 seconds for the connection to be established
    105     return waitEstablished(NETWORK_CLIENT_CONNECT_TIMEOUT);
    106   }
    107 
    108   bool ClientConnection::closeConnection() {
    109     quit_=true;
    110     //network_threads.join_all();
    111     receiverThread_->join();
    112     established=false;
    113     return true;
    114   }
    115 
    116 
    117   bool ClientConnection::addPacket(ENetPacket *packet) {
    118     if(server==NULL)
    119       return false;
    120     if(packet==NULL){
    121       COUT(3) << "Cl.con: addpacket: invalid packet" << std::endl;
     60  bool ClientConnection::establishConnection()
     61  {
     62    ENetEvent event;
     63   
     64    this->host_ = enet_host_create(NULL, NETWORK_CLIENT_MAX_CONNECTIONS, 0, 0);
     65    if ( this->host_ == NULL )
     66    {
     67      COUT(2) << "ClientConnection: host_ == NULL" << std::endl;
     68      // error handling
    12269      return false;
    12370    }
    124     boost::recursive_mutex::scoped_lock lock(enet_mutex_g);
    125     if(enet_peer_send(server, 0, packet)<0)
    126       return false;
    127     else
    128       return true;
    129   }
    130 
    131   bool ClientConnection::sendPackets() {
    132     if(server==NULL)
    133       return false;
    134     boost::recursive_mutex::scoped_lock lock(enet_mutex_g);
    135     enet_host_flush(client);
    136     lock.unlock();
    137     return true;
    138   }
    139 
    140   void ClientConnection::receiverThread() {
    141     // what about some error-handling here ?
    142     atexit(enet_deinitialize);
    143     ENetEvent *event;
     71    this->server_ = enet_host_connect(this->host_, serverAddress_, NETWORK_CLIENT_CHANNELS);
     72    if ( this->server_==NULL )
    14473    {
    145       boost::recursive_mutex::scoped_lock lock(enet_mutex_g);
    146       enet_initialize();
    147       client = enet_host_create(NULL, NETWORK_CLIENT_MAX_CONNECTIONS, 0, 0);
    148       lock.unlock();
    149     }
    150     if(client==NULL) {
    151       COUT(2) << "ClientConnection: could not create client host" << std::endl;
    152       // add some error handling here ==========================
    153       quit_=true;
    154     }
    155     //connect to the server
    156     if(!establishConnection()){
    157       COUT(2) << "clientConn: receiver thread: could not establishConnection" << std::endl;
    158       quit_=true;
    159       return;
    160     }
    161     event = new ENetEvent;
    162     //main loop
    163     while(!quit_){
    164       //std::cout << "connection loop" << std::endl;
    165       {
    166         boost::recursive_mutex::scoped_lock lock(enet_mutex_g);
    167         if(enet_host_service(client, event, NETWORK_CLIENT_WAIT_TIME)<0){
    168           // we should never reach this point
    169 //              assert(0);
    170           printf("ClientConnection: ENet returned with an error!\n");
    171 //           quit_=true;
    172           continue;
    173           // add some error handling here ========================
    174         }
    175         lock.unlock();
    176       }
    177       switch(event->type){
    178         // log handling ================
    179       case ENET_EVENT_TYPE_CONNECT:
    180         break;
    181       case ENET_EVENT_TYPE_RECEIVE:
    182         //COUT(5) << "Cl.Con: receiver-Thread while loop: got new packet" << std::endl;
    183         if ( !processData(event) ) COUT(2) << "Current packet was not pushed to packetBuffer -> ev ongoing SegFault" << std::endl;
    184         //COUT(5) << "Cl.Con: processed Data in receiver-thread while loop" << std::endl;
    185         event = new ENetEvent;
    186         break;
    187       case ENET_EVENT_TYPE_DISCONNECT:
    188         quit_=true;
    189         printf("Received disconnect Packet from Server!\n");
    190         // server closed the connection
    191         return;
    192         break;
    193       case ENET_EVENT_TYPE_NONE:
    194         //receiverThread_->yield();
    195         msleep(1);
    196         break;
    197       }
    198     }
    199     delete event;
    200     // now disconnect
    201 
    202     if(!disconnectConnection())
    203     {
    204       printf("could not disconnect properly\n");
    205       // if disconnecting failed destroy conn.
    206       boost::recursive_mutex::scoped_lock lock(enet_mutex_g);
    207       enet_peer_reset(server);
    208     }
    209     else
    210       printf("properly disconnected\n");
    211     return;
    212   }
    213 
    214   bool ClientConnection::disconnectConnection() {
    215     ENetEvent event;
    216     if(this->quit_)
    217       return true;
    218     boost::recursive_mutex::scoped_lock lock(enet_mutex_g);
    219     enet_peer_disconnect(server, 0);
    220     while(enet_host_service(client, &event, NETWORK_CLIENT_WAIT_TIME) >= 0){
    221       switch (event.type)
    222       {
    223       case ENET_EVENT_TYPE_NONE:
    224       case ENET_EVENT_TYPE_CONNECT:
    225       case ENET_EVENT_TYPE_RECEIVE:
    226         enet_packet_destroy(event.packet);
    227         break;
    228       case ENET_EVENT_TYPE_DISCONNECT:
    229         printf("received disconnect confirmation from server");
    230         return true;
    231       }
    232     }
    233     enet_peer_reset(server);
    234     return false;
    235   }
    236 
    237   bool ClientConnection::establishConnection() {
    238     ENetEvent event;
    239     // connect to peer (server is type ENetPeer*)
    240     boost::recursive_mutex::scoped_lock lock(enet_mutex_g);
    241     server = enet_host_connect(client, serverAddress, NETWORK_CLIENT_CHANNELS);
    242     if(server==NULL) {
    24374      COUT(2) << "ClientConnection: server == NULL" << std::endl;
    24475      // error handling
     
    24677    }
    24778    // handshake
    248     while(enet_host_service(client, &event, NETWORK_CLIENT_WAIT_TIME)>=0 && !quit_){
    249       if( event.type == ENET_EVENT_TYPE_CONNECT ){
    250         established=true;
     79    for( unsigned int i=0; i<NETWORK_CLIENT_CONNECTION_TIMEOUT/NETWORK_CLIENT_WAIT_TIME; i++ )
     80    {
     81      if( enet_host_service(this->host_, &event, NETWORK_CLIENT_WAIT_TIME)>=0 && event.type == ENET_EVENT_TYPE_CONNECT )
     82      {
     83        this->established_=true;
    25184        return true;
    25285      }
    25386    }
    254     COUT(2) << "ClientConnection: enet_host_service < 0 or event.type != ENET_EVENT_TYPE_CONNECT # EVENT:" << event.type << std::endl;
     87    COUT(1) << "Could not connect to server" << endl;
     88  }
     89
     90  bool ClientConnection::closeConnection() {
     91    ENetEvent event;
     92   
     93    if ( !this->established_ )
     94      return true;
     95    this->established_ = false;
     96    enet_peer_disconnect(this->server_, 0);
     97    for( unsigned int i=0; i<NETWORK_CLIENT_CONNECTION_TIMEOUT/NETWORK_CLIENT_WAIT_TIME; i++)
     98    {
     99      if ( enet_host_service(this->host_, &event, NETWORK_CLIENT_WAIT_TIME) >= 0 )
     100      {
     101        switch (event.type)
     102        {
     103          case ENET_EVENT_TYPE_NONE:
     104          case ENET_EVENT_TYPE_CONNECT:
     105            break;
     106          case ENET_EVENT_TYPE_RECEIVE:
     107            enet_packet_destroy(event.packet);
     108            break;
     109          case ENET_EVENT_TYPE_DISCONNECT:
     110            COUT(4) << "received disconnect confirmation from server" << endl;
     111            return true;
     112        }
     113      }
     114    }
     115    enet_peer_reset( this->server_ );
    255116    return false;
    256117  }
    257118
    258   bool ClientConnection::processData(ENetEvent *event) {
    259     COUT(5) << "Cl.Con: got packet, pushing to queue" << std::endl;
    260     // just add packet to the buffer
    261     // this can be extended with some preprocessing
    262     return buffer.push(event);
     119
     120  bool ClientConnection::addPacket(ENetPacket *packet) {
     121    assert( this->server_ );
     122    assert( packet );
     123    return Connection::addPacket( packet, this->server_ );
     124  }
     125
     126  void ClientConnection::addClient(ENetEvent* event)
     127  {
     128    assert(0);
     129  }
     130  void ClientConnection::disconnectPeer(ENetEvent* event)
     131  {
     132    this->established_=false;
     133    COUT(1) << "Received disconnect Packet from Server!" << endl;
     134        // server closed the connection
    263135  }
    264136
  • code/branches/netp5/src/network/ClientConnection.h

    r3084 r3202  
    2626 *
    2727 */
    28 
    29 //
    30 // C++ Interface: ClientConnection
    31 //
    32 // Description:
    33 //
    34 //
    35 // Author:  Oliver Scheuss, (C) 2007
    36 //
    37 // Copyright: See COPYING file that comes with this distribution
    38 //
    39 //
     28 
    4029#ifndef _ClientConnection_H__
    4130#define _ClientConnection_H__
    4231
     32#include <string>
     33
    4334#include "NetworkPrereqs.h"
    44 
    45 #include <string>
    46 #include "PacketBuffer.h"
    47 
    48 namespace boost { class thread; }
     35#include "Connection.h"
    4936
    5037namespace orxonox
    5138{
    5239
    53     const int NETWORK_PORT = 55556;
    54     const int NETWORK_CLIENT_MAX_CONNECTIONS = 5;
    55     const int NETWORK_CLIENT_WAIT_TIME = 10;
    56     const int NETWORK_CLIENT_CONNECT_TIMEOUT = 3000; // miliseconds
    57     const int NETWORK_CLIENT_CHANNELS = 2;
    58 
    59 
    60   class _NetworkExport ClientConnection{
     40  class _NetworkExport ClientConnection: public Connection{
    6141  public:
    62     ClientConnection(int port, const std::string& address);
    63     ClientConnection(int port, const char* address);
     42    ClientConnection();
    6443    ~ClientConnection();
     44   
     45    void setServerAddress( const std::string& serverAddress ){ enet_address_set_host (this->serverAddress_, serverAddress.c_str()); }
     46    void setPort( unsigned int port ){ this->serverAddress_->port = port; }
     47   
    6548    ENetEvent *getEvent();
    6649    // check wheter the packet queue is empty
    6750    bool queueEmpty();
    6851    // create a new listener thread
    69     bool createConnection();
    70     bool closeConnection();
     52    virtual bool establishConnection();
     53    virtual bool closeConnection();
    7154    // add a packet to queue for the server
    7255    bool addPacket(ENetPacket *packet);
    73     // send out all queued packets
    74     bool sendPackets();
    75     // send out all queued packets and save result in event
    76     //bool sendPackets(ENetEvent *event);
    77     bool waitEstablished(int milisec);
    78     inline bool isConnected(){return established;}
    79     inline bool checkConnection(){ return !quit_ && isConnected(); }
     56    inline bool isConnected(){ return this->established_; }
    8057  private:
    81     ClientConnection(const ClientConnection& copy); // not used
    82     bool processData(ENetEvent *event);
    83     // implementation of the listener
    84     void receiverThread(); //thread2
    85     //packetbuffer
    86     bool establishConnection();
     58    virtual void addClient(ENetEvent* event);
     59    virtual void disconnectPeer(ENetEvent* event);
     60   
    8761    bool disconnectConnection();
    88     PacketBuffer buffer;
    8962    // enet stuff
    90     ENetHost *client;
    91     ENetAddress *serverAddress;
    92     // quit-variable (communication with threads)
    93     bool quit_;
    94     bool established;
     63    ENetAddress *serverAddress_;
     64    bool established_;
    9565    // clientlist
    96     ENetPeer *server;
    97     boost::thread *receiverThread_;
     66    ENetPeer *server_;
    9867};
    9968
  • code/branches/netp5/src/network/Connection.cc

    r3201 r3202  
    3131#include <iostream>
    3232#include <cassert>
     33#include <OgreTimer.h>
    3334
    3435#include "util/Debug.h"
     
    4849    assert(instance_==0);
    4950    Connection::instance_=this;
     51    enet_initialize();
     52    atexit(enet_deinitialize);
    5053  }
    5154
     
    7275   
    7376    assert(this->host_);
     77    Ogre::Timer timer;
    7478
    75     if( enet_host_service( this->host_, &event, NETWORK_WAIT_TIMEOUT ) > 0 )
     79    while( timer.getMilliseconds()<NETWORK_MAX_QUEUE_PROCESS_TIME && enet_host_service( this->host_, &event, NETWORK_WAIT_TIMEOUT ) > 0 )
    7680    {
    7781      switch(event.type){
     
    8185          break;
    8286        case ENET_EVENT_TYPE_DISCONNECT:
    83           disconnectClient( &event );
     87          disconnectPeer( &event );
    8488          break;
    8589        case ENET_EVENT_TYPE_RECEIVE:
  • code/branches/netp5/src/network/Connection.h

    r3201 r3202  
    5353    const int NETWORK_PORT = 55556;
    5454    const int NETWORK_MAX_CONNECTIONS = 50;
    55     const int NETWORK_WAIT_TIMEOUT = 1;
     55    const int NETWORK_WAIT_TIMEOUT = 0;
    5656    const int NETWORK_DEFAULT_CHANNEL = 0;
    57 
    58 //   struct _NetworkExport ClientList{
    59 //     ENetEvent *event;
    60 //     int ID;
    61 //     ClientList *next;
    62 //   };
     57    const int NETWORK_MAX_QUEUE_PROCESS_TIME = 5;
    6358
    6459  class _NetworkExport Connection{
     
    7974    void processQueue();
    8075    virtual void addClient(ENetEvent* event)=0;
    81     virtual void disconnectClient(ENetEvent* event)=0;
     76    virtual void disconnectPeer(ENetEvent* event)=0;
    8277    virtual bool processPacket(ENetEvent* event){ packet::Packet *p = packet::Packet::createPacket(event->packet, event->peer); return p->process(); }
    8378   
  • code/branches/netp5/src/network/Server.cc

    r3201 r3202  
    144144  */
    145145  void Server::update(const Clock& time) {
    146     ServerConnection::processQueue();
     146    Connection::processQueue();
    147147    gamestates_->processGamestates();
    148148    //this steers our network frequency
    149149    timeSinceLastUpdate_+=time.getDeltaTime();
    150     if(timeSinceLastUpdate_>=NETWORK_PERIOD){
     150    if(timeSinceLastUpdate_>=NETWORK_PERIOD)
     151    {
    151152      timeSinceLastUpdate_ -= static_cast<unsigned int>( timeSinceLastUpdate_ / NETWORK_PERIOD ) * NETWORK_PERIOD;
    152153      updateGamestate();
    153154      FunctionCallManager::sendCalls();
    154155    }
     156    sendPackets(); // flush the enet queue
    155157  }
    156158
  • code/branches/netp5/src/network/ServerConnection.cc

    r3201 r3202  
    5353
    5454  bool ServerConnection::openListener() {
    55     enet_initialize();
    56     atexit(enet_deinitialize);
    5755    this->host_ = enet_host_create(this->bindAddress_, NETWORK_MAX_CONNECTIONS, 0, 0);
    5856    if ( this->host_ == NULL )
     
    9189  void ServerConnection::disconnectClient(ClientInformation *client)
    9290  {
    93     disconnectPeer( client->getPeer() );
     91    Connection::disconnectPeer( client->getPeer() );
    9492    delete client;
    9593  }
    9694 
    97   void ServerConnection::disconnectClient( ENetEvent* event )
     95  void ServerConnection::disconnectPeer( ENetEvent* event )
    9896  {
    9997    COUT(4) << "removing client from list" << std::endl;
     
    115113    ClientInformation *temp = ClientInformation::getBegin();
    116114    while(temp!=0){
    117       disconnectPeer( temp->getPeer() );
     115      disconnectPeer( &event );
    118116      temp = temp->next();
    119117    }
  • code/branches/netp5/src/network/ServerConnection.h

    r3201 r3202  
    6060    static bool addPacketAll(ENetPacket *packet);
    6161    virtual void disconnectClient(ClientInformation *client);
    62     void disconnectClient( ENetEvent* event );
     62    void disconnectPeer( ENetEvent* event );
    6363    void disconnectClient(int clientID);
    6464  protected:
  • code/branches/netp5/src/network/packet/FunctionCalls.cc

    r3084 r3202  
    6666
    6767bool FunctionCalls::process(){
     68  printf("process function calls\n");
    6869  assert(isDataENetAllocated());
    6970  uint8_t* temp = data_+sizeof(uint32_t); //skip packetid
  • code/branches/netp5/src/network/packet/Packet.cc

    r3097 r3202  
    3232#include <cassert>
    3333#include <enet/enet.h>
    34 #include <boost/bind.hpp>
    35 #include <boost/thread/recursive_mutex.hpp>
    36 
    37 #include "network/ConnectionManager.h"
     34
    3835#include "network/ClientInformation.h"
    3936
     
    5855std::map<size_t, Packet *> Packet::packetMap_;
    5956//! Static mutex for any packetMap_ access
    60 static boost::recursive_mutex packetMap_mutex_g;
    6157
    6258Packet::Packet(){
     
    142138      // Assures we don't create a packet and destroy it right after in another thread
    143139      // without having a reference in the packetMap_
    144       boost::recursive_mutex::scoped_lock lock(packetMap_mutex_g);
    145140      packetMap_[(size_t)(void*)enetPacket_] = this;
    146141    }
     
    228223*/
    229224void Packet::deletePacket(ENetPacket *enetPacket){
    230   boost::recursive_mutex::scoped_lock lock(packetMap_mutex_g);
    231225  // Get our Packet from a gloabal map with all Packets created in the send() method of Packet.
    232226  std::map<size_t, Packet*>::iterator it = packetMap_.find((size_t)enetPacket);
  • code/branches/netp5/src/orxonox/objects/worldentities/pawns/Pawn.cc

    r3196 r3202  
    5959        PawnManager::touch();
    6060        this->bAlive_ = true;
    61         this->fire_ = 0x0;
    62         this->firehack_ = 0x0;
    6361        this->bReload_ = false;
    6462
     
    122120        registerVariable(this->health_,        variableDirection::toclient);
    123121        registerVariable(this->initialHealth_, variableDirection::toclient);
    124         registerVariable(this->fire_,          variableDirection::toserver);
    125122        registerVariable(this->bReload_,       variableDirection::toserver);
    126123    }
     
    130127        SUPER(Pawn, tick, dt);
    131128
    132 //        if (this->weaponSystem_ && GameMode::isMaster())
    133 //        {
    134 //            for (unsigned int firemode = 0; firemode < WeaponSystem::MAX_FIRE_MODES; firemode++)
    135 //                if (this->fire_ & WeaponSystem::getFiremodeMask(firemode))
    136 //                    this->weaponSystem_->fire(firemode);
    137 //
    138 //            if (this->bReload_)
    139 //                this->weaponSystem_->reload();
    140 //        }
    141 //
    142 //        this->fire_ = this->firehack_;
    143 //        this->firehack_ = 0x0;
    144129        this->bReload_ = false;
    145130
  • code/branches/netp5/src/orxonox/objects/worldentities/pawns/Pawn.h

    r3196 r3202  
    137137
    138138            WeaponSystem* weaponSystem_;
    139             unsigned int fire_;
    140             unsigned int firehack_;
    141139            bool bReload_;
    142140
Note: See TracChangeset for help on using the changeset viewer.