$search

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]

List of all members.

Public Types

typedef
RTT::DataFlowInterface::Ports 
Ports

Public Member Functions

bool addMarshaller (RTT::marsh::MarshallInterface *headerM, RTT::marsh::MarshallInterface *bodyM)
bool removeMarshallers ()
 ReportingComponent (std::string name="Reporting")
virtual ~ReportingComponent ()
Script Methods

void cleanReport ()
virtual void cleanupHook ()
virtual bool configureHook ()
bool copydata ()
bool reportComponent (const std::string &component)
bool reportData (const std::string &component, const std::string &dataname)
bool reportPort (const std::string &component, const std::string &port)
virtual bool screenComponent (const std::string &comp)
void snapshot ()
bool unreportComponent (const std::string &component)
bool unreportData (const std::string &component, const std::string &datasource)
bool unreportPort (const std::string &component, const std::string &port)

Protected Types

typedef boost::tuple
< std::string,
RTT::base::DataSourceBase::shared_ptr,
std::string, 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_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, 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 Attributes

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.
RTT::PropertyBag report
RTT::Property< PropertyBagreport_data
Reports root
bool snapshotted
RTT::os::TimeService::ticks starttime
RTT::Property< bool > synchronize_with_logging
RTT::Property
< RTT::os::TimeService::Seconds
timestamp
RTT::Property< bool > writeHeader

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">
     <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.


Member Typedef Documentation

typedef boost::tuple<std::string, RTT::base::DataSourceBase::shared_ptr, std::string,bool,bool> OCL::ReportingComponent::DTupple [protected]

tuple that describes each sample. Uses get<N>() to read it: The qualified name of the data (componentname.portname) The data source of the data. Always returns the last value. A copy command to copy from this data source to another one The target data source for the copy operation The type of the data, "Data" (props and attrs) or "Port". 'newdata': The new data flag. Flags if the DataSource contains new data. '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_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 162 of file ReportingComponent.cpp.

OCL::ReportingComponent::~ReportingComponent (  )  [virtual]

Definition at line 195 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:
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 198 of file ReportingComponent.cpp.

void OCL::ReportingComponent::cleanReport (  ) 

Definition at line 604 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 219 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 225 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 563 of file ReportingComponent.cpp.

void OCL::ReportingComponent::makeReport2 (  )  [protected]

Definition at line 577 of file ReportingComponent.cpp.

bool OCL::ReportingComponent::removeMarshallers (  ) 

Remove and delete all added Marshallers.

Definition at line 213 of file ReportingComponent.cpp.

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

Report all the data ports of a component.

Definition at line 326 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 450 of file ReportingComponent.cpp.

bool OCL::ReportingComponent::reportDataSource ( std::string  tag,
std::string  type,
RTT::base::DataSourceBase::shared_ptr  origm,
bool   
) [protected]
bool OCL::ReportingComponent::reportPort ( const std::string &  component,
const std::string &  port 
)

Report a specific data port of a component.

Definition at line 364 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::ConsoleReporting, and OCL::FileReporting.

Definition at line 283 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 290 of file ReportingComponent.cpp.

void OCL::ReportingComponent::snapshot (  ) 

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

Definition at line 554 of file ReportingComponent.cpp.

bool OCL::ReportingComponent::startHook (  )  [protected, virtual]

Reimplemented from RTT::base::TaskCore.

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

Definition at line 517 of file ReportingComponent.cpp.

void OCL::ReportingComponent::stopHook (  )  [protected, virtual]

Reimplemented from RTT::base::TaskCore.

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

Definition at line 635 of file ReportingComponent.cpp.

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

Unreport the data ports of a component.

Definition at line 346 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 482 of file ReportingComponent.cpp.

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

Definition at line 506 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 439 of file ReportingComponent.cpp.

void OCL::ReportingComponent::updateHook (  )  [protected, virtual]

This not real-time function processes the copied data.

Reimplemented from RTT::base::TaskCore.

Definition at line 610 of file ReportingComponent.cpp.


Member Data Documentation

Definition at line 238 of file ReportingComponent.hpp.

Definition at line 240 of file ReportingComponent.hpp.

Definition at line 241 of file ReportingComponent.hpp.

Definition at line 230 of file ReportingComponent.hpp.

If false, a sequence size has changed.

Definition at line 248 of file ReportingComponent.hpp.

Definition at line 231 of file ReportingComponent.hpp.

Definition at line 243 of file ReportingComponent.hpp.

Definition at line 212 of file ReportingComponent.hpp.

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

Definition at line 237 of file ReportingComponent.hpp.

Definition at line 245 of file ReportingComponent.hpp.

Definition at line 242 of file ReportingComponent.hpp.

Definition at line 246 of file ReportingComponent.hpp.

Definition at line 239 of file ReportingComponent.hpp.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines


ocl
Author(s): OCL Development Team
autogenerated on Fri Mar 1 16:28:36 2013