[Orxonox-commit 74] r2773 - in trunk/src: core/input network network/packet network/synchronisable util
rgrieder at orxonox.net
rgrieder at orxonox.net
Wed Mar 11 16:06:31 CET 2009
Author: rgrieder
Date: 2009-03-11 15:06:31 +0000 (Wed, 11 Mar 2009)
New Revision: 2773
Added:
trunk/src/util/Sleep.cc
Modified:
trunk/src/core/input/ExtendedInputState.cc
trunk/src/network/Client.cc
trunk/src/network/Client.h
trunk/src/network/ClientConnection.cc
trunk/src/network/ClientConnection.h
trunk/src/network/ClientInformation.cc
trunk/src/network/ClientInformation.h
trunk/src/network/ConnectionManager.cc
trunk/src/network/ConnectionManager.h
trunk/src/network/GamestateHandler.cc
trunk/src/network/Host.cc
trunk/src/network/NetworkPrereqs.h
trunk/src/network/PacketBuffer.cc
trunk/src/network/PacketBuffer.h
trunk/src/network/Server.cc
trunk/src/network/packet/Chat.cc
trunk/src/network/packet/ClassID.cc
trunk/src/network/packet/DeleteObjects.cc
trunk/src/network/packet/Gamestate.cc
trunk/src/network/packet/Packet.cc
trunk/src/network/packet/Packet.h
trunk/src/network/packet/Welcome.cc
trunk/src/network/synchronisable/Synchronisable.cc
trunk/src/network/synchronisable/Synchronisable.h
trunk/src/util/CMakeLists.txt
trunk/src/util/Sleep.h
Log:
Removed all enet and boost includes from header files in the network library.
- Reduces dependencies
- Minimises problems with windows.h
- Speeds up the compiling process a little bit (probably negligible)
- Also removes ugly WIN32_LEAN_AND_MEAN declarations before every enet.h include in the network library.
Removed windows.h header from util/Sleep.h by adding Sleep.cc
Modified: trunk/src/core/input/ExtendedInputState.cc
===================================================================
--- trunk/src/core/input/ExtendedInputState.cc 2009-03-09 15:48:59 UTC (rev 2772)
+++ trunk/src/core/input/ExtendedInputState.cc 2009-03-11 15:06:31 UTC (rev 2773)
@@ -34,7 +34,7 @@
#include "ExtendedInputState.h"
-#include <assert.h>
+#include <cassert>
#include "util/Debug.h"
namespace orxonox
Modified: trunk/src/network/Client.cc
===================================================================
--- trunk/src/network/Client.cc 2009-03-09 15:48:59 UTC (rev 2772)
+++ trunk/src/network/Client.cc 2009-03-11 15:06:31 UTC (rev 2773)
@@ -39,6 +39,7 @@
//
#include <cassert>
+#include <enet/enet.h>
#include "Client.h"
#include "Host.h"
Modified: trunk/src/network/Client.h
===================================================================
--- trunk/src/network/Client.h 2009-03-09 15:48:59 UTC (rev 2772)
+++ trunk/src/network/Client.h 2009-03-11 15:06:31 UTC (rev 2773)
@@ -49,10 +49,8 @@
#include "packet/Chat.h"
#include "ClientConnection.h"
#include "GamestateClient.h"
-//#include "NetworkFrameListener.h"
-
namespace orxonox
{
/**
@@ -80,6 +78,7 @@
void tick(float time);
private:
+ Client(const Client& copy); // not used
virtual bool isServer_(){return false;}
ClientConnection client_connection;
Modified: trunk/src/network/ClientConnection.cc
===================================================================
--- trunk/src/network/ClientConnection.cc 2009-03-09 15:48:59 UTC (rev 2772)
+++ trunk/src/network/ClientConnection.cc 2009-03-11 15:06:31 UTC (rev 2773)
@@ -39,10 +39,12 @@
#include "ClientConnection.h"
+#include <enet/enet.h>
#include <iostream>
// boost.thread library for multithreading support
#include <boost/thread/thread.hpp>
#include <boost/bind.hpp>
+#include <boost/thread/recursive_mutex.hpp>
#include "util/Sleep.h"
#include "util/Debug.h"
@@ -51,21 +53,23 @@
{
//static boost::thread_group network_threads;
- boost::recursive_mutex ClientConnection::enet_mutex_;
+ static boost::recursive_mutex enet_mutex_g;
ClientConnection::ClientConnection(int port, const std::string& address) {
quit=false;
server=NULL;
- enet_address_set_host(&serverAddress, address.c_str());
- serverAddress.port = port;
+ serverAddress = new ENetAddress();
+ enet_address_set_host(serverAddress, address.c_str());
+ serverAddress->port = port;
established=false;
}
ClientConnection::ClientConnection(int port, const char *address) {
quit=false;
server=NULL;
- enet_address_set_host(&serverAddress, address);
- serverAddress.port = port;
+ serverAddress = new ENetAddress();
+ enet_address_set_host(serverAddress, address);
+ serverAddress->port = port;
established=false;
}
@@ -79,6 +83,7 @@
ClientConnection::~ClientConnection(){
if(established)
closeConnection();
+ delete serverAddress; // surely was created
}
ENetEvent *ClientConnection::getEvent(){
@@ -115,7 +120,7 @@
COUT(3) << "Cl.con: addpacket: invalid packet" << std::endl;
return false;
}
- boost::recursive_mutex::scoped_lock lock(enet_mutex_);
+ boost::recursive_mutex::scoped_lock lock(enet_mutex_g);
if(enet_peer_send(server, 0, packet)<0)
return false;
else
@@ -125,7 +130,7 @@
bool ClientConnection::sendPackets() {
if(server==NULL)
return false;
- boost::recursive_mutex::scoped_lock lock(enet_mutex_);
+ boost::recursive_mutex::scoped_lock lock(enet_mutex_g);
enet_host_flush(client);
lock.unlock();
return true;
@@ -136,7 +141,7 @@
atexit(enet_deinitialize);
ENetEvent *event;
{
- boost::recursive_mutex::scoped_lock lock(enet_mutex_);
+ boost::recursive_mutex::scoped_lock lock(enet_mutex_g);
enet_initialize();
client = enet_host_create(NULL, NETWORK_CLIENT_MAX_CONNECTIONS, 0, 0);
lock.unlock();
@@ -157,7 +162,7 @@
while(!quit){
//std::cout << "connection loop" << std::endl;
{
- boost::recursive_mutex::scoped_lock lock(enet_mutex_);
+ boost::recursive_mutex::scoped_lock lock(enet_mutex_g);
if(enet_host_service(client, event, NETWORK_CLIENT_WAIT_TIME)<0){
// we should never reach this point
quit=true;
@@ -191,14 +196,14 @@
if(!disconnectConnection())
// if disconnecting failed destroy conn.
- boost::recursive_mutex::scoped_lock lock(enet_mutex_);
+ boost::recursive_mutex::scoped_lock lock(enet_mutex_g);
enet_peer_reset(server);
return;
}
bool ClientConnection::disconnectConnection() {
ENetEvent event;
- boost::recursive_mutex::scoped_lock lock(enet_mutex_);
+ boost::recursive_mutex::scoped_lock lock(enet_mutex_g);
enet_peer_disconnect(server, 0);
while(enet_host_service(client, &event, NETWORK_CLIENT_WAIT_TIME) > 0){
switch (event.type)
@@ -219,8 +224,8 @@
bool ClientConnection::establishConnection() {
ENetEvent event;
// connect to peer (server is type ENetPeer*)
- boost::recursive_mutex::scoped_lock lock(enet_mutex_);
- server = enet_host_connect(client, &serverAddress, NETWORK_CLIENT_CHANNELS);
+ boost::recursive_mutex::scoped_lock lock(enet_mutex_g);
+ server = enet_host_connect(client, serverAddress, NETWORK_CLIENT_CHANNELS);
if(server==NULL) {
COUT(2) << "ClientConnection: server == NULL" << std::endl;
// error handling
Modified: trunk/src/network/ClientConnection.h
===================================================================
--- trunk/src/network/ClientConnection.h 2009-03-09 15:48:59 UTC (rev 2772)
+++ trunk/src/network/ClientConnection.h 2009-03-11 15:06:31 UTC (rev 2773)
@@ -43,12 +43,6 @@
#include "NetworkPrereqs.h"
#include <string>
-#ifndef WIN32_LEAN_AND_MEAN
-# define WIN32_LEAN_AND_MEAN
-#endif
-#define NOMINMAX // required to stop windows.h screwing up std::min definition
-#include <enet/enet.h>
-#include <boost/thread/recursive_mutex.hpp>
#include "PacketBuffer.h"
namespace boost { class thread; }
@@ -83,6 +77,7 @@
bool waitEstablished(int milisec);
bool isConnected(){return established;}
private:
+ ClientConnection(const ClientConnection& copy); // not used
bool processData(ENetEvent *event);
// implementation of the listener
void receiverThread(); //thread2
@@ -92,16 +87,15 @@
PacketBuffer buffer;
// enet stuff
ENetHost *client;
- ENetAddress serverAddress;
+ ENetAddress *serverAddress;
// quit-variable (communication with threads)
bool quit;
bool established;
// clientlist
ENetPeer *server;
boost::thread *receiverThread_;
+};
- static boost::recursive_mutex enet_mutex_;
- };
@@ -109,7 +103,6 @@
-
}
#endif /* _ClientConnection_H__ */
Modified: trunk/src/network/ClientInformation.cc
===================================================================
--- trunk/src/network/ClientInformation.cc 2009-03-09 15:48:59 UTC (rev 2772)
+++ trunk/src/network/ClientInformation.cc 2009-03-11 15:06:31 UTC (rev 2773)
@@ -40,6 +40,7 @@
#include "ClientInformation.h"
+#include <enet/enet.h>
#include <iostream> //debug
namespace orxonox
@@ -161,7 +162,7 @@
failures_=0;
}
- enet_uint32 ClientInformation::getRTT(){
+ uint32_t ClientInformation::getRTT(){
return this->peer_->roundTripTime;
}
Modified: trunk/src/network/ClientInformation.h
===================================================================
--- trunk/src/network/ClientInformation.h 2009-03-09 15:48:59 UTC (rev 2772)
+++ trunk/src/network/ClientInformation.h 2009-03-11 15:06:31 UTC (rev 2773)
@@ -42,14 +42,6 @@
#include "NetworkPrereqs.h"
-#ifndef WIN32_LEAN_AND_MEAN
-# define WIN32_LEAN_AND_MEAN
-#endif
-#define NOMINMAX // required to stop windows.h screwing up std::min definition
-#include <enet/enet.h>
-#include <boost/thread/recursive_mutex.hpp>
-
-
// WATCH OUT: THE CLIENTINFORMATION LIST IS NOT THREADSAFE ANYMORE
namespace orxonox
@@ -86,7 +78,7 @@
int getFailures();
void addFailure();
void resetFailures();
- enet_uint32 getRTT();
+ uint32_t getRTT();
double getPacketLoss();
static bool removeClient(unsigned int clientID);
Modified: trunk/src/network/ConnectionManager.cc
===================================================================
--- trunk/src/network/ConnectionManager.cc 2009-03-09 15:48:59 UTC (rev 2772)
+++ trunk/src/network/ConnectionManager.cc 2009-03-11 15:06:31 UTC (rev 2773)
@@ -39,11 +39,13 @@
#include "ConnectionManager.h"
+#include <enet/enet.h>
#include <iostream>
-#include <assert.h>
+#include <cassert>
// boost.thread library for multithreading support
#include <boost/thread/thread.hpp>
#include <boost/bind.hpp>
+#include <boost/thread/recursive_mutex.hpp>
#include "util/Math.h"
#include "util/Sleep.h"
@@ -64,6 +66,7 @@
namespace orxonox
{
//boost::thread_group network_threads;
+ static boost::recursive_mutex enet_mutex_g;
ConnectionManager *ConnectionManager::instance_=0;
@@ -71,39 +74,43 @@
assert(instance_==0);
instance_=this;
quit=false;
- bindAddress.host = ENET_HOST_ANY;
- bindAddress.port = NETWORK_PORT;
+ bindAddress = new ENetAddress();
+ bindAddress->host = ENET_HOST_ANY;
+ bindAddress->port = NETWORK_PORT;
}
- boost::recursive_mutex ConnectionManager::enet_mutex;
ConnectionManager::ConnectionManager(int port){
assert(instance_==0);
instance_=this;
quit=false;
- bindAddress.host = ENET_HOST_ANY;
- bindAddress.port = port;
+ bindAddress = new ENetAddress();
+ bindAddress->host = ENET_HOST_ANY;
+ bindAddress->port = port;
}
ConnectionManager::ConnectionManager(int port, const std::string& address) :receiverThread_(0) {
assert(instance_==0);
instance_=this;
quit=false;
- enet_address_set_host (& bindAddress, address.c_str());
- bindAddress.port = NETWORK_PORT;
+ bindAddress = new ENetAddress();
+ enet_address_set_host (bindAddress, address.c_str());
+ bindAddress->port = NETWORK_PORT;
}
ConnectionManager::ConnectionManager(int port, const char *address) : receiverThread_(0) {
assert(instance_==0);
instance_=this;
quit=false;
- enet_address_set_host (& bindAddress, address);
- bindAddress.port = NETWORK_PORT;
+ bindAddress = new ENetAddress();
+ enet_address_set_host (bindAddress, address);
+ bindAddress->port = NETWORK_PORT;
}
ConnectionManager::~ConnectionManager(){
if(!quit)
quitListener();
instance_=0;
+ delete bindAddress;
}
@@ -131,7 +138,7 @@
bool ConnectionManager::addPacket(ENetPacket *packet, ENetPeer *peer) {
- boost::recursive_mutex::scoped_lock lock(ConnectionManager::enet_mutex);
+ boost::recursive_mutex::scoped_lock lock(enet_mutex_g);
if(enet_peer_send(peer, NETWORK_DEFAULT_CHANNEL, packet)!=0)
return false;
return true;
@@ -149,7 +156,7 @@
bool ConnectionManager::addPacketAll(ENetPacket *packet) {
if(!instance_)
return false;
- boost::recursive_mutex::scoped_lock lock(ConnectionManager::enet_mutex);
+ boost::recursive_mutex::scoped_lock lock(enet_mutex_g);
for(ClientInformation *i=ClientInformation::getBegin()->next(); i!=0; i=i->next()){
COUT(3) << "adding broadcast packet for client: " << i->getID() << std::endl;
if(enet_peer_send(i->getPeer(), 0, packet)!=0)
@@ -162,7 +169,7 @@
bool ConnectionManager::sendPackets() {
if(server==NULL || !instance_)
return false;
- boost::recursive_mutex::scoped_lock lock(ConnectionManager::enet_mutex);
+ boost::recursive_mutex::scoped_lock lock(enet_mutex_g);
enet_host_flush(server);
lock.unlock();
return true;
@@ -173,9 +180,9 @@
ENetEvent *event;
atexit(enet_deinitialize);
{ //scope of the mutex
- boost::recursive_mutex::scoped_lock lock(ConnectionManager::enet_mutex);
+ boost::recursive_mutex::scoped_lock lock(enet_mutex_g);
enet_initialize();
- server = enet_host_create(&bindAddress, NETWORK_MAX_CONNECTIONS, 0, 0);
+ server = enet_host_create(bindAddress, NETWORK_MAX_CONNECTIONS, 0, 0);
lock.unlock();
}
if(server==NULL){
@@ -187,7 +194,7 @@
event = new ENetEvent;
while(!quit){
{ //mutex scope
- boost::recursive_mutex::scoped_lock lock(ConnectionManager::enet_mutex);
+ boost::recursive_mutex::scoped_lock lock(enet_mutex_g);
if(enet_host_service(server, event, NETWORK_WAIT_TIMEOUT)<0){
// we should never reach this point
quit=true;
@@ -215,7 +222,7 @@
disconnectClients();
// if we're finishied, destroy server
{
- boost::recursive_mutex::scoped_lock lock(ConnectionManager::enet_mutex);
+ boost::recursive_mutex::scoped_lock lock(enet_mutex_g);
enet_host_destroy(server);
lock.unlock();
}
@@ -229,7 +236,7 @@
ClientInformation *temp = ClientInformation::getBegin()->next();
while(temp!=0){
{
- boost::recursive_mutex::scoped_lock lock(ConnectionManager::enet_mutex);
+ boost::recursive_mutex::scoped_lock lock(enet_mutex_g);
enet_peer_disconnect(temp->getPeer(), 0);
lock.unlock();
}
@@ -237,7 +244,7 @@
}
//bugfix: might be the reason why server crashes when clients disconnects
temp = ClientInformation::getBegin()->next();
- boost::recursive_mutex::scoped_lock lock(ConnectionManager::enet_mutex);
+ boost::recursive_mutex::scoped_lock lock(enet_mutex_g);
while( temp!=0 && enet_host_service(server, &event, NETWORK_WAIT_TIMEOUT) >= 0){
switch (event.type)
{
@@ -266,12 +273,12 @@
- int ConnectionManager::getClientID(ENetPeer peer) {
- return getClientID(peer.address);
+ int ConnectionManager::getClientID(ENetPeer* peer) {
+ return getClientID(&(peer->address));
}
- int ConnectionManager::getClientID(ENetAddress address) {
- return ClientInformation::findClient(&address)->getID();
+ int ConnectionManager::getClientID(ENetAddress* address) {
+ return ClientInformation::findClient(address)->getID();
}
ENetPeer *ConnectionManager::getClientPeer(int clientID) {
@@ -293,7 +300,7 @@
void ConnectionManager::disconnectClient(ClientInformation *client){
{
- boost::recursive_mutex::scoped_lock lock(ConnectionManager::enet_mutex);
+ boost::recursive_mutex::scoped_lock lock(enet_mutex_g);
enet_peer_disconnect(client->getPeer(), 0);
lock.unlock();
}
Modified: trunk/src/network/ConnectionManager.h
===================================================================
--- trunk/src/network/ConnectionManager.h 2009-03-09 15:48:59 UTC (rev 2772)
+++ trunk/src/network/ConnectionManager.h 2009-03-11 15:06:31 UTC (rev 2773)
@@ -44,24 +44,12 @@
#include <string>
#include <map>
-// enet library for networking support
-#ifndef WIN32_LEAN_AND_MEAN
-# define WIN32_LEAN_AND_MEAN
-#endif
-#define NOMINMAX // required to stop windows.h screwing up std::min definition
-#include <enet/enet.h>
-#include <boost/thread/recursive_mutex.hpp>
#include "PacketBuffer.h"
#include "packet/Packet.h"
namespace boost { class thread; }
-namespace std
-{
- bool operator<(ENetAddress a, ENetAddress b);
-}
-
namespace orxonox
{
const int NETWORK_PORT = 55556;
@@ -77,7 +65,6 @@
class _NetworkExport ConnectionManager{
public:
- static boost::recursive_mutex enet_mutex;
ConnectionManager();
ConnectionManager(int port);
ConnectionManager(int port, const char *address);
@@ -95,16 +82,17 @@
void syncClassid(unsigned int clientID);
private:
+ ConnectionManager(const ConnectionManager& copy); // not used
bool processData(ENetEvent *event);
void receiverThread();
void disconnectClients();
- int getClientID(ENetPeer peer);
- int getClientID(ENetAddress address);
+ int getClientID(ENetPeer* peer);
+ int getClientID(ENetAddress* address);
ENetPeer *getClientPeer(int clientID);
PacketBuffer buffer;
ENetHost *server;
- ENetAddress bindAddress;
+ ENetAddress *bindAddress;
bool quit; // quit-variable (communication with threads)
Modified: trunk/src/network/GamestateHandler.cc
===================================================================
--- trunk/src/network/GamestateHandler.cc 2009-03-09 15:48:59 UTC (rev 2772)
+++ trunk/src/network/GamestateHandler.cc 2009-03-11 15:06:31 UTC (rev 2773)
@@ -1,4 +1,4 @@
-#include <assert.h>
+#include <cassert>
#include "GamestateHandler.h"
#include "packet/Packet.h"
Modified: trunk/src/network/Host.cc
===================================================================
--- trunk/src/network/Host.cc 2009-03-09 15:48:59 UTC (rev 2772)
+++ trunk/src/network/Host.cc 2009-03-11 15:06:31 UTC (rev 2773)
@@ -26,7 +26,7 @@
*
*/
-#include <assert.h>
+#include <cassert>
#include "Host.h"
#include "core/ConsoleCommand.h"
Modified: trunk/src/network/NetworkPrereqs.h
===================================================================
--- trunk/src/network/NetworkPrereqs.h 2009-03-09 15:48:59 UTC (rev 2772)
+++ trunk/src/network/NetworkPrereqs.h 2009-03-11 15:06:31 UTC (rev 2773)
@@ -68,6 +68,19 @@
//-----------------------------------------------------------------------
// Forward declarations
//-----------------------------------------------------------------------
+
+// from ENet
+struct _ENetPeer;
+typedef _ENetPeer ENetPeer;
+struct _ENetPacket;
+typedef _ENetPacket ENetPacket;
+struct _ENetEvent;
+typedef _ENetEvent ENetEvent;
+struct _ENetHost;
+typedef _ENetHost ENetHost;
+struct _ENetAddress;
+typedef _ENetAddress ENetAddress;
+
namespace orxonox
{
class Client;
Modified: trunk/src/network/PacketBuffer.cc
===================================================================
--- trunk/src/network/PacketBuffer.cc 2009-03-09 15:48:59 UTC (rev 2772)
+++ trunk/src/network/PacketBuffer.cc 2009-03-11 15:06:31 UTC (rev 2773)
@@ -32,15 +32,17 @@
#include "PacketBuffer.h"
+#include <enet/enet.h>
#include <iostream>
#include <queue>
#include <string>
#include <boost/bind.hpp>
#include <boost/thread/mutex.hpp>
+#include <boost/thread/recursive_mutex.hpp>
namespace orxonox
{
- boost::recursive_mutex PacketBuffer::mutex_;
+ static boost::recursive_mutex packetBuffer_mutex_g;
PacketBuffer::PacketBuffer() {
closed=false;
@@ -51,7 +53,7 @@
bool PacketBuffer::push(ENetEvent *ev) {
- boost::recursive_mutex::scoped_lock lock(mutex_);
+ boost::recursive_mutex::scoped_lock lock(packetBuffer_mutex_g);
//std::cout << "event size inside packetbuffer " << ev->packet->dataLength << std::endl;
// if(closed)
// return false;
@@ -85,7 +87,7 @@
}*/
ENetEvent *PacketBuffer::pop(){
- boost::recursive_mutex::scoped_lock lock(mutex_);
+ boost::recursive_mutex::scoped_lock lock(packetBuffer_mutex_g);
//std::cout << "packetbuffer pop(address)" << std::endl;
if(first!=NULL /*&& !closed*/){
QueueItem *temp = first;
@@ -105,7 +107,7 @@
}
/*ENetPacket *PacketBuffer::pop(ENetAddress &address) {
- boost::recursive_mutex::scoped_lock lock(mutex_);
+ boost::recursive_mutex::scoped_lock lock(packetBuffer_mutex_g);
//std::cout << "packetbuffer pop(address)" << std::endl;
if(first!=NULL ){
QueueItem *temp = first;
Modified: trunk/src/network/PacketBuffer.h
===================================================================
--- trunk/src/network/PacketBuffer.h 2009-03-09 15:48:59 UTC (rev 2772)
+++ trunk/src/network/PacketBuffer.h 2009-03-11 15:06:31 UTC (rev 2773)
@@ -43,13 +43,6 @@
#include "NetworkPrereqs.h"
-#ifndef WIN32_LEAN_AND_MEAN
-# define WIN32_LEAN_AND_MEAN
-#endif
-#define NOMINMAX // required to stop windows.h screwing up std::min definition
-#include <enet/enet.h>
-#include <boost/thread/recursive_mutex.hpp>
-
namespace orxonox
{
struct _NetworkExport PacketEnvelope{
@@ -81,7 +74,6 @@
QueueItem *first;
QueueItem *last;
bool closed;
- static boost::recursive_mutex mutex_;
};
} //namespace
Modified: trunk/src/network/Server.cc
===================================================================
--- trunk/src/network/Server.cc 2009-03-09 15:48:59 UTC (rev 2772)
+++ trunk/src/network/Server.cc 2009-03-11 15:06:31 UTC (rev 2773)
@@ -40,6 +40,7 @@
#include "Server.h"
+#include <enet/enet.h>
#include <iostream>
#include <cassert>
@@ -56,7 +57,7 @@
#include "packet/Packet.h"
#include "packet/Welcome.h"
#include "packet/DeleteObjects.h"
-#include <util/Convert.h>
+#include "util/Convert.h"
#include "ChatListener.h"
namespace orxonox
Modified: trunk/src/network/packet/Chat.cc
===================================================================
--- trunk/src/network/packet/Chat.cc 2009-03-09 15:48:59 UTC (rev 2772)
+++ trunk/src/network/packet/Chat.cc 2009-03-11 15:06:31 UTC (rev 2773)
@@ -27,7 +27,9 @@
*/
#include "Chat.h"
-#include <assert.h>
+
+#include <enet/enet.h>
+#include <cassert>
#include "network/Host.h"
namespace orxonox {
Modified: trunk/src/network/packet/ClassID.cc
===================================================================
--- trunk/src/network/packet/ClassID.cc 2009-03-09 15:48:59 UTC (rev 2772)
+++ trunk/src/network/packet/ClassID.cc 2009-03-11 15:06:31 UTC (rev 2773)
@@ -29,11 +29,12 @@
#include "ClassID.h"
+#include <enet/enet.h>
#include "core/CoreIncludes.h"
#include "core/Factory.h"
#include <cstring>
#include <string>
-#include <assert.h>
+#include <cassert>
#include <map>
#include <queue>
Modified: trunk/src/network/packet/DeleteObjects.cc
===================================================================
--- trunk/src/network/packet/DeleteObjects.cc 2009-03-09 15:48:59 UTC (rev 2772)
+++ trunk/src/network/packet/DeleteObjects.cc 2009-03-11 15:06:31 UTC (rev 2773)
@@ -28,14 +28,10 @@
#include "DeleteObjects.h"
-#ifndef WIN32_LEAN_AND_MEAN
-# define WIN32_LEAN_AND_MEAN
-#endif
-#define NOMINMAX // required to stop windows.h screwing up std::min definition
#include <enet/enet.h>
#include "network/synchronisable/Synchronisable.h"
#include "core/CoreIncludes.h"
-#include <assert.h>
+#include <cassert>
namespace orxonox {
namespace packet {
Modified: trunk/src/network/packet/Gamestate.cc
===================================================================
--- trunk/src/network/packet/Gamestate.cc 2009-03-09 15:48:59 UTC (rev 2772)
+++ trunk/src/network/packet/Gamestate.cc 2009-03-11 15:06:31 UTC (rev 2773)
@@ -27,6 +27,9 @@
*/
#include "Gamestate.h"
+#include <enet/enet.h>
+#include <zlib.h>
+#include <cassert>
#include "../GamestateHandler.h"
#include "../synchronisable/Synchronisable.h"
#include "../TrafficControl.h"
@@ -34,8 +37,6 @@
#include "core/CoreIncludes.h"
#include "core/Iterator.h"
-#include <zlib.h>
-#include <cassert>
Modified: trunk/src/network/packet/Packet.cc
===================================================================
--- trunk/src/network/packet/Packet.cc 2009-03-09 15:48:59 UTC (rev 2772)
+++ trunk/src/network/packet/Packet.cc 2009-03-11 15:06:31 UTC (rev 2773)
@@ -30,12 +30,9 @@
#include "Packet.h"
#include <cassert>
-#ifndef WIN32_LEAN_AND_MEAN
-# define WIN32_LEAN_AND_MEAN
-#endif
-#define NOMINMAX // required to stop windows.h screwing up std::min definition
#include <enet/enet.h>
#include <boost/bind.hpp>
+#include <boost/thread/recursive_mutex.hpp>
#include "network/ConnectionManager.h"
#include "network/ClientInformation.h"
@@ -57,7 +54,8 @@
#define _PACKETID 0
std::map<size_t, Packet *> Packet::packetMap_;
-boost::recursive_mutex Packet::packetMap_mutex;
+//! Static mutex for any packetMap_ access
+static boost::recursive_mutex packetMap_mutex_g;
Packet::Packet(){
flags_ = PACKET_FLAG_DEFAULT;
@@ -141,7 +139,7 @@
{
// Assures we don't create a packet and destroy it right after in another thread
// without having a reference in the packetMap_
- boost::recursive_mutex::scoped_lock lock(Packet::packetMap_mutex);
+ boost::recursive_mutex::scoped_lock lock(packetMap_mutex_g);
packetMap_[(size_t)(void*)enetPacket_] = this;
}
}
@@ -216,7 +214,7 @@
data we allocated ourselves.
*/
void Packet::deletePacket(ENetPacket *enetPacket){
- boost::recursive_mutex::scoped_lock lock(Packet::packetMap_mutex);
+ boost::recursive_mutex::scoped_lock lock(packetMap_mutex_g);
// Get our Packet from a gloabal map with all Packets created in the send() method of Packet.
std::map<size_t, Packet*>::iterator it = packetMap_.find((size_t)enetPacket);
assert(it != packetMap_.end());
Modified: trunk/src/network/packet/Packet.h
===================================================================
--- trunk/src/network/packet/Packet.h 2009-03-09 15:48:59 UTC (rev 2772)
+++ trunk/src/network/packet/Packet.h 2009-03-11 15:06:31 UTC (rev 2773)
@@ -31,12 +31,6 @@
#include "network/NetworkPrereqs.h"
#include <map>
-#ifndef WIN32_LEAN_AND_MEAN
-# define WIN32_LEAN_AND_MEAN
-#endif
-#define NOMINMAX // required to stop windows.h screwing up std::min definition
-#include <enet/enet.h>
-#include <boost/thread/recursive_mutex.hpp>
namespace orxonox {
@@ -71,7 +65,7 @@
virtual unsigned char *getData(){ return data_; };
virtual unsigned int getSize() const =0;
virtual bool process()=0;
- enet_uint32 getFlags()
+ uint32_t getFlags()
{ return flags_; }
int getClientID()
{ return clientID_; }
@@ -83,7 +77,7 @@
Packet();
Packet(uint8_t *data, unsigned int clientID);
// Packet(ENetPacket *packet, ENetPeer *peer);
- enet_uint32 flags_;
+ uint32_t flags_;
unsigned int clientID_;
ENUM::Direction packetDirection_;
/** Pointer to the data. Be careful when deleting it because it might
@@ -95,8 +89,6 @@
bool bDataENetAllocated_;
private:
static std::map<size_t, Packet *> packetMap_;
- //! Static mutex for any packetMap_ access
- static boost::recursive_mutex packetMap_mutex;
ENetPacket *enetPacket_;
};
Modified: trunk/src/network/packet/Welcome.cc
===================================================================
--- trunk/src/network/packet/Welcome.cc 2009-03-09 15:48:59 UTC (rev 2772)
+++ trunk/src/network/packet/Welcome.cc 2009-03-11 15:06:31 UTC (rev 2773)
@@ -30,10 +30,11 @@
#include "Welcome.h"
+#include <enet/enet.h>
+#include <cassert>
#include "network/Host.h"
#include "network/synchronisable/Synchronisable.h"
#include "core/CoreIncludes.h"
-#include <assert.h>
namespace orxonox {
namespace packet {
Modified: trunk/src/network/synchronisable/Synchronisable.cc
===================================================================
--- trunk/src/network/synchronisable/Synchronisable.cc 2009-03-09 15:48:59 UTC (rev 2772)
+++ trunk/src/network/synchronisable/Synchronisable.cc 2009-03-11 15:06:31 UTC (rev 2773)
@@ -33,7 +33,7 @@
#include <cstring>
#include <string>
#include <iostream>
-#include <assert.h>
+#include <cassert>
#include "core/CoreIncludes.h"
#include "core/BaseObject.h"
Modified: trunk/src/network/synchronisable/Synchronisable.h
===================================================================
--- trunk/src/network/synchronisable/Synchronisable.h 2009-03-09 15:48:59 UTC (rev 2772)
+++ trunk/src/network/synchronisable/Synchronisable.h 2009-03-11 15:06:31 UTC (rev 2773)
@@ -38,10 +38,6 @@
#include "util/Math.h"
#include "util/mbool.h"
#include "core/OrxonoxClass.h"
-// TODO: this has to be removed
-// #include <OgreLight.h>
-// #include "OrxonoxPrereqs.h"
-// ============================
#include "NetworkCallback.h"
#include "SynchronisableVariable.h"
Modified: trunk/src/util/CMakeLists.txt
===================================================================
--- trunk/src/util/CMakeLists.txt 2009-03-09 15:48:59 UTC (rev 2772)
+++ trunk/src/util/CMakeLists.txt 2009-03-11 15:06:31 UTC (rev 2773)
@@ -46,6 +46,7 @@
OutputBuffer.cc
OutputHandler.cc
SignalHandler.cc
+ Sleep.cc
String.cc
SubString.cc
)
Added: trunk/src/util/Sleep.cc
===================================================================
--- trunk/src/util/Sleep.cc (rev 0)
+++ trunk/src/util/Sleep.cc 2009-03-11 15:06:31 UTC (rev 2773)
@@ -0,0 +1,79 @@
+/*
+ * ORXONOX - the hottest 3D action shooter ever to exist
+ * > www.orxonox.net <
+ *
+ *
+ * License notice:
+ *
+ * This program 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; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program 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. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Author:
+ * Reto Grieder
+ * Co-authors:
+ * ...
+ *
+ */
+
+/**
+ @file
+ @brief Implementation of three sleep functions.
+*/
+
+#include "Sleep.h"
+#include "Debug.h"
+
+#ifdef ORXONOX_PLATFORM_WINDOWS
+#include <windows.h>
+
+namespace orxonox
+{
+ void usleep(unsigned long microseconds)
+ {
+ if (microseconds < 1000)
+ COUT(2) << "Warning: Windows can not sleep less than 1ms, ignoring" << std::endl;
+ Sleep(microseconds / 1000);
+ }
+
+ void msleep(unsigned long milliseconds)
+ {
+ Sleep(milliseconds);
+ }
+
+ void sleep(unsigned long seconds)
+ {
+ Sleep(seconds * 1000);
+ }
+}
+
+#else /* Linux/Apple */
+#include <unistd.h>
+
+namespace orxonox
+{
+ inline void usleep(unsigned long usec)
+ {
+ ::usleep(usec);
+ }
+ inline void msleep(unsigned long msec)
+ {
+ ::usleep(msec * 1000);
+ }
+ inline void sleep(unsigned long sec)
+ {
+ ::usleep(sec * 1000000);
+ }
+}
+
+#endif
Property changes on: trunk/src/util/Sleep.cc
___________________________________________________________________
Added: svn:eol-style
+ native
Modified: trunk/src/util/Sleep.h
===================================================================
--- trunk/src/util/Sleep.h 2009-03-09 15:48:59 UTC (rev 2772)
+++ trunk/src/util/Sleep.h 2009-03-11 15:06:31 UTC (rev 2773)
@@ -29,7 +29,7 @@
/**
@file
@brief
- Functions for using sleep() and usleep() under windows.
+ Functions for using sleep() and usleep() on windows.
*/
#ifndef _Sleep_H__
@@ -37,47 +37,11 @@
#include "UtilPrereqs.h"
-#ifdef ORXONOX_PLATFORM_WINDOWS
-#include <winbase.h>
-
namespace orxonox
{
- inline void usleep(DWORD dwMicroseconds)
- {
- Sleep(dwMicroseconds / 1000);
- }
-
- inline void msleep(DWORD dwMilliseconds)
- {
- Sleep(dwMilliseconds);
- }
-
- inline void sleep(DWORD dwSeconds)
- {
- Sleep(dwSeconds * 1000);
- }
+ _UtilExport void usleep(unsigned long microseconds);
+ _UtilExport void msleep(unsigned long milliseconds);
+ _UtilExport void sleep (unsigned long seconds);
}
-#else /* Linux/Apple */
-
-#include <unistd.h>
-
-namespace orxonox
-{
- inline void usleep(unsigned long usec)
- {
- ::usleep(usec);
- }
- inline void msleep(unsigned long msec)
- {
- ::usleep(msec * 1000);
- }
- inline void sleep(unsigned long sec)
- {
- ::usleep(sec * 1000000);
- }
-}
-
-#endif
-
#endif /* _Sleep_H__ */
More information about the Orxonox-commit
mailing list