logging/backend: Use std::string_view in RemoveBackend() and GetBackend()
These can just use a view to a string since its only comparing against two names in both cases for matches. This avoids constructing std::string instances where they aren't necessary.
This commit is contained in:
parent
4a3c4f5f67
commit
765c7e711a
|
@ -47,11 +47,11 @@ public:
|
||||||
backends.push_back(std::move(backend));
|
backends.push_back(std::move(backend));
|
||||||
}
|
}
|
||||||
|
|
||||||
void RemoveBackend(const std::string& backend_name) {
|
void RemoveBackend(std::string_view backend_name) {
|
||||||
std::lock_guard<std::mutex> lock(writing_mutex);
|
std::lock_guard<std::mutex> lock(writing_mutex);
|
||||||
auto it = std::remove_if(backends.begin(), backends.end(), [&backend_name](const auto& i) {
|
const auto it =
|
||||||
return !strcmp(i->GetName(), backend_name.c_str());
|
std::remove_if(backends.begin(), backends.end(),
|
||||||
});
|
[&backend_name](const auto& i) { return backend_name == i->GetName(); });
|
||||||
backends.erase(it, backends.end());
|
backends.erase(it, backends.end());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -63,10 +63,10 @@ public:
|
||||||
filter = f;
|
filter = f;
|
||||||
}
|
}
|
||||||
|
|
||||||
Backend* GetBackend(const std::string& backend_name) {
|
Backend* GetBackend(std::string_view backend_name) {
|
||||||
auto it = std::find_if(backends.begin(), backends.end(), [&backend_name](const auto& i) {
|
const auto it =
|
||||||
return !strcmp(i->GetName(), backend_name.c_str());
|
std::find_if(backends.begin(), backends.end(),
|
||||||
});
|
[&backend_name](const auto& i) { return backend_name == i->GetName(); });
|
||||||
if (it == backends.end())
|
if (it == backends.end())
|
||||||
return nullptr;
|
return nullptr;
|
||||||
return it->get();
|
return it->get();
|
||||||
|
@ -268,11 +268,11 @@ void AddBackend(std::unique_ptr<Backend> backend) {
|
||||||
Impl::Instance().AddBackend(std::move(backend));
|
Impl::Instance().AddBackend(std::move(backend));
|
||||||
}
|
}
|
||||||
|
|
||||||
void RemoveBackend(const std::string& backend_name) {
|
void RemoveBackend(std::string_view backend_name) {
|
||||||
Impl::Instance().RemoveBackend(backend_name);
|
Impl::Instance().RemoveBackend(backend_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
Backend* GetBackend(const std::string& backend_name) {
|
Backend* GetBackend(std::string_view backend_name) {
|
||||||
return Impl::Instance().GetBackend(backend_name);
|
return Impl::Instance().GetBackend(backend_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
#include <cstdarg>
|
#include <cstdarg>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <string_view>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
#include "common/file_util.h"
|
#include "common/file_util.h"
|
||||||
#include "common/logging/filter.h"
|
#include "common/logging/filter.h"
|
||||||
|
@ -107,9 +108,9 @@ private:
|
||||||
|
|
||||||
void AddBackend(std::unique_ptr<Backend> backend);
|
void AddBackend(std::unique_ptr<Backend> backend);
|
||||||
|
|
||||||
void RemoveBackend(const std::string& backend_name);
|
void RemoveBackend(std::string_view backend_name);
|
||||||
|
|
||||||
Backend* GetBackend(const std::string& backend_name);
|
Backend* GetBackend(std::string_view backend_name);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the name of the passed log class as a C-string. Subclasses are separated by periods
|
* Returns the name of the passed log class as a C-string. Subclasses are separated by periods
|
||||||
|
|
Reference in New Issue