Go to the documentation of this file.
16 #ifndef SURGSIM_DEVICES_DEVICEFILTERS_FILTEREDDEVICE_H
17 #define SURGSIM_DEVICES_DEVICEFILTERS_FILTEREDDEVICE_H
19 #include <boost/thread/shared_mutex.hpp>
30 class InputConsumerInterface;
31 class OutputProducerInterface;
57 bool addInputConsumer(std::shared_ptr<Input::InputConsumerInterface> inputConsumer)
override;
58 bool removeInputConsumer(std::shared_ptr<Input::InputConsumerInterface> inputConsumer)
override;
60 bool setOutputProducer(std::shared_ptr<Input::OutputProducerInterface> outputProducer)
override;
61 bool removeOutputProducer(std::shared_ptr<Input::OutputProducerInterface> outputProducer)
override;
67 void setDevice(std::shared_ptr<Input::DeviceInterface> device);
73 void addFilter(std::shared_ptr<DeviceFilter> filter);
76 const std::vector<std::shared_ptr<Input::DeviceInterface>>&
getDevices()
const;
81 bool setDevices(
const std::vector<std::shared_ptr<Input::DeviceInterface>>& devices);
98 std::vector<std::shared_ptr<Input::DeviceInterface>>
m_devices;
110 #endif // SURGSIM_DEVICES_DEVICEFILTERS_FILTEREDDEVICE_H
bool finalize() override
Finalize (de-initialize) the device.
Definition: FilteredDevice.cpp:101
void clearOutputProducer() override
Removes any OutputProducer.
Definition: FilteredDevice.cpp:206
bool removeInputConsumer(std::shared_ptr< Input::InputConsumerInterface > inputConsumer) override
Removes an input consumer previously added via addInputConsumer.
Definition: FilteredDevice.cpp:138
bool removeOutputProducer(std::shared_ptr< Input::OutputProducerInterface > outputProducer) override
Removes an output producer previously added via setOutputProducer.
Definition: FilteredDevice.cpp:182
bool m_initialized
true if initialized and not finalized.
Definition: FilteredDevice.h:93
void setDevice(std::shared_ptr< Input::DeviceInterface > device)
Sets the raw/base device.
Definition: FilteredDevice.cpp:216
void addFilter(std::shared_ptr< DeviceFilter > filter)
Adds a DeviceFilter.
Definition: FilteredDevice.cpp:224
void clearInputConsumers() override
Removes all InputConsumers.
Definition: FilteredDevice.cpp:155
SURGSIM_CLASSNAME(SurgSim::Devices::FilteredDevice)
A DeviceInterface connected in series with one or more DeviceFilters. Useful for serialization.
Definition: FilteredDevice.h:39
bool isInitialized() const override
Definition: FilteredDevice.cpp:96
virtual ~FilteredDevice()
Destructor.
Definition: FilteredDevice.cpp:41
Definition: CompoundShapeToGraphics.cpp:29
std::vector< std::shared_ptr< Input::DeviceInterface > > m_devices
The devices.
Definition: FilteredDevice.h:98
void doFinalize()
Implements the finalize functionality.
Definition: FilteredDevice.cpp:110
bool setOutputProducer(std::shared_ptr< Input::OutputProducerInterface > outputProducer) override
Sets an output producer that will be asked for application output state when the device needs it.
Definition: FilteredDevice.cpp:165
std::shared_ptr< Framework::Logger > m_logger
The logger.
Definition: FilteredDevice.h:104
const std::vector< std::shared_ptr< Input::DeviceInterface > > & getDevices() const
Definition: FilteredDevice.cpp:232
bool hasOutputProducer() override
Query if this object has output producer.
Definition: FilteredDevice.cpp:199
bool setDevices(const std::vector< std::shared_ptr< Input::DeviceInterface >> &devices)
Sets the devices.
Definition: FilteredDevice.cpp:238
bool initialize() override
Fully initialize the device.
Definition: FilteredDevice.cpp:54
boost::shared_mutex m_deviceMutex
The mutex to protect access to the devices.
Definition: FilteredDevice.h:101
std::string getName() const override
Return a (hopefully unique) device name.
Definition: FilteredDevice.cpp:49
string(TOUPPER ${DEVICE} DEVICE_UPPER_CASE) option(BUILD_DEVICE_$
Definition: CMakeLists.txt:38
std::string m_name
The name of this device.
Definition: FilteredDevice.h:90
bool addInputConsumer(std::shared_ptr< Input::InputConsumerInterface > inputConsumer) override
Adds an input consumer that will be notified when the application input state is updated.
Definition: FilteredDevice.cpp:121
FilteredDevice(const std::string &name)
Constructor.
Definition: FilteredDevice.cpp:33