Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Aug 23, 2011, 12:45:53 AM (13 years ago)
Author:
landauf
Message:

merged output branch back to trunk.

Changes:

  • you have to include util/Output.h instead of util/Debug.h
  • COUT(x) is now called orxout(level)
  • output levels are now defined by an enum instead of numbers. see util/Output.h for the definition
  • it's possible to use output contexts with orxout(level, context). see util/Output.h for some common contexts. you can define more contexts
  • you must use 'endl' at the end of an output message, '\n' does not flush the message

Output levels:

  • instead of COUT(0) use orxout()
  • instead of COUT(1) use orxout(user_error) or orxout(internal_error)
  • instead of COUT(2) use orxout(user_warning) or orxout(internal_warning)
  • instead of COUT(3) use orxout(user_status/user_info) or orxout(internal_status/internal_info)
  • instead of COUT(4) use orxout(verbose)
  • instead of COUT(5) use orxout(verbose_more)
  • instead of COUT(6) use orxout(verbose_ultra)

Guidelines:

  • user_* levels are for the user, visible in the console and the log-file
  • internal_* levels are for developers, visible in the log-file
  • verbose_* levels are for debugging, only visible if the context of the output is activated

Usage in C++:

  • orxout() << "message" << endl;
  • orxout(level) << "message" << endl;
  • orxout(level, context) << "message" << endl;

Usage in Lua:

  • orxout("message")
  • orxout(orxonox.level.levelname, "message")
  • orxout(orxonox.level.levelname, "context", "message")

Usage in Tcl (and in the in-game-console):

  • orxout levelname message
  • orxout_context levelname context message
  • shortcuts: log message, error message, warning message, status message, info message, debug message
Location:
code/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • code/trunk

  • code/trunk/src/libraries/network/packet/Gamestate.cc

    r8394 r8858  
    3131#include <zlib.h>
    3232
    33 #include "util/Debug.h"
     33#include "util/Output.h"
    3434#include "util/OrxAssert.h"
    3535#include "core/GameMode.h"
     
    108108  uint32_t size = calcGamestateSize(id, mode);
    109109
    110   COUT(5) << "G.ST.Man: producing gamestate with id: " << id << std::endl;
     110  orxout(verbose_more, context::packets) << "G.ST.Man: producing gamestate with id: " << id << endl;
    111111  if(size==0)
    112112    return false;
     
    114114  if(!data_)
    115115  {
    116     COUT(2) << "GameStateManager: could not allocate memory" << std::endl;
     116    orxout(internal_warning, context::packets) << "GameStateManager: could not allocate memory" << endl;
    117117    return false;
    118118  }
     
    139139      assert(0); // if we don't use multithreading this part shouldn't be neccessary
    140140      // start allocate additional memory
    141       COUT(3) << "Gamestate: need additional memory" << std::endl;
     141      orxout(internal_info, context::packets) << "Gamestate: need additional memory" << endl;
    142142      ObjectList<Synchronisable>::iterator temp = it;
    143143      uint32_t addsize=tempsize;
     
    167167  //stop write gamestate header
    168168
    169   COUT(5) << "Gamestate: Gamestate size: " << currentsize << std::endl;
    170   COUT(5) << "Gamestate: 'estimated' (and corrected) Gamestate size: " << size << std::endl;
     169  orxout(verbose_more, context::packets) << "Gamestate: Gamestate size: " << currentsize << endl;
     170  orxout(verbose_more, context::packets) << "Gamestate: 'estimated' (and corrected) Gamestate size: " << size << endl;
    171171  return true;
    172172}
     
    175175bool Gamestate::spreadData(uint8_t mode)
    176176{
    177   COUT(5) << "processing gamestate with id " << header_.getID() << endl;
     177  orxout(verbose_more, context::packets) << "processing gamestate with id " << header_.getID() << endl;
    178178  assert(data_);
    179179  assert(!header_.isCompressed());
     
    195195      else
    196196      {
    197 //         COUT(4) << "not creating object of classid " << objectheader.getClassID() << endl;
     197//         orxout(verbose, context::packets) << "not creating object of classid " << objectheader.getClassID() << endl;
    198198        mem += objectheader.getDataSize() + ( objectheader.isDiffed() ? SynchronisableHeaderLight::getSize() : SynchronisableHeader::getSize() );
    199199      }
     
    201201    else
    202202    {
    203 //       COUT(4) << "updating object of classid " << objectheader.getClassID() << endl;
     203//       orxout(verbose, context::packets) << "updating object of classid " << objectheader.getClassID() << endl;
    204204      OrxVerify(s->updateData(mem, mode), "ERROR: could not update Synchronisable with Gamestate data");
    205205    }
     
    219219        if (it->objectMode_ != 0x0)
    220220        {
    221           COUT(0) << "Found object with OBJECTID_UNKNOWN on the client with objectMode != 0x0!" << std::endl;
    222           COUT(0) << "Possible reason for this error: Client created a synchronized object without the Server's approval." << std::endl;
    223           COUT(0) << "Objects class: " << it->getIdentifier()->getName() << std::endl;
     221          orxout(user_error, context::packets) << "Found object with OBJECTID_UNKNOWN on the client with objectMode != 0x0!" << endl;
     222          orxout(user_error, context::packets) << "Possible reason for this error: Client created a synchronized object without the Server's approval." << endl;
     223          orxout(user_error, context::packets) << "Objects class: " << it->getIdentifier()->getName() << endl;
    224224          assert(false);
    225225        }
     
    232232          if (it->getObjectID() == *it2)
    233233          {
    234             COUT(0) << "Found duplicate objectIDs on the client!" << std::endl
    235                     << "Are you sure you don't create a Sychnronisable objcect with 'new' \
    236                         that doesn't have objectMode = 0x0?" << std::endl;
     234            orxout(user_error, context::packets) << "Found duplicate objectIDs on the client!" << endl
     235                                                 << "Are you sure you don't create a Sychnronisable objcect with 'new' \
     236                                                     that doesn't have objectMode = 0x0?" << endl;
    237237            assert(false);
    238238          }
     
    293293  switch ( retval )
    294294  {
    295     case Z_OK: COUT(5) << "G.St.Man: compress: successfully compressed" << std::endl; break;
    296     case Z_MEM_ERROR: COUT(1) << "G.St.Man: compress: not enough memory available in gamestate.compress" << std::endl; return false;
    297     case Z_BUF_ERROR: COUT(2) << "G.St.Man: compress: not enough memory available in the buffer in gamestate.compress" << std::endl; return false;
    298     case Z_DATA_ERROR: COUT(2) << "G.St.Man: compress: data corrupted in gamestate.compress" << std::endl; return false;
     295    case Z_OK: orxout(verbose_more, context::packets) << "G.St.Man: compress: successfully compressed" << endl; break;
     296    case Z_MEM_ERROR: orxout(internal_error, context::packets) << "G.St.Man: compress: not enough memory available in gamestate.compress" << endl; return false;
     297    case Z_BUF_ERROR: orxout(internal_warning, context::packets) << "G.St.Man: compress: not enough memory available in the buffer in gamestate.compress" << endl; return false;
     298    case Z_DATA_ERROR: orxout(internal_warning, context::packets) << "G.St.Man: compress: data corrupted in gamestate.compress" << endl; return false;
    299299  }
    300300
     
    310310  header_.setCompSize( buffer );
    311311  header_.setCompressed( true );
    312   COUT(4) << "gamestate compress datasize: " << header_.getDataSize() << " compsize: " << header_.getCompSize() << std::endl;
     312  orxout(verbose, context::packets) << "gamestate compress datasize: " << header_.getDataSize() << " compsize: " << header_.getCompSize() << endl;
    313313  return true;
    314314}
     
    319319  assert(data_);
    320320  assert(header_.isCompressed());
    321   COUT(4) << "GameStateClient: uncompressing gamestate. id: " << header_.getID() << ", baseid: " << header_.getBaseID() << ", datasize: " << header_.getDataSize() << ", compsize: " << header_.getCompSize() << std::endl;
     321  orxout(verbose, context::packets) << "GameStateClient: uncompressing gamestate. id: " << header_.getID() << ", baseid: " << header_.getBaseID() << ", datasize: " << header_.getDataSize() << ", compsize: " << header_.getCompSize() << endl;
    322322  uint32_t datasize = header_.getDataSize();
    323323  uint32_t compsize = header_.getCompSize();
     
    333333  switch ( retval )
    334334  {
    335     case Z_OK: COUT(5) << "successfully decompressed" << std::endl; break;
    336     case Z_MEM_ERROR: COUT(1) << "not enough memory available" << std::endl; return false;
    337     case Z_BUF_ERROR: COUT(2) << "not enough memory available in the buffer" << std::endl; return false;
    338     case Z_DATA_ERROR: COUT(2) << "data corrupted (zlib)" << std::endl; return false;
     335    case Z_OK: orxout(verbose_more, context::packets) << "successfully decompressed" << endl; break;
     336    case Z_MEM_ERROR: orxout(internal_error, context::packets) << "not enough memory available" << endl; return false;
     337    case Z_BUF_ERROR: orxout(internal_warning, context::packets) << "not enough memory available in the buffer" << endl; return false;
     338    case Z_DATA_ERROR: orxout(internal_warning, context::packets) << "data corrupted (zlib)" << endl; return false;
    339339  }
    340340
     
    375375  if( memcmp( origDataPtr+objectOffset, baseDataPtr+objectOffset, objectHeader.getDataSize()) == 0 )
    376376  {
    377 //     COUT(4) << "skip object " << Synchronisable::getSynchronisable(objectHeader.getObjectID())->getIdentifier()->getName() << endl;
     377//     orxout(verbose, context::packets) << "skip object " << Synchronisable::getSynchronisable(objectHeader.getObjectID())->getIdentifier()->getName() << endl;
    378378    origDataPtr += objectOffset + objectHeader.getDataSize(); // skip the whole object
    379379    baseDataPtr += objectOffset + objectHeader.getDataSize();
     
    431431inline void /*Gamestate::*/copyObject( uint8_t*& newData, uint8_t*& origData, uint8_t*& baseData, SynchronisableHeader& objectHeader, std::vector<uint32_t>::iterator& sizes )
    432432{
    433   //       COUT(4) << "docopy" << endl;
     433  //       orxout(verbose, context::packets) << "docopy" << endl;
    434434  // Just copy over the whole Object
    435435  memcpy( newData, origData, objectHeader.getDataSize()+SynchronisableHeader::getSize() );
     
    440440//   SynchronisableHeader baseHeader( baseData );
    441441//   baseData += baseHeader.getDataSize()+SynchronisableHeader::getSize();
    442   //       COUT(4) << "copy " << h.getObjectID() << endl;
    443   //       COUT(4) << "copy " << h.getObjectID() << ":";
     442  //       orxout(verbose, context::packets) << "copy " << h.getObjectID() << endl;
     443  //       orxout(verbose, context::packets) << "copy " << h.getObjectID() << ":";
    444444  sizes += Synchronisable::getSynchronisable(objectHeader.getObjectID())->getNrOfVariables();
    445445//   for( unsigned int i = 0; i < Synchronisable::getSynchronisable(objectHeader.getObjectID())->getNrOfVariables(); ++i )
    446446//   {
    447 //     //         COUT(4) << " " << *sizes;
     447//     //         orxout(verbose, context::packets) << " " << *sizes;
    448448//     ++sizes;
    449449//   }
    450     //       COUT(4) << endl;
     450    //       orxout(verbose, context::packets) << endl;
    451451}
    452452
     
    541541      if( SynchronisableHeader(baseDataPtr).getDataSize()==origHeader.getDataSize() )
    542542      {
    543 //         COUT(4) << "diffing object in order: " << Synchronisable::getSynchronisable(origHeader.getObjectID())->getIdentifier()->getName() << endl;
     543//         orxout(verbose, context::packets) << "diffing object in order: " << Synchronisable::getSynchronisable(origHeader.getObjectID())->getIdentifier()->getName() << endl;
    544544        diffObject(destDataPtr, origDataPtr, baseDataPtr, origHeader, sizesIt);
    545545        diffedObject = true;
     
    547547      else
    548548      {
    549 //         COUT(4) << "copy object because of different data sizes (1): " << Synchronisable::getSynchronisable(origHeader.getObjectID())->getIdentifier()->getName() << endl;
     549//         orxout(verbose, context::packets) << "copy object because of different data sizes (1): " << Synchronisable::getSynchronisable(origHeader.getObjectID())->getIdentifier()->getName() << endl;
    550550        copyObject(destDataPtr, origDataPtr, baseDataPtr, origHeader, sizesIt);
    551551        assert(sizesIt != this->sizes_.end() || origDataPtr==origDataEnd);
     
    565565        if( SynchronisableHeader(baseDataPtr).getDataSize()==origHeader.getDataSize() )
    566566        {
    567 //           COUT(4) << "diffing object out of order: " << Synchronisable::getSynchronisable(origHeader.getObjectID())->getIdentifier()->getName() << endl;
     567//           orxout(verbose, context::packets) << "diffing object out of order: " << Synchronisable::getSynchronisable(origHeader.getObjectID())->getIdentifier()->getName() << endl;
    568568          diffObject(destDataPtr, origDataPtr, baseDataPtr, origHeader, sizesIt);
    569569          diffedObject = true;
     
    571571        else
    572572        {
    573 //           COUT(4) << "copy object because of different data sizes (2): " << Synchronisable::getSynchronisable(origHeader.getObjectID())->getIdentifier()->getName() << endl;
     573//           orxout(verbose, context::packets) << "copy object because of different data sizes (2): " << Synchronisable::getSynchronisable(origHeader.getObjectID())->getIdentifier()->getName() << endl;
    574574          copyObject(destDataPtr, origDataPtr, baseDataPtr, origHeader, sizesIt);
    575575          assert(sizesIt != this->sizes_.end() || origDataPtr==origDataEnd);
     
    578578      else
    579579      {
    580 //         COUT(4) << "copy object: " << Synchronisable::getSynchronisable(origHeader.getObjectID())->getIdentifier()->getName() << endl;
     580//         orxout(verbose, context::packets) << "copy object: " << Synchronisable::getSynchronisable(origHeader.getObjectID())->getIdentifier()->getName() << endl;
    581581        assert(baseDataPtr == oldBaseDataPtr);
    582582        copyObject(destDataPtr, origDataPtr, baseDataPtr, origHeader, sizesIt);
     
    718718  //copy in the zeros
    719719//   std::list<obj>::iterator itt;
    720 //   COUT(0) << "myvector contains:";
     720//   orxout() << "myvector contains:";
    721721//   for ( itt=dataVector_.begin() ; itt!=dataVector_.end(); itt++ )
    722 //     COUT(0) << " " << (*itt).objID;
    723 //   COUT(0) << endl;
     722//     orxout() << " " << (*itt).objID;
     723//   orxout() << endl;
    724724  for(it=dataVector_.begin(); it!=dataVector_.end();){
    725725    SynchronisableHeader oldobjectheader(origdata);
     
    771771    nrOfVariables += it->getNrOfVariables();
    772772  }
    773 //   COUT(0) << "allocating " << nrOfVariables << " ints" << endl;
     773//   orxout() << "allocating " << nrOfVariables << " ints" << endl;
    774774  this->sizes_.reserve(nrOfVariables);
    775775  return size;
Note: See TracChangeset for help on using the changeset viewer.