Page MenuHomec4science

OncillaSynchronizer.h
No OneTemporary

File Metadata

Created
Sat, Jun 29, 17:55

OncillaSynchronizer.h

#pragma once
#include <vector>
#include <iostream>
#include <boost/shared_ptr.hpp>
#include <rci/Synchronizer.h>
#include "OncillaTrunk.h"
#include "OncillaL01.h"
#include "OncillaL2.h"
#include "OncillaL3.h"
#include "OncillaL4.h"
namespace rci {
namespace oncilla {
class OncillaSynchronizer;
typedef boost::shared_ptr<OncillaSynchronizer> OncillaSynchronizerPtr;
/**
* 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.
*/
virtual void registerTrunkNode(unsigned int index, OncillaTrunkPtr node) = 0;
/**
* Registers an L0 node.
*/
virtual void registerL0Node(unsigned int index, OncillaL0Ptr node) = 0;
/**
* Registers an L1 node.
*/
virtual void registerL1Node(unsigned int index, OncillaL1Ptr node) = 0;
/**
* Registers an L2 node.
*/
virtual void registerL2Node(unsigned int index, OncillaL2Ptr node) = 0;
/**
* Registers an L3 node.
*/
virtual void registerL3Node(unsigned int index, OncillaL3Ptr node) = 0;
/**
* Registers an L4 node.
*/
virtual void registerL4Node(unsigned int index, OncillaL4Ptr node) = 0;
/**
*
*/
friend std::ostream
& operator<<(std::ostream& os, const OncillaSynchronizer& val);
protected:
/**
* Only true for the first time
*/
bool _onlyReceive;
/**
*
*/
std::string name;
};
}
}

Event Timeline