YARP
Yet Another Robot Platform
 
Loading...
Searching...
No Matches
FrameTransformStorage.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2006-2021 Istituto Italiano di Tecnologia (IIT)
3 * SPDX-License-Identifier: LGPL-2.1-or-later
4 */
5
6#ifndef YARP_DEV_FRAMETRANSFORMSTORAGE_H
7#define YARP_DEV_FRAMETRANSFORMSTORAGE_H
8
9
10#include <yarp/os/Network.h>
12
13#include <yarp/sig/Vector.h>
14
17#include <yarp/dev/PolyDriver.h>
20#include <mutex>
21#include <map>
22#include <mutex>
23
25
46{
47protected:
49
50public:
51 FrameTransformStorage(double tperiod=0.010) : PeriodicThread (tperiod) {}
53
54 //DeviceDriver
55 bool open(yarp::os::Searchable& config) override;
56 bool close() override;
57
58 //IFrameTransformStorageSet interface
59 yarp::dev::ReturnValue setTransforms(const std::vector<yarp::math::FrameTransform>& transforms) override;
61
62 //IFrameTransformStorageGet interface
63 yarp::dev::ReturnValue getTransforms(std::vector<yarp::math::FrameTransform>& transforms) const override;
64
65 //IFrameTransformStorageUtils interface
66 yarp::dev::ReturnValue deleteTransform(std::string t1, std::string t2) override;
67 yarp::dev::ReturnValue size(size_t& size) const override;
72
73 //wrapper and interfaces
74 bool attach(yarp::dev::PolyDriver* driver) override;
75 bool detach() override;
76private:
77 mutable std::mutex m_pd_mutex;
78 yarp::dev::PolyDriver* pDriver = nullptr;
79 IFrameTransformStorageGet* iGetIf = nullptr;
80
81 //periodicThread
82 void run() override;
83};
84
85#endif // YARP_DEV_FRAMETRANSFORMSTORAGE_H
contains the definition of a Vector type
This class is the parameters parser for class FrameTransformStorage.
frameTransformStorage: A class that keeps a FrameTransformContainer updated by receiving transformati...
bool close() override
Close the DeviceDriver.
FrameTransformStorage(double tperiod=0.010)
yarp::dev::FrameTransformContainer m_tf_container
bool attach(yarp::dev::PolyDriver *driver) override
Attach to another object.
yarp::dev::ReturnValue setTransforms(const std::vector< yarp::math::FrameTransform > &transforms) override
Save some frame transforms in a storage.
bool open(yarp::os::Searchable &config) override
Open the DeviceDriver.
yarp::dev::ReturnValue clearAll() override
Delete all transforms in a storage.
yarp::dev::ReturnValue deleteTransform(std::string t1, std::string t2) override
Delete a single transform in the storage.
yarp::dev::ReturnValue startStorageThread() override
yarp::dev::ReturnValue size(size_t &size) const override
yarp::dev::ReturnValue getTransforms(std::vector< yarp::math::FrameTransform > &transforms) const override
Obtains all frame transforms saved in a storage.
bool detach() override
Detach the object (you must have first called attach).
yarp::dev::ReturnValue setTransform(const yarp::math::FrameTransform &transform) override
Save a frame transform in a storage.
yarp::dev::ReturnValue getInternalContainer(yarp::dev::FrameTransformContainer *&container) override
yarp::dev::ReturnValue stopStorageThread() override
Interface implemented by all device drivers.
FrameTransformContainer: A class that contains a vector of frame transformations and exposes yarp::de...
A container for a device driver.
Definition PolyDriver.h:23
Helper interface for an object that can wrap/or "attach" to a single other device.
An abstraction for a periodic thread.
PeriodicThread(double period, ShouldUseSystemClock useSystemClock=ShouldUseSystemClock::No, PeriodicThreadClock clockAccuracy=PeriodicThreadClock::Relative)
Constructor.
A base class for nested structures that can be searched.
Definition Searchable.h:31