Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
OCL::ReportingComponent Class Reference

A Component for periodically reporting Component Port contents to a human readable text format. The default format is a table with a header. More...

#include <ReportingComponent.hpp>

Inheritance diagram for OCL::ReportingComponent:
Inheritance graph
[legend]

Public Types

typedef RTT::DataFlowInterface::Ports Ports
 
- Public Types inherited from RTT::TaskContext
typedef std::vector< std::string > PeerList
 
typedef boost::function< void(base::PortInterface *)> SlotFunction
 
- Public Types inherited from RTT::base::TaskCore
enum  TaskState
 

Public Member Functions

bool addMarshaller (RTT::marsh::MarshallInterface *headerM, RTT::marsh::MarshallInterface *bodyM)
 
bool removeMarshallers ()
 
 ReportingComponent (std::string name="Reporting")
 
virtual ~ReportingComponent ()
 
Script Methods
virtual bool configureHook ()
 
virtual void cleanupHook ()
 
virtual bool screenComponent (const std::string &comp)
 
bool reportComponent (const std::string &component)
 
bool unreportComponent (const std::string &component)
 
bool reportPort (const std::string &component, const std::string &port)
 
bool unreportPort (const std::string &component, const std::string &port)
 
bool reportData (const std::string &component, const std::string &dataname)
 
bool unreportData (const std::string &component, const std::string &datasource)
 
bool copydata ()
 
void snapshot ()
 
void cleanReport ()
 
- Public Member Functions inherited from RTT::TaskContext
bool addAttribute (const std::string &name, T &attr)
 
bool addAttribute (base::AttributeBase &a)
 
bool addAttribute (base::AttributeBase &a)
 
bool addAttribute (const std::string &name, T &attr)
 
bool addConstant (const std::string &name, const T &attr)
 
bool addConstant (const std::string &name, const T &attr)
 
base::InputPortInterfaceaddEventPort (const std::string &name, base::InputPortInterface &port, SlotFunction callback=SlotFunction())
 
base::InputPortInterfaceaddEventPort (base::InputPortInterface &port, SlotFunction callback=SlotFunction())
 
Operation< Signature > & addOperation (Operation< Signature > &op)
 
Operation< Signature > & addOperation (Operation< Signature > &op)
 
Operation< typename internal::GetSignature< Func >::Signature > & addOperation (const std::string name, Func func, Service *serv, ExecutionThread et=ClientThread)
 
Operation< Signature > & addOperation (const std::string name, Signature *func, ExecutionThread et=ClientThread)
 
Operation< typename internal::GetSignature< Func >::Signature > & addOperation (const std::string name, Func func, Service *serv, ExecutionThread et=ClientThread)
 
Operation< Signature > & addOperation (const std::string name, Signature *func, ExecutionThread et=ClientThread)
 
virtual bool addPeer (TaskContext *peer, std::string alias="")
 
virtual bool addPeer (TaskContext *peer, std::string alias="")
 
base::PortInterfaceaddPort (const std::string &name, base::PortInterface &port)
 
base::PortInterfaceaddPort (base::PortInterface &port)
 
Property< T > & addProperty (const std::string &name, T &attr)
 
bool addProperty (base::PropertyBase &pb)
 
Property< T > & addProperty (const std::string &name, T &attr)
 
bool addProperty (base::PropertyBase &pb)
 
ConfigurationInterfaceattributes ()
 
ConfigurationInterfaceattributes ()
 
virtual void clear ()
 
virtual bool connectPeers (TaskContext *peer)
 
virtual bool connectPeers (TaskContext *peer)
 
virtual bool connectPorts (TaskContext *peer)
 
virtual bool connectServices (TaskContext *peer)
 
virtual bool connectServices (TaskContext *peer)
 
virtual void disconnect ()
 
virtual void disconnect ()
 
virtual void disconnectPeers (const std::string &name)
 
virtual void disconnectPeers (const std::string &name)
 
base::ActivityInterfacegetActivity ()
 
T * getActivity ()
 
base::AttributeBasegetAttribute (const std::string &name) const
 
base::AttributeBasegetAttribute (const std::string &name) const
 
virtual const std::string & getName () const
 
OperationInterfacePartgetOperation (std::string name)
 
OperationInterfacePartgetOperation (std::string name)
 
virtual TaskContextgetPeer (const std::string &peer_name) const
 
virtual TaskContextgetPeer (const std::string &peer_name) const
 
virtual PeerList getPeerList () const
 
virtual PeerList getPeerList () const
 
base::PortInterfacegetPort (const std::string &name) const
 
base::PropertyBasegetProperty (const std::string &name) const
 
base::PropertyBasegetProperty (const std::string &name) const
 
boost::shared_ptr< ServiceType > getProvider (const std::string &name)
 
boost::shared_ptr< ServiceType > getProvider (const std::string &name)
 
virtual bool hasPeer (const std::string &peer_name) const
 
virtual bool hasPeer (const std::string &peer_name) const
 
bool loadService (const std::string &service_name)
 
bool loadService (const std::string &service_name)
 
OperationInterfaceoperations ()
 
OperationInterfaceoperations ()
 
DataFlowInterfaceports ()
 
const DataFlowInterfaceports () const
 
PropertyBagproperties ()
 
PropertyBagproperties ()
 
Service::shared_ptr provides (const std::string &service_name)
 
Service::shared_ptr provides ()
 
Service::shared_ptr provides ()
 
Service::shared_ptr provides (const std::string &service_name)
 
virtual bool ready ()
 
virtual void removePeer (const std::string &name)
 
virtual void removePeer (TaskContext *peer)
 
virtual void removePeer (TaskContext *peer)
 
virtual void removePeer (const std::string &name)
 
ServiceRequester::shared_ptr requires (const std::string &service_name)
 
ServiceRequester::shared_ptr requires (const std::string &service_name)
 
ServiceRequester::shared_ptr requires ()
 
ServiceRequester::shared_ptr requires ()
 
bool setActivity (base::ActivityInterface *new_act)
 
virtual bool start ()
 
virtual bool stop ()
 
 TaskContext (const std::string &name, TaskState initial_state=Stopped)
 
virtual ~TaskContext ()
 
- Public Member Functions inherited from RTT::base::TaskCore
virtual bool activate ()
 
virtual bool activate ()
 
virtual bool cleanup ()
 
virtual bool cleanup ()
 
virtual bool configure ()
 
virtual bool configure ()
 
const ExecutionEngineengine () const
 
ExecutionEngineengine ()
 
virtual void error ()
 
virtual void error ()
 
virtual unsigned getCpuAffinity () const
 
virtual unsigned getCpuAffinity () const
 
unsigned int getCycleCounter () const
 
unsigned int getIOCounter () const
 
virtual Seconds getPeriod () const
 
virtual Seconds getPeriod () const
 
virtual TaskState getTargetState () const
 
virtual TaskState getTaskState () const
 
unsigned int getTimeOutCounter () const
 
unsigned int getTriggerCounter () const
 
virtual bool inException () const
 
virtual bool inException () const
 
virtual bool inFatalError () const
 
virtual bool inFatalError () const
 
virtual bool inRunTimeError () const
 
virtual bool inRunTimeError () const
 
virtual bool isActive () const
 
virtual bool isActive () const
 
virtual bool isConfigured () const
 
virtual bool isConfigured () const
 
virtual bool isRunning () const
 
virtual bool isRunning () const
 
virtual bool recover ()
 
virtual bool recover ()
 
virtual bool setCpuAffinity (unsigned cpu)
 
virtual bool setCpuAffinity (unsigned cpu)
 
virtual bool setPeriod (Seconds s)
 
virtual bool setPeriod (Seconds s)
 
 TaskCore (TaskState initial_state=Stopped, const std::string &name=std::string())
 
virtual bool trigger ()
 
virtual bool trigger ()
 
virtual bool update ()
 
virtual bool update ()
 
virtual ~TaskCore ()
 

Protected Types

typedef boost::tuple< std::string, RTT::base::DataSourceBase::shared_ptr, std::string, RTT::base::PropertyBase *, RTT::base::InputPortInterface *, bool, bool > DTupple
 
typedef std::vector< std::pair< boost::shared_ptr< RTT::marsh::MarshallInterface >, boost::shared_ptr< RTT::marsh::MarshallInterface > > > Marshallers
 
typedef std::vector< DTuppleReports
 
enum  T_Types {
  T_QualName = 0, T_PortDS, T_DataType, T_Property,
  T_Port, T_NewData, T_Tracked
}
 Use these to index DTupple objects. More...
 

Protected Member Functions

void makeReport2 ()
 
bool reportDataSource (std::string tag, std::string type, RTT::base::DataSourceBase::shared_ptr origm, RTT::base::InputPortInterface *ipi, bool)
 
bool screenImpl (const std::string &comp, std::ostream &output)
 
virtual bool startHook ()
 
virtual void stopHook ()
 
bool unreportDataSource (std::string tag)
 
virtual void updateHook ()
 
- Protected Member Functions inherited from RTT::TaskContext
virtual void dataOnPortCallback (base::PortInterface *port)
 
virtual bool dataOnPortHook (base::PortInterface *port)
 
void forceActivity (base::ActivityInterface *new_act)
 
- Protected Member Functions inherited from RTT::base::TaskCore
virtual bool breakUpdateHook ()
 
virtual void errorHook ()
 
virtual void exception ()
 
virtual void exceptionHook ()
 
virtual void fatal ()
 

Protected Attributes

RTT::Property< bool > complexdecompose
 
RTT::Property< std::string > config
 
RTT::Property< bool > decompose
 
RTT::Property< bool > insnapshot
 
Marshallers marshallers
 
RTT::internal::DataSource< bool >::shared_ptr mchecker
 If false, a sequence size has changed. More...
 
bool onlyNewData
 
RTT::PropertyBag report
 
RTT::Property< PropertyBagreport_data
 
RTT::ConnPolicy report_policy
 
Reports root
 
bool snapshotted
 
RTT::os::TimeService::ticks starttime
 
RTT::Property< bool > synchronize_with_logging
 
RTT::Property< RTT::os::TimeService::Secondstimestamp
 
RTT::Property< bool > writeHeader
 
- Protected Attributes inherited from RTT::base::TaskCore
ExecutionEngineee
 
unsigned int mCycleCounter
 
unsigned int mIOCounter
 
std::string mName
 
TaskState mTaskState
 
unsigned int mTimeOutCounter
 
unsigned int mTriggerCounter
 
bool mTriggerOnStart
 

Additional Inherited Members

- Public Attributes inherited from RTT::base::TaskCore
 Exception
 
 FatalError
 
 Init
 
 PreOperational
 
 Running
 
 RunTimeError
 
 Stopped
 

Detailed Description

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.

Configuration
The ReportingComponent is configured using its properties. For example, to enable writing a header or not. The ReportData struct describes which ports and peer components need to be monitored. You need to load properties into this struct (see RTT::Marshalling service). This struct can be filled in as such:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "cpf.dtd">
<!-- ... 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>

Definition at line 81 of file ReportingComponent.hpp.

Member Typedef Documentation

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.

typedef std::vector< std::pair<boost::shared_ptr<RTT::marsh::MarshallInterface>, boost::shared_ptr<RTT::marsh::MarshallInterface> > > OCL::ReportingComponent::Marshallers
protected

Definition at line 229 of file ReportingComponent.hpp.

Definition at line 91 of file ReportingComponent.hpp.

typedef std::vector<DTupple> OCL::ReportingComponent::Reports
protected

Stores the 'datasource' of all reported items as properties.

Definition at line 211 of file ReportingComponent.hpp.

Member Enumeration Documentation

Use these to index DTupple objects.

Enumerator
T_QualName 
T_PortDS 
T_DataType 
T_Property 
T_Port 
T_NewData 
T_Tracked 

Definition at line 207 of file ReportingComponent.hpp.

Constructor & Destructor Documentation

OCL::ReportingComponent::ReportingComponent ( std::string  name = "Reporting")

Set up a component for reporting.

Definition at line 181 of file ReportingComponent.cpp.

OCL::ReportingComponent::~ReportingComponent ( )
virtual

Definition at line 219 of file ReportingComponent.cpp.

Member Function Documentation

bool OCL::ReportingComponent::addMarshaller ( RTT::marsh::MarshallInterface headerM,
RTT::marsh::MarshallInterface bodyM 
)

Adds a Plugin to receive incomming data. The marshallers become owned by this component.

Parameters
headerA marshaller which writes out a header when this component is started. May be null (0).
bodyA 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 222 of file ReportingComponent.cpp.

void OCL::ReportingComponent::cleanReport ( )

Definition at line 654 of file ReportingComponent.cpp.

void OCL::ReportingComponent::cleanupHook ( )
virtual

Implementation of base::TaskCore::cleanupHook(). Calls store() and clears the reporting configuration.

Reimplemented from RTT::base::TaskCore.

Definition at line 243 of file ReportingComponent.cpp.

bool OCL::ReportingComponent::configureHook ( )
virtual

Implementation of base::TaskCore::configureHook(). Calls load().

Reimplemented from RTT::base::TaskCore.

Reimplemented in OCL::TcpReporting.

Definition at line 249 of file ReportingComponent.cpp.

bool OCL::ReportingComponent::copydata ( )

This real-time function makes copies of the data to be reported.

Returns
true if new data is available.

Definition at line 603 of file ReportingComponent.cpp.

void OCL::ReportingComponent::makeReport2 ( )
protected

Definition at line 617 of file ReportingComponent.cpp.

bool OCL::ReportingComponent::removeMarshallers ( )

Remove and delete all added Marshallers.

Definition at line 237 of file ReportingComponent.cpp.

bool OCL::ReportingComponent::reportComponent ( const std::string &  component)

Report all the data ports of a component.

Definition at line 350 of file ReportingComponent.cpp.

bool OCL::ReportingComponent::reportData ( const std::string &  component,
const std::string &  dataname 
)

Report a specific data source of a component.

Definition at line 479 of file ReportingComponent.cpp.

bool OCL::ReportingComponent::reportDataSource ( std::string  tag,
std::string  type,
RTT::base::DataSourceBase::shared_ptr  origm,
RTT::base::InputPortInterface ipi,
bool  track 
)
protected

Definition at line 515 of file ReportingComponent.cpp.

bool OCL::ReportingComponent::reportPort ( const std::string &  component,
const std::string &  port 
)

Report a specific data port of a component.

Definition at line 388 of file ReportingComponent.cpp.

bool OCL::ReportingComponent::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 OCL::FileReporting, and OCL::ConsoleReporting.

Definition at line 307 of file ReportingComponent.cpp.

bool OCL::ReportingComponent::screenImpl ( const std::string &  comp,
std::ostream &  output 
)
protected

This method writes out the status of a component's interface.

Definition at line 314 of file ReportingComponent.cpp.

void OCL::ReportingComponent::snapshot ( )

Copy the reported data and trigger the generation of a sampling line.

Definition at line 595 of file ReportingComponent.cpp.

bool OCL::ReportingComponent::startHook ( )
protectedvirtual

Reimplemented from RTT::base::TaskCore.

Reimplemented in OCL::TcpReporting, OCL::NetcdfReporting, OCL::FileReporting, and OCL::ConsoleReporting.

Definition at line 547 of file ReportingComponent.cpp.

void OCL::ReportingComponent::stopHook ( )
protectedvirtual

Reimplemented from RTT::base::TaskCore.

Reimplemented in OCL::TcpReporting, OCL::NetcdfReporting, OCL::FileReporting, and OCL::ConsoleReporting.

Definition at line 698 of file ReportingComponent.cpp.

bool OCL::ReportingComponent::unreportComponent ( const std::string &  component)

Unreport the data ports of a component.

Definition at line 370 of file ReportingComponent.cpp.

bool OCL::ReportingComponent::unreportData ( const std::string &  component,
const std::string &  datasource 
)

Unreport a specific data source of a component.

Definition at line 511 of file ReportingComponent.cpp.

bool OCL::ReportingComponent::unreportDataSource ( std::string  tag)
protected

Definition at line 536 of file ReportingComponent.cpp.

bool OCL::ReportingComponent::unreportPort ( const std::string &  component,
const std::string &  port 
)

Unreport a specific data port of a component.

Definition at line 468 of file ReportingComponent.cpp.

void OCL::ReportingComponent::updateHook ( )
protectedvirtual

This not real-time function processes the copied data.

Reimplemented from RTT::base::TaskCore.

Definition at line 660 of file ReportingComponent.cpp.

Member Data Documentation

RTT::Property<bool> OCL::ReportingComponent::complexdecompose
protected

Definition at line 241 of file ReportingComponent.hpp.

RTT::Property<std::string> OCL::ReportingComponent::config
protected

Definition at line 238 of file ReportingComponent.hpp.

RTT::Property<bool> OCL::ReportingComponent::decompose
protected

Definition at line 240 of file ReportingComponent.hpp.

RTT::Property<bool> OCL::ReportingComponent::insnapshot
protected

Definition at line 242 of file ReportingComponent.hpp.

Marshallers OCL::ReportingComponent::marshallers
protected

Definition at line 230 of file ReportingComponent.hpp.

RTT::internal::DataSource<bool>::shared_ptr OCL::ReportingComponent::mchecker
protected

If false, a sequence size has changed.

Definition at line 251 of file ReportingComponent.hpp.

bool OCL::ReportingComponent::onlyNewData
protected

Definition at line 246 of file ReportingComponent.hpp.

RTT::PropertyBag OCL::ReportingComponent::report
protected

Definition at line 231 of file ReportingComponent.hpp.

RTT::Property<PropertyBag> OCL::ReportingComponent::report_data
protected

Definition at line 244 of file ReportingComponent.hpp.

RTT::ConnPolicy OCL::ReportingComponent::report_policy
protected

Definition at line 245 of file ReportingComponent.hpp.

Reports OCL::ReportingComponent::root
protected

Definition at line 212 of file ReportingComponent.hpp.

bool OCL::ReportingComponent::snapshotted
protected

Used to communicate between snapshot() and updateHook() if updateHook needs to make a copy.

Definition at line 237 of file ReportingComponent.hpp.

RTT::os::TimeService::ticks OCL::ReportingComponent::starttime
protected

Definition at line 248 of file ReportingComponent.hpp.

RTT::Property<bool> OCL::ReportingComponent::synchronize_with_logging
protected

Definition at line 243 of file ReportingComponent.hpp.

RTT::Property<RTT::os::TimeService::Seconds> OCL::ReportingComponent::timestamp
protected

Definition at line 249 of file ReportingComponent.hpp.

RTT::Property<bool> OCL::ReportingComponent::writeHeader
protected

Definition at line 239 of file ReportingComponent.hpp.


The documentation for this class was generated from the following files:


ocl
Author(s): OCL Development Team
autogenerated on Mon Mar 23 2020 04:47:20