YARP
Yet Another Robot Platform
FrameTransformSetMultiplexer.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: 2006-2021 Istituto Italiano di Tecnologia (IIT)
3  * SPDX-License-Identifier: BSD-3-Clause
4  */
5 
15 #include <yarp/dev/DeviceDriver.h>
18 #include <yarp/dev/PolyDriver.h>
19 
20 #ifndef YARP_DEV_FRAMETRANSFORMSETMULTIPLEXER_H
21 #define YARP_DEV_FRAMETRANSFORMSETMULTIPLEXER_H
22 
27 {
28 public:
34 
35  // yarp::dev::DeviceDriver
36  bool open (yarp::os::Searchable &config) override;
37  bool close () override;
38 
39  // yarp::dev::IMultipleWrapper
40  bool attachAll(const yarp::dev::PolyDriverList& devices2attach) override;
41  bool detachAll() override;
42 
43  // yarp::dev::IFrameTransformStorageSet
44  bool setTransform(const yarp::math::FrameTransform& transform) override;
45  bool setTransforms(const std::vector<yarp::math::FrameTransform>& transforms) override;
46  virtual bool deleteTransform(std::string t1, std::string t2) override;
47  virtual bool clearAll() override;
48 
49  void startThreads();
50  void stopThreads();
51 
52 private:
53  int m_verbose{4};
54  std::vector<yarp::dev::IFrameTransformStorageSet*> m_iFrameTransformStorageSetList;
55  std::vector<yarp::dev::IFrameTransformStorageUtils*> m_iFrameTransformStorageUtilsList;
56  std::vector<std::vector<yarp::math::FrameTransform>> m_transformVector;
57  std::vector<std::mutex> m_mutexSettingFromAttachedDevices;
58 };
59 
60 
61 #endif // YARP_DEV_FRAMETRANSFORMSETMULTIPLEXER_H
A multiplexer which forwards the input of one IFrameTransformStorageSet interfaces to many.
FrameTransformSetMultiplexer & operator=(const FrameTransformSetMultiplexer &)=delete
bool close() override
Close the DeviceDriver.
bool detachAll() override
Detach the object (you must have first called attach).
FrameTransformSetMultiplexer(FrameTransformSetMultiplexer &&)=delete
FrameTransformSetMultiplexer & operator=(FrameTransformSetMultiplexer &&)=delete
FrameTransformSetMultiplexer(const FrameTransformSetMultiplexer &)=delete
virtual bool clearAll() override
Delete all transforms in a storage.
virtual bool deleteTransform(std::string t1, std::string t2) override
Delete a single transform in the storage.
bool open(yarp::os::Searchable &config) override
Device driver interface.
bool attachAll(const yarp::dev::PolyDriverList &devices2attach) override
Attach to a list of objects.
bool setTransforms(const std::vector< yarp::math::FrameTransform > &transforms) override
Save some frame transforms in a storage.
bool setTransform(const yarp::math::FrameTransform &transform) override
Save a frame transform in a storage.
Interface implemented by all device drivers.
Definition: DeviceDriver.h:35
Helper interface for an object that can wrap/or "attach" to one or more other devices.
A base class for nested structures that can be searched.
Definition: Searchable.h:66