From: James Turner Date: Fri, 8 Feb 2013 19:37:47 +0000 (+0000) Subject: Give terrasync a buffered log. X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=768a8c10621bc1916dcc4c7d0f5784827d53a45e;p=simgear.git Give terrasync a buffered log. --- diff --git a/simgear/scene/tsync/terrasync.cxx b/simgear/scene/tsync/terrasync.cxx index 2ddd895f..d351fa3d 100644 --- a/simgear/scene/tsync/terrasync.cxx +++ b/simgear/scene/tsync/terrasync.cxx @@ -60,6 +60,7 @@ #include #include #include +#include #ifdef HAVE_SVN_CLIENT_H # ifdef HAVE_LIBSVN_CLIENT_1 @@ -683,6 +684,10 @@ SGTerraSync::SGTerraSync(SGPropertyNode_ptr root) : _userCbData(NULL) { _svnThread = new SvnThread(); + _log = new BufferedLogCallback(SG_TERRAIN, SG_INFO); + _log->truncateAt(255); + + sglog().addCallback(_log); } SGTerraSync::~SGTerraSync() @@ -690,6 +695,8 @@ SGTerraSync::~SGTerraSync() _tiedProperties.Untie(); delete _svnThread; _svnThread = NULL; + sglog().removeCallback(_log); + delete _log; } void SGTerraSync::init() diff --git a/simgear/scene/tsync/terrasync.hxx b/simgear/scene/tsync/terrasync.hxx index 62ae9511..cdffd723 100644 --- a/simgear/scene/tsync/terrasync.hxx +++ b/simgear/scene/tsync/terrasync.hxx @@ -31,6 +31,8 @@ namespace simgear { const int NOWHERE = -9999; +class BufferedLogCallback; + typedef void (*SGTerraSyncCallback)(void* userData, long tileIndex); class SGTerraSync : public SGSubsystem @@ -49,6 +51,10 @@ public: bool schedulePosition(int lat, int lon); void setTileRefreshCb(SGTerraSyncCallback refreshCb, void* userData = NULL); + /// retrive the associated log object, for displaying log + /// output somewhere (a UI, presumably) + BufferedLogCallback* log() const + { return _log; } protected: void syncAirportsModels(); void syncArea(int lat, int lon); @@ -67,6 +73,7 @@ private: SGTerraSyncCallback _refreshCb; void* _userCbData; simgear::TiedPropertyList _tiedProperties; + BufferedLogCallback* _log; }; }