OrocosComponentLibrary
2.7.0
|
A Component for periodically reporting Component Port contents to a human readable text format. More...
#include <ReportingComponent.hpp>
Public Types | |
typedef RTT::DataFlowInterface::Ports | Ports |
Public Member Functions | |
ReportingComponent (std::string name="Reporting") | |
Set up a component for reporting. | |
bool | addMarshaller (RTT::marsh::MarshallInterface *headerM, RTT::marsh::MarshallInterface *bodyM) |
Adds a Plugin to receive incomming data. | |
bool | removeMarshallers () |
Remove and delete all added Marshallers. | |
Script Methods | |
virtual bool | configureHook () |
Implementation of base::TaskCore::configureHook(). | |
virtual void | cleanupHook () |
Implementation of base::TaskCore::cleanupHook(). | |
virtual bool | screenComponent (const std::string &comp) |
Write state information of a component. | |
bool | reportComponent (const std::string &component) |
Report all the data ports of a component. | |
bool | unreportComponent (const std::string &component) |
Unreport the data ports of a component. | |
bool | reportPort (const std::string &component, const std::string &port) |
Report a specific data port of a component. | |
bool | unreportPort (const std::string &component, const std::string &port) |
Unreport a specific data port of a component. | |
bool | reportData (const std::string &component, const std::string &dataname) |
Report a specific data source of a component. | |
bool | unreportData (const std::string &component, const std::string &datasource) |
Unreport a specific data source of a component. | |
bool | copydata () |
This real-time function makes copies of the data to be reported. | |
void | snapshot () |
Copy the reported data and trigger the generation of a sampling line. | |
void | cleanReport () |
Implementation of base::TaskCore::configureHook(). | |
Protected Types | |
enum | T_Types { T_QualName = 0, T_PortDS, T_DataType, T_Property, T_Port, T_NewData, T_Tracked } |
Use these to index DTupple objects. | |
typedef boost::tuple < std::string, RTT::base::DataSourceBase::shared_ptr, std::string, RTT::base::PropertyBase *, RTT::base::InputPortInterface *, bool, bool > | DTupple |
tuple that describes each sample. | |
typedef std::vector< DTupple > | Reports |
Stores the 'datasource' of all reported items as properties. | |
typedef std::vector< std::pair < boost::shared_ptr < RTT::marsh::MarshallInterface > , boost::shared_ptr < RTT::marsh::MarshallInterface > > > | Marshallers |
Protected Member Functions | |
bool | screenImpl (const std::string &comp, std::ostream &output) |
This method writes out the status of a component's interface. | |
bool | reportDataSource (std::string tag, std::string type, RTT::base::DataSourceBase::shared_ptr origm, RTT::base::InputPortInterface *ipi, bool) |
bool | unreportDataSource (std::string tag) |
virtual bool | startHook () |
void | makeReport2 () |
virtual void | updateHook () |
This not real-time function processes the copied data. | |
virtual void | stopHook () |
Protected Attributes | |
Reports | root |
Marshallers | marshallers |
RTT::PropertyBag | report |
bool | snapshotted |
Used to communicate between snapshot() and updateHook() if updateHook needs to make a copy. | |
RTT::Property< std::string > | config |
RTT::Property< bool > | writeHeader |
RTT::Property< bool > | decompose |
RTT::Property< bool > | insnapshot |
RTT::Property< bool > | synchronize_with_logging |
RTT::Property< PropertyBag > | report_data |
RTT::ConnPolicy | report_policy |
bool | onlyNewData |
RTT::os::TimeService::ticks | starttime |
RTT::Property < RTT::os::TimeService::Seconds > | timestamp |
RTT::internal::DataSource < bool >::shared_ptr | mchecker |
If false, a sequence size has changed. |
A Component for periodically reporting Component Port contents to a human readable text format.
The default format is a table with a header.
It can report to any data format, using the 'addMarshaller' function, which is typically done in sub classes of this component.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE properties SYSTEM "cpf.dtd"> <properties> <!-- ... other component properties .. --> <struct name="ReportData" type="PropertyBag"> <!-- Monitor all ports of a Component : --> <simple name="Component" type="string"><description></description><value>ComponentX</value></simple> <!-- Monitor a single Data or base::Buffer-Port of another Component : --> <simple name="Port" type="string"><description></description><value>ComponentY.PortZ</value></simple> <!-- add as many lines as desired... --> </struct> </properties>
Definition at line 81 of file ReportingComponent.hpp.
typedef boost::tuple<std::string, RTT::base::DataSourceBase::shared_ptr, std::string,RTT::base::PropertyBase*,RTT::base::InputPortInterface*,bool,bool> DTupple [protected] |
tuple that describes each sample.
Uses get<N>() to read it: @0 The qualified name of the data (componentname.portname) @1 The data source of the data. Always returns the last value. @2 A copy command to copy from this data source to another one @3 The target data source for the copy operation @4 The type of the data, "Data" (props and attrs) or "Port". @5 'newdata': The new data flag. Flags if the DataSource contains new data. @6 'tracked': True if this source may lead to additional data. If false, the source in itself will not cause to a re-scan. Used in copydata() to allow ports to be rescanned, while props and attrs never cause this (they always have newdata, but this is ignored).
Definition at line 204 of file ReportingComponent.hpp.
bool addMarshaller | ( | RTT::marsh::MarshallInterface * | headerM, |
RTT::marsh::MarshallInterface * | bodyM | ||
) |
Adds a Plugin to receive incomming data.
The marshallers become owned by this component.
header | A marshaller which writes out a header when this component is started. May be null (0). |
body | A marshaller wich will get periodically a serialisation request to process incomming data. May be null(0). |
example: addMarshaller( new HeaderMarshaller(), new ContentsMarshaller() );
Definition at line 216 of file ReportingComponent.cpp.
void cleanReport | ( | ) |
Implementation of base::TaskCore::configureHook().
Calls load().
Definition at line 643 of file ReportingComponent.cpp.
Referenced by ReportingComponent::updateHook().
void cleanupHook | ( | ) | [virtual] |
Implementation of base::TaskCore::cleanupHook().
Calls store() and clears the reporting configuration.
Definition at line 237 of file ReportingComponent.cpp.
bool configureHook | ( | ) | [virtual] |
Implementation of base::TaskCore::configureHook().
Calls load().
Reimplemented in TcpReporting.
Definition at line 243 of file ReportingComponent.cpp.
References ReportingComponent::reportComponent(), ReportingComponent::reportData(), ReportingComponent::reportPort(), ReportingComponent::unreportComponent(), ReportingComponent::unreportData(), and ReportingComponent::unreportPort().
bool copydata | ( | ) |
This real-time function makes copies of the data to be reported.
Definition at line 597 of file ReportingComponent.cpp.
Referenced by ReportingComponent::updateHook().
bool screenComponent | ( | const std::string & | comp | ) | [virtual] |
Write state information of a component.
This method must be overridden by a subclass to be useful.
Reimplemented in FileReporting, and ConsoleReporting.
Definition at line 301 of file ReportingComponent.cpp.
Referenced by ReportingComponent::ReportingComponent().