DetectorGraph  2.0
Public Member Functions | Public Attributes | List of all members
DetectorGraph::ProcessorContainer Class Referenceabstract

A Base class for a basic Graph container. More...

Collaboration diagram for DetectorGraph::ProcessorContainer:

Public Member Functions

 ProcessorContainer ()
 
template<class TTopic >
void ProcessData (const TTopic &topicState)
 Pushes data followed by graph evaluation and output processing. More...
 
void ProcessGraph ()
 Performs all pending Graph Evaluations with output processing. More...
 
virtual void ProcessOutput ()=0
 Called after each Graph Evaluation. More...
 
virtual ~ProcessorContainer ()
 

Public Attributes

Graph mGraph
 

Detailed Description

A Base class for a basic Graph container.

Below is an example of how to implement a ProcessorContainer:

class HelloWorldGraph : public DetectorGraph::ProcessorContainer
{
public:
HelloWorldGraph()
: mOverheatingDetector(&mGraph)
{
}
OverheatingDetector mOverheatingDetector;
virtual void ProcessOutput()
{
DetectorGraph::Topic<OverheatingState>* overheatingStateTopic = mGraph.ResolveTopic<OverheatingState>();
if (overheatingStateTopic->HasNewValue())
{
const OverheatingState& overheatingState = overheatingStateTopic->GetNewValue();
cout << "OverheatingState.isOverheating = " << ((overheatingState.isOverheating) ? "true" : "false") << endl;
}
}
};

And an example of how to invoke it:

HelloWorldGraph thermostat;
thermostat.ProcessData(TemperatureSample(70));
thermostat.ProcessData(TemperatureSample(90));
thermostat.ProcessData(TemperatureSample(100));
thermostat.ProcessData(TemperatureSample(110));
thermostat.ProcessData(TemperatureSample(120));

This is the simplest way to build detector graphs and is used throughout the examples.

Definition at line 36 of file processorcontainer.hpp.

Constructor & Destructor Documentation

◆ ProcessorContainer()

DetectorGraph::ProcessorContainer::ProcessorContainer ( )
inline

Definition at line 39 of file processorcontainer.hpp.

◆ ~ProcessorContainer()

virtual DetectorGraph::ProcessorContainer::~ProcessorContainer ( )
inlinevirtual

Definition at line 76 of file processorcontainer.hpp.

Member Function Documentation

◆ ProcessData()

template<class TTopic >
void DetectorGraph::ProcessorContainer::ProcessData ( const TTopic &  topicState)
inline

Pushes data followed by graph evaluation and output processing.

Pushes

Parameters
topicStateinto the graph, performs all pending graph evaluations calling ProcessOutput for each one of them.

Definition at line 50 of file processorcontainer.hpp.

◆ ProcessGraph()

void DetectorGraph::ProcessorContainer::ProcessGraph ( )
inline

Performs all pending Graph Evaluations with output processing.

Definition at line 57 of file processorcontainer.hpp.

◆ ProcessOutput()

virtual void DetectorGraph::ProcessorContainer::ProcessOutput ( )
pure virtual

Called after each Graph Evaluation.

Users should provide an implementation for this method where they can inspect specific output topics or process all new outputs generically using Graph::GetOutputList.

Member Data Documentation

◆ mGraph

Graph DetectorGraph::ProcessorContainer::mGraph

Definition at line 74 of file processorcontainer.hpp.


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