ControllerInterface/Device: Use std::string_view where applicable
In these cases, the given string is only ever compared against other string, so std::string can be turned into a std::string_view to allow non-allocating inputs.
This commit is contained in:
parent
80d8173d29
commit
1355b43fd2
|
@ -52,7 +52,7 @@ std::string Device::GetQualifiedName() const
|
||||||
return StringFromFormat("%s/%i/%s", this->GetSource().c_str(), GetId(), this->GetName().c_str());
|
return StringFromFormat("%s/%i/%s", this->GetSource().c_str(), GetId(), this->GetName().c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
Device::Input* Device::FindInput(const std::string& name) const
|
Device::Input* Device::FindInput(std::string_view name) const
|
||||||
{
|
{
|
||||||
for (Input* input : m_inputs)
|
for (Input* input : m_inputs)
|
||||||
{
|
{
|
||||||
|
@ -63,7 +63,7 @@ Device::Input* Device::FindInput(const std::string& name) const
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
Device::Output* Device::FindOutput(const std::string& name) const
|
Device::Output* Device::FindOutput(std::string_view name) const
|
||||||
{
|
{
|
||||||
for (Output* output : m_outputs)
|
for (Output* output : m_outputs)
|
||||||
{
|
{
|
||||||
|
@ -74,7 +74,7 @@ Device::Output* Device::FindOutput(const std::string& name) const
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Device::Control::IsMatchingName(const std::string& name) const
|
bool Device::Control::IsMatchingName(std::string_view name) const
|
||||||
{
|
{
|
||||||
return GetName() == name;
|
return GetName() == name;
|
||||||
}
|
}
|
||||||
|
@ -90,7 +90,7 @@ std::string Device::FullAnalogSurface::GetName() const
|
||||||
return "Full " + m_high.GetName();
|
return "Full " + m_high.GetName();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Device::FullAnalogSurface::IsMatchingName(const std::string& name) const
|
bool Device::FullAnalogSurface::IsMatchingName(std::string_view name) const
|
||||||
{
|
{
|
||||||
if (Control::IsMatchingName(name))
|
if (Control::IsMatchingName(name))
|
||||||
return true;
|
return true;
|
||||||
|
@ -218,7 +218,7 @@ std::string DeviceContainer::GetDefaultDeviceString() const
|
||||||
return device_qualifier.ToString();
|
return device_qualifier.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
Device::Input* DeviceContainer::FindInput(const std::string& name, const Device* def_dev) const
|
Device::Input* DeviceContainer::FindInput(std::string_view name, const Device* def_dev) const
|
||||||
{
|
{
|
||||||
if (def_dev)
|
if (def_dev)
|
||||||
{
|
{
|
||||||
|
@ -239,7 +239,7 @@ Device::Input* DeviceContainer::FindInput(const std::string& name, const Device*
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
Device::Output* DeviceContainer::FindOutput(const std::string& name, const Device* def_dev) const
|
Device::Output* DeviceContainer::FindOutput(std::string_view name, const Device* def_dev) const
|
||||||
{
|
{
|
||||||
return def_dev->FindOutput(name);
|
return def_dev->FindOutput(name);
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
#include <mutex>
|
#include <mutex>
|
||||||
#include <optional>
|
#include <optional>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <string_view>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "Common/CommonTypes.h"
|
#include "Common/CommonTypes.h"
|
||||||
|
@ -42,14 +43,14 @@ public:
|
||||||
class Control // input or output
|
class Control // input or output
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
virtual ~Control() = default;
|
||||||
virtual std::string GetName() const = 0;
|
virtual std::string GetName() const = 0;
|
||||||
virtual ~Control() {}
|
|
||||||
virtual Input* ToInput() { return nullptr; }
|
virtual Input* ToInput() { return nullptr; }
|
||||||
virtual Output* ToOutput() { return nullptr; }
|
virtual Output* ToOutput() { return nullptr; }
|
||||||
|
|
||||||
// May be overridden to allow multiple valid names.
|
// May be overridden to allow multiple valid names.
|
||||||
// Useful for backwards-compatible configurations when names change.
|
// Useful for backwards-compatible configurations when names change.
|
||||||
virtual bool IsMatchingName(const std::string& name) const;
|
virtual bool IsMatchingName(std::string_view name) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -111,8 +112,8 @@ public:
|
||||||
const std::vector<Input*>& Inputs() const { return m_inputs; }
|
const std::vector<Input*>& Inputs() const { return m_inputs; }
|
||||||
const std::vector<Output*>& Outputs() const { return m_outputs; }
|
const std::vector<Output*>& Outputs() const { return m_outputs; }
|
||||||
|
|
||||||
Input* FindInput(const std::string& name) const;
|
Input* FindInput(std::string_view name) const;
|
||||||
Output* FindOutput(const std::string& name) const;
|
Output* FindOutput(std::string_view name) const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void AddInput(Input* const i);
|
void AddInput(Input* const i);
|
||||||
|
@ -124,7 +125,7 @@ protected:
|
||||||
FullAnalogSurface(Input* low, Input* high) : m_low(*low), m_high(*high) {}
|
FullAnalogSurface(Input* low, Input* high) : m_low(*low), m_high(*high) {}
|
||||||
ControlState GetState() const override;
|
ControlState GetState() const override;
|
||||||
std::string GetName() const override;
|
std::string GetName() const override;
|
||||||
bool IsMatchingName(const std::string& name) const override;
|
bool IsMatchingName(std::string_view name) const override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Input& m_low;
|
Input& m_low;
|
||||||
|
@ -177,8 +178,8 @@ public:
|
||||||
class DeviceContainer
|
class DeviceContainer
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Device::Input* FindInput(const std::string& name, const Device* def_dev) const;
|
Device::Input* FindInput(std::string_view name, const Device* def_dev) const;
|
||||||
Device::Output* FindOutput(const std::string& name, const Device* def_dev) const;
|
Device::Output* FindOutput(std::string_view name, const Device* def_dev) const;
|
||||||
|
|
||||||
std::vector<std::string> GetAllDeviceStrings() const;
|
std::vector<std::string> GetAllDeviceStrings() const;
|
||||||
std::string GetDefaultDeviceString() const;
|
std::string GetDefaultDeviceString() const;
|
||||||
|
|
Loading…
Reference in New Issue