Page MenuHomec4science

OncillaSynchronizer.h
No OneTemporary

File Metadata

Created
Sun, Jun 23, 23:07

OncillaSynchronizer.h

#pragma once
#include <vector>
#include <iostream>
#include <boost/shared_ptr.hpp>
#include <rci/Synchronizer.h>
namespace rci {
namespace oncilla {
class OncillaSynchronizer;
typedef boost::shared_ptr<OncillaSynchronizer> OncillaSynchronizerPtr;
class OncillaTrunk;
typedef boost::shared_ptr<OncillaTrunk> OncillaTrunkPtr;
class OncillaL0;
typedef boost::shared_ptr<OncillaL0> OncillaL0Ptr;
class OncillaL1;
typedef boost::shared_ptr<OncillaL1> OncillaL1Ptr;
class OncillaL2;
typedef boost::shared_ptr<OncillaL2> OncillaL2Ptr;
class OncillaL3;
typedef boost::shared_ptr<OncillaL3> OncillaL3Ptr;
class OncillaL4;
typedef boost::shared_ptr<OncillaL4> OncillaL4Ptr;
/**
* OncillaSynchronizer
* Different OncillaSynchronizers may be for example:
* * Update with a given frequency
* ** Send data every time
* ** Send only if new data
* * Update only if new data (event-based)
* * Triggered from robot side (e.g. FRI)
*/
class OncillaSynchronizer: public Synchronizer {
public:
OncillaSynchronizer(const std::string &name);
virtual ~OncillaSynchronizer();
/**
* Registers a trunk node.
* @todo use Oncilla::Leg as index (problem with cyclic includes)
*/
virtual void registerTrunkNode(unsigned int index, OncillaTrunkPtr node) = 0;
/**
* Registers an L0 node.
* @todo use Oncilla::Leg as index (problem with cyclic includes)
*/
virtual void registerL0Node(unsigned int index, OncillaL0Ptr node) = 0;
/**
* Registers an L1 node.
* @todo use Oncilla::Leg as index (problem with cyclic includes)
*/
virtual void registerL1Node(unsigned int index, OncillaL1Ptr node) = 0;
/**
* Registers an L2 node.
* @todo use Oncilla::Leg as index (problem with cyclic includes)
*/
virtual void registerL2Node(unsigned int index, OncillaL2Ptr node) = 0;
/**
* Registers an L3 node.
* @todo use Oncilla::Leg as index (problem with cyclic includes)
*/
virtual void registerL3Node(unsigned int index, OncillaL3Ptr node) = 0;
/**
* Registers an L4 node.
* @todo use Oncilla::Leg as index (problem with cyclic includes)
*/
virtual void registerL4Node(unsigned int index, OncillaL4Ptr node) = 0;
/**
*
*/
friend std::ostream
& operator<<(std::ostream& os, const OncillaSynchronizer& val);
};
}
}

Event Timeline