DRTVWR-494: Move LL_ERRS out of llinstancetracker.h header file.
Add a namespaced free function in .cpp file to report LL_ERRS as needed. Per code review, use a more indicative namespace name.master
parent
ba8fe9b483
commit
2506fd7882
|
|
@ -27,12 +27,15 @@
|
|||
#include "linden_common.h"
|
||||
// associated header
|
||||
#include "llinstancetracker.h"
|
||||
#include "llapr.h"
|
||||
|
||||
#include "llerror.h"
|
||||
// STL headers
|
||||
// std headers
|
||||
// external library headers
|
||||
// other Linden headers
|
||||
|
||||
// This .cpp file is required by our CMake test macro. It contributes no code
|
||||
// to the viewer.
|
||||
void LLInstanceTrackerPrivate::logerrs(const char* cls, const std::string& arg1,
|
||||
const std::string& arg2, const std::string& arg3)
|
||||
{
|
||||
LL_ERRS("LLInstanceTracker") << LLError::Log::demangle(cls)
|
||||
<< arg1 << arg2 << arg3 << LL_ENDL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,18 +42,21 @@
|
|||
#include <boost/iterator/filter_iterator.hpp>
|
||||
|
||||
#include "lockstatic.h"
|
||||
#include "stringize.h"
|
||||
|
||||
/*****************************************************************************
|
||||
* StaticBase
|
||||
*****************************************************************************/
|
||||
namespace LLInstanceTrackerStuff
|
||||
namespace LLInstanceTrackerPrivate
|
||||
{
|
||||
struct StaticBase
|
||||
{
|
||||
// We need to be able to lock static data while manipulating it.
|
||||
std::mutex mMutex;
|
||||
};
|
||||
} // namespace LLInstanceTrackerStuff
|
||||
|
||||
void logerrs(const char* cls, const std::string&, const std::string&, const std::string&);
|
||||
} // namespace LLInstanceTrackerPrivate
|
||||
|
||||
/*****************************************************************************
|
||||
* LLInstanceTracker with key
|
||||
|
|
@ -73,7 +76,7 @@ template<typename T, typename KEY = void,
|
|||
class LLInstanceTracker
|
||||
{
|
||||
typedef std::map<KEY, std::shared_ptr<T>> InstanceMap;
|
||||
struct StaticData: public LLInstanceTrackerStuff::StaticBase
|
||||
struct StaticData: public LLInstanceTrackerPrivate::StaticBase
|
||||
{
|
||||
InstanceMap mMap;
|
||||
};
|
||||
|
|
@ -232,7 +235,7 @@ private:
|
|||
|
||||
// for logging
|
||||
template <typename K>
|
||||
static K report(K key) { return key; }
|
||||
static std::string report(K key) { return stringize(key); }
|
||||
static std::string report(const std::string& key) { return "'" + key + "'"; }
|
||||
static std::string report(const char* key) { return report(std::string(key)); }
|
||||
|
||||
|
|
@ -249,8 +252,8 @@ private:
|
|||
auto pair = map.emplace(key, ptr);
|
||||
if (! pair.second)
|
||||
{
|
||||
LL_ERRS("LLInstanceTracker") << "Instance with key " << report(key)
|
||||
<< " already exists!" << LL_ENDL;
|
||||
LLInstanceTrackerPrivate::logerrs(typeid(*this).name(), " instance with key ",
|
||||
report(key), " already exists!");
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
@ -299,7 +302,7 @@ template<typename T, EInstanceTrackerAllowKeyCollisions KEY_COLLISION_BEHAVIOR>
|
|||
class LLInstanceTracker<T, void, KEY_COLLISION_BEHAVIOR>
|
||||
{
|
||||
typedef std::set<std::shared_ptr<T>> InstanceSet;
|
||||
struct StaticData: public LLInstanceTrackerStuff::StaticBase
|
||||
struct StaticData: public LLInstanceTrackerPrivate::StaticBase
|
||||
{
|
||||
InstanceSet mSet;
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in New Issue