ControllerInterface: Switch to std::shared_ptr

Small cleanup by using std::shared_ptr and getting rid of
ciface.Devices() which just returned the m_devices (which defeats the
point of making m_devices protected).

Incidentally, this should make the code safer when we have
different threads accessing devices in the future (for hotplug?).

A lot of code use Device references directly so there is
no easy way to remove FindDevice() and make those unique_ptrs.
This commit is contained in:
Léo Lam 2016-06-25 21:46:39 +02:00
parent afa202738e
commit 8678133e87
18 changed files with 80 additions and 60 deletions

View file

@ -333,7 +333,7 @@ public:
operator std::string() override { return OpName(op) + "(" + (std::string)(*inner) + ")"; }
};
Device* ControlFinder::FindDevice(ControlQualifier qualifier)
std::shared_ptr<Device> ControlFinder::FindDevice(ControlQualifier qualifier)
{
if (qualifier.has_device)
return container.FindDevice(qualifier.device_qualifier);
@ -343,7 +343,7 @@ Device* ControlFinder::FindDevice(ControlQualifier qualifier)
Device::Control* ControlFinder::FindControl(ControlQualifier qualifier)
{
Device* device = FindDevice(qualifier);
const std::shared_ptr<Device> device = FindDevice(qualifier);
if (!device)
return nullptr;