Vegastrike 0.5.1 rc1  1.0
Original sources for Vegastrike Evolved
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
vsnet_debug.h File Reference
#include <boost/version.hpp>
#include <config.h>
#include <iostream>
#include <assert.h>
#include <stdio.h>

Go to the source code of this file.

Macros

#define VSNET_DEBUG
 
#define COUT   vsnetDbgOut( __FILE__, __LINE__ )
 
#define FIND_WIN_NBIO
 
#define PTHREAD_SELF_OR_NONE   0
 
#define DECLARE_VALID
 
#define MAKE_VALID
 
#define MAKE_INVALID
 
#define CHECK_VALID   validate( __FILE__, __LINE__ );
 
#define CHECK_VALID_OBJ(a)   (a).validate( __FILE__, __LINE__ );
 
#define ASSERT(a)
 
#define PSEUDO__LINE__(x)   __LINE__
 

Functions

std::ostream & vsnetDbgOut (const char *file, int line)
 

Macro Definition Documentation

#define ASSERT (   a)
Value:
if ( !(a) ) {std::cerr<<__FILE__<<":"<<__LINE__ \
<<" assertion failed, forcing segfault for postmortem debugging"; int x = 1/0; }

Definition at line 75 of file vsnet_debug.h.

#define CHECK_VALID_OBJ (   a)    (a).validate( __FILE__, __LINE__ );

Definition at line 72 of file vsnet_debug.h.

#define COUT   vsnetDbgOut( __FILE__, __LINE__ )

Definition at line 25 of file vsnet_debug.h.

Referenced by ServerSocketTCP::acceptNewConn(), AcctLogout(), ZoneMgr::addClient(), NetClient::AddClientObject(), VsnetDownload::Server::Manager::addCmdDownload(), VsnetDownload::Client::Manager::addItems(), NetClient::AddObjects(), ZoneMgr::addPosition(), ZoneMgr::addZone(), NetClient::authenticate(), ZoneMgr::broadcast(), VsnetDownload::Client::Item::changeState(), ServerSocket::child_disconnect(), VsnetTCPSocket::child_disconnect(), VsnetDownload::Server::Manager::cleanDownload(), NetUIBase::createClientSocket(), NetUIBase::createServerSocket(), NetUITCP::createServerSocket(), NetUIUDP::createServerSocket(), NetUITCP::createSocket(), NetUIUDP::createSocket(), NetClient::downloadZoneInfo(), ZoneMgr::getZoneBuffer(), NetClient::inGame(), NetClient::init(), NetClient::init_acct(), VsnetDownload::Server::LOCALCONST_DEF(), NetClient::loginAccept(), NetClient::loginAcctLoop(), NetClient::loginAuth(), NetClient::loginLoop(), NetUIBase::lookupHost(), VsnetDownload::Server::Manager::lower_check_queues(), VsnetTCPSocket::lower_clean_sendbuf(), VsnetUDPSocket::lower_selected(), VsnetHTTPSocket::lower_selected(), VsnetTCPSocket::lower_selected(), ServerSocketTCP::lower_selected(), VsnetHTTPSocket::lower_sendbuf(), VsnetTCPSocket::lower_sendbuf(), VsnetDownload::Client::Manager::Manager(), VsnetDownload::Server::Manager::Manager(), VsnetTCPSocket::need_test_writable(), Packet::Packet(), VsnetDownload::Client::Manager::processCmdDownload(), UniverseUtil::receivedCustom(), NetClient::Reconnect(), VsnetTCPSocket::recvbuf(), AccountServer::recvMsg(), AccountServer::removeDeadSockets(), NetServer::saveAccount(), VsnetUDPSocket::sendbuf(), NetServer::sendNewUnitQueue(), NetClient::sendPosition(), VsnetSocketBase::set_block(), VsnetSocketBase::set_nonblock(), AccountServer::start(), NetServer::start(), static_initNetwork(), NetClient::synchronizeTime(), VsnetDownload::Client::TestItem::TestItem(), VsnetTCPSocket::VsnetTCPSocket(), SocketSet::wait(), and VsnetTCPSocket::~VsnetTCPSocket().

#define DECLARE_VALID
Value:
private: \
bool _valid; \
bool _invalid; \
public: \
void validate( const char *file, int line ) const { \
if (!_valid || _invalid) { \
fprintf( stderr, "object invalid in %s:%d:%d\n", file, line, PTHREAD_SELF_OR_NONE ); \
} \
assert( _valid ); \
assert( !_invalid ); \
}

Definition at line 48 of file vsnet_debug.h.

#define FIND_WIN_NBIO

Definition at line 29 of file vsnet_debug.h.

#define MAKE_INVALID
Value:
_valid = false; \
_invalid = true;

Definition at line 65 of file vsnet_debug.h.

Referenced by Packet::~Packet(), PacketMem::~PacketMem(), and VsnetSocketBase::~VsnetSocketBase().

#define MAKE_VALID
Value:
_valid = true; \
_invalid = false;

Definition at line 61 of file vsnet_debug.h.

Referenced by Packet::Packet(), PacketMem::PacketMem(), and VsnetSocketBase::VsnetSocketBase().

#define PTHREAD_SELF_OR_NONE   0

The following macros are intended for default versions a class validity debugging. The idea is to increase the likelyhood that uninitialized and re-initialized memory areas are captured as well as possible.

Definition at line 40 of file vsnet_debug.h.

Referenced by vsnetDbgOut().

#define VSNET_DEBUG

Definition at line 12 of file vsnet_debug.h.

Function Documentation

std::ostream& vsnetDbgOut ( const char *  file,
int  line 
)

Definition at line 27 of file vsnet_debug.cpp.

References accountXML::file, and PTHREAD_SELF_OR_NONE.

28 {
29  const char *printme = file;
30  int len = strlen( file );
31  if (len > 30) printme = &file[len-30];
32 #ifdef VSNET_DEBUG
33  clog<<PTHREAD_SELF_OR_NONE<<" "
34  <<time_trigger
35  <<" "<<printme<<":"<<line<<" ";
36 #else /* !VSNET_DEBUG */
37  clog<<printme<<":"<<line<<" ";
38 #endif /* VSNET_DEBUG */
39  return clog;
40 }