| Hedgehog
    3.1.0
    A library to generate hybrid pipeline workflow systems | 
Abstraction for cores/nodes that can form groups. More...
#include "any_groupable_abstraction.h"


| Public Member Functions | |
| AnyGroupableAbstraction (size_t const numberThreads) | |
| Constructor using the number of threads. | |
| virtual | ~AnyGroupableAbstraction ()=default | 
| Default destructor. | |
| size_t | numberThreads () const | 
| Accessor to the number of threads. | |
| bool | isInGroup () const | 
| Test if a group is needed. | |
| std::string | nodeId () const | 
| Accessor to the node id (redirection to NodeAbstraction::nodeId) | |
| std::shared_ptr< std::set< AnyGroupableAbstraction * > > const & | group () const | 
| Group of cores accessor. | |
| std::shared_ptr< std::set< NodeAbstraction * > > | groupAsNodes () const | 
| Create a set of the NodeAbstraction constituting the group. | |
| AnyGroupableAbstraction * | groupRepresentative () const | 
| Group representative accessor. | |
| std::string | groupRepresentativeId () const | 
| Group id representative accessor. | |
| void | groupRepresentative (AnyGroupableAbstraction *groupRepresentative) | 
| Group representative setter. | |
| void | group (std::shared_ptr< std::set< AnyGroupableAbstraction * > > const &group) | 
| Group setter. | |
| size_t | numberActiveThreadInGroup () const | 
| Accessor to the number of nodes alive in the group. | |
| std::pair< std::chrono::nanoseconds, std::chrono::nanoseconds > | minmaxWaitDurationGroup () const | 
| Accessor to the min / max wait duration of the nodes in the group. | |
| std::pair< std::chrono::nanoseconds, std::chrono::nanoseconds > | meanSDWaitDurationGroup () const | 
| Accessor to the mean / standard deviation wait duration of the nodes in the group. | |
| std::pair< std::chrono::nanoseconds, std::chrono::nanoseconds > | minmaxExecutionDurationGroup () const | 
| Accessor to the min / max execution duration of the nodes in the group. | |
| std::pair< std::chrono::nanoseconds, std::chrono::nanoseconds > | meanSDExecutionDurationGroup () const | 
| Accessor to the mean / standard deviation execution duration of the nodes in the group. | |
| std::pair< std::chrono::nanoseconds, std::chrono::nanoseconds > | minmaxExecTimePerElementGroup () const | 
| Accessor to the min / max execution per elements duration of the nodes in the group. | |
| std::pair< std::chrono::nanoseconds, std::chrono::nanoseconds > | meanSDExecTimePerElementGroup () const | 
| Accessor to the mean / standard deviation execution per elements duration of the nodes in the group. | |
| std::pair< std::chrono::nanoseconds, std::chrono::nanoseconds > | minmaxMemoryWaitTimeGroup () const | 
| Accessor to the min / max wait time duration of the nodes in the group. | |
| std::pair< std::chrono::nanoseconds, std::chrono::nanoseconds > | meanSDMemoryWaitTimePerElementGroup () const | 
| Accessor to the mean / standard deviation wait time duration of the nodes in the group. | |
| std::pair< size_t, size_t > | minmaxNumberElementsReceivedGroup () const | 
| Accessor to the min / max number of elements received in the group. | |
| std::pair< double, double > | meanSDNumberElementsReceivedGroup () const | 
| Accessor to the mean / standard deviation number of elements received in the group. | |
| virtual void | createGroup (std::map< NodeAbstraction *, std::vector< NodeAbstraction * > > &)=0 | 
| Create a group to insert in the map. | |
| Private Attributes | |
| size_t const | numberThreads_ = 0 | 
| Number of threads. | |
| AnyGroupableAbstraction * | groupRepresentative_ = nullptr | 
| Group representative. | |
| std::shared_ptr< std::set< AnyGroupableAbstraction * > > | group_ = nullptr | 
| Node's group. | |
Abstraction for cores/nodes that can form groups.
Definition at line 39 of file any_groupable_abstraction.h.
| 
 | inlineexplicit | 
Constructor using the number of threads.
| numberThreads | Number of threads (cores) in the group | 
Definition at line 48 of file any_groupable_abstraction.h.
| 
 | virtualdefault | 
Default destructor.
| 
 | pure virtual | 
Create a group to insert in the map.
| 
 | inline | 
Group of cores accessor.
Definition at line 78 of file any_groupable_abstraction.h.

| 
 | inline | 
Group setter.
| group | Group to set | 
Definition at line 113 of file any_groupable_abstraction.h.


| 
 | inline | 
Create a set of the NodeAbstraction constituting the group.
Definition at line 84 of file any_groupable_abstraction.h.
| 
 | inline | 
Group representative accessor.
Definition at line 94 of file any_groupable_abstraction.h.

| 
 | inline | 
Group representative setter.
| groupRepresentative | Group representative to set | 
Definition at line 109 of file any_groupable_abstraction.h.


| 
 | inline | 
Group id representative accessor.
| std::runtime_error | A group representative is not a NodeAbstraction | 
Definition at line 99 of file any_groupable_abstraction.h.

| 
 | inline | 
Test if a group is needed.
Definition at line 64 of file any_groupable_abstraction.h.
| 
 | inline | 
Accessor to the mean / standard deviation execution per elements duration of the nodes in the group.
| std::runtime_error | All the nodes in a group are not of the same types | 
Definition at line 292 of file any_groupable_abstraction.h.

| 
 | inline | 
Accessor to the mean / standard deviation execution duration of the nodes in the group.
Definition at line 229 of file any_groupable_abstraction.h.
| 
 | inline | 
Accessor to the mean / standard deviation wait time duration of the nodes in the group.
| std::runtime_error | All the nodes in a group are not of the same types | 
Definition at line 363 of file any_groupable_abstraction.h.

| 
 | inline | 
Accessor to the mean / standard deviation number of elements received in the group.
| std::runtime_error | All the nodes in a group are not of the same types | 
Definition at line 435 of file any_groupable_abstraction.h.

| 
 | inline | 
Accessor to the mean / standard deviation wait duration of the nodes in the group.
| std::runtime_error | All the nodes in a group are not of the same types | 
Definition at line 175 of file any_groupable_abstraction.h.

| 
 | inline | 
Accessor to the min / max execution per elements duration of the nodes in the group.
| std::runtime_error | All the nodes in a group are not of the same types | 
Definition at line 258 of file any_groupable_abstraction.h.

| 
 | inline | 
Accessor to the min / max execution duration of the nodes in the group.
Definition at line 215 of file any_groupable_abstraction.h.
| 
 | inline | 
Accessor to the min / max wait time duration of the nodes in the group.
| std::runtime_error | All the nodes in a group are not of the same types | 
Definition at line 331 of file any_groupable_abstraction.h.

| 
 | inline | 
Accessor to the min / max number of elements received in the group.
| std::runtime_error | All the nodes in a group are not of the same types | 
Definition at line 402 of file any_groupable_abstraction.h.

| 
 | inline | 
Accessor to the min / max wait duration of the nodes in the group.
| std::runtime_error | All the nodes in a group are not of the same types | 
Definition at line 140 of file any_groupable_abstraction.h.

| 
 | inline | 
Accessor to the node id (redirection to NodeAbstraction::nodeId)
Definition at line 68 of file any_groupable_abstraction.h.
| 
 | inline | 
Accessor to the number of nodes alive in the group.
| std::runtime_error | The cores in the groups are not of the same type | 
Definition at line 118 of file any_groupable_abstraction.h.
| 
 | inline | 
Accessor to the number of threads.
Definition at line 60 of file any_groupable_abstraction.h.

| 
 | private | 
Node's group.
Definition at line 43 of file any_groupable_abstraction.h.
| 
 | private | 
Group representative.
Definition at line 42 of file any_groupable_abstraction.h.
| 
 | private | 
Number of threads.
Definition at line 41 of file any_groupable_abstraction.h.