Page MenuHomec4science

OncillaSynchronizer.h
No OneTemporary

File Metadata

Created
Tue, Jun 11, 00:14

OncillaSynchronizer.h

#pragma once
#include <vector>
#include <iostream>
#include <boost/shared_ptr.hpp>
#include <rci/Synchronizer.h>
#include "common.h"
#include "OncillaL0.h"
#include "OncillaL1L2.h"
#include "OncillaL3.h"
#include "OncillaL4.h"
#include "OncillaTrunk.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(OncillaTrunkPtr node) = 0;
/**
* Registers an L0 node.
*/
virtual void registerL0Node(Leg l, OncillaL0Ptr node) = 0;
/**
* Registers an L1 node.
*/
virtual void registerL1Node(Leg l, OncillaL1Ptr node) = 0;
/**
* Registers an L2 node.
*/
virtual void registerL2Node(Leg l, OncillaL2Ptr node) = 0;
/**
* Registers an L3 node.
*/
virtual void registerL3Node(Leg l, OncillaL3Ptr node) = 0;
/**
* Registers an L4 node.
*/
virtual void registerL4Node(Leg l, OncillaL4Ptr node) = 0;
/**
*
*/
friend std::ostream
& operator<<(std::ostream& os, const OncillaSynchronizer& val);
double latestProcessLoopDuration() const;
protected :
virtual double latestProcessLoopDurationPrimpl() const = 0;
};
}
}

Event Timeline