TestApplication application;
Debug::Filter::SetGlobalLogLevel(Debug::Verbose);
+ Debug::Filter::EnableGlobalTrace();
Integration::Scene stage(application.GetScene());
ResetTouchCallbacks();
+ Debug::Filter::DisableGlobalTrace();
Debug::Filter::SetGlobalLogLevel(Debug::NoLogging);
END_TEST;
/*
- * Copyright (c) 2022 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2023 Samsung Electronics Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
// EXTERNAL INCLUDES
#include <chrono>
#include <cstdarg>
+#include <memory>
namespace Dali
{
Filter* Filter::gActor = Filter::New(Debug::Concise, false, "LOG_ACTOR");
Filter* Filter::gShader = Filter::New(Debug::Concise, false, "LOG_SHADER");
-Filter::FilterList* Filter::GetActiveFilters()
+typedef std::list<std::unique_ptr<Filter>> FilterList;
+typedef std::list<std::unique_ptr<Filter>>::iterator FilterIter;
+
+namespace
+{
+static FilterList& GetActiveFilters()
{
- static Filter::FilterList* activeFilters = new FilterList;
+ static FilterList activeFilters;
return activeFilters;
}
+} // namespace
Filter* Filter::New(LogLevel level, bool trace, const char* environmentVariableName)
{
Filter* filter = new Filter(level, trace);
filter->mNesting++;
- GetActiveFilters()->push_back(filter);
+ GetActiveFilters().push_back(std::unique_ptr<Filter>(filter));
return filter;
}
*/
void Filter::EnableGlobalTrace()
{
- for(FilterIter iter = GetActiveFilters()->begin(); iter != GetActiveFilters()->end(); iter++)
+ for(FilterIter iter = GetActiveFilters().begin(); iter != GetActiveFilters().end(); iter++)
{
(*iter)->EnableTrace();
}
*/
void Filter::DisableGlobalTrace()
{
- for(FilterIter iter = GetActiveFilters()->begin(); iter != GetActiveFilters()->end(); iter++)
+ for(FilterIter iter = GetActiveFilters().begin(); iter != GetActiveFilters().end(); iter++)
{
(*iter)->DisableTrace();
}
void Filter::SetGlobalLogLevel(LogLevel level)
{
- for(FilterIter iter = GetActiveFilters()->begin(); iter != GetActiveFilters()->end(); iter++)
+ for(FilterIter iter = GetActiveFilters().begin(); iter != GetActiveFilters().end(); iter++)
{
(*iter)->SetLogLevel(level);
}
#define DALI_INTEGRATION_DEBUG_H
/*
- * Copyright (c) 2022 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2023 Samsung Electronics Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
class DALI_CORE_API Filter
{
public:
- using FilterList = std::list<Filter*>;
- using FilterIter = std::list<Filter*>::iterator;
-
-public:
/**
* Test if the filter is enabled for the given logging level
* @param[in] level - the level to test.
{
}
- static FilterList* GetActiveFilters();
-
public:
// High level filters. If these filters are too broad for your current requirement, then
// you can add a filter to your own class or source file. If you do, use Filter::New()
// EXTERNAL INCLUDES
#include <cstdarg>
#include <list>
+#include <memory>
namespace Dali
{
#ifdef TRACE_ENABLED
-typedef std::list<Filter*> FilterList;
-typedef std::list<Filter*>::iterator FilterIter;
+typedef std::list<std::unique_ptr<Filter>> FilterList;
+typedef std::list<std::unique_ptr<Filter>>::iterator FilterIter;
namespace
{
-static FilterList* GetActiveFilters()
+static FilterList& GetActiveFilters()
{
- static FilterList* activeFilters = new FilterList;
+ static FilterList activeFilters;
return activeFilters;
}
} // namespace
}
Filter* filter = new Filter(trace);
- GetActiveFilters()->push_back(filter);
+
+ GetActiveFilters().push_back(std::unique_ptr<Filter>(filter));
return filter;
}
*/
void Filter::EnableGlobalTrace()
{
- for(FilterIter iter = GetActiveFilters()->begin(); iter != GetActiveFilters()->end(); iter++)
+ for(FilterIter iter = GetActiveFilters().begin(); iter != GetActiveFilters().end(); iter++)
{
(*iter)->EnableTrace();
}
*/
void Filter::DisableGlobalTrace()
{
- for(FilterIter iter = GetActiveFilters()->begin(); iter != GetActiveFilters()->end(); iter++)
+ for(FilterIter iter = GetActiveFilters().begin(); iter != GetActiveFilters().end(); iter++)
{
(*iter)->DisableTrace();
}