Classes | |
class | fsf::CSync |
The barrier synchronization cell Holds incoming active pulses until the specified node pattern (as a filter) is found in the pulse or until timeout. More... | |
class | fsf::CCell |
The base processing cell class. More... | |
class | fsf::CCharBufferSize |
CharBuffer size value access cell (get only). More... | |
class | fsf::CNodeTimeStamp |
Accessor cell for node time stamp value (get only). More... | |
class | fsf::CNodeName |
Accessor cell for node name value (get and set). More... | |
class | fsf::CNodeTypeID |
Node type ID value access cell (get only). More... | |
class | fsf::CNodeDelete |
Deletes passive target node from the passive pulse and makes repository notify its connected cells of a change in the pulse's structure. More... | |
class | fsf::CTypeCell< Type > |
The type cell template class. More... | |
Fundamental type cells | |
Fundamental type cells provide get or set access to the value of corresponding type nodes.
They are all template instantiations of template class | |
typedef CTypeCell< long int > | fsf::Int32Cell |
Type cell for 32 bits integer node. | |
typedef CTypeCell< long long int > | fsf::Int64Cell |
Type cell for 64 bits integer node. | |
typedef CTypeCell< float > | fsf::Float32Cell |
Type cell for 32 bits floating point node. | |
typedef CTypeCell< double > | fsf::Float64Cell |
Type cell for 64 bits floating point node. | |
typedef CTypeCell< bool > | fsf::BoolCell |
Type cell for boolean node. | |
typedef CTypeCell< std::string > | fsf::StringCell |
Type cell for string node. |
The Fsf library contains a base cell class, that implements cell-cell and cell-repository connectivity mechanisms (lists of pointers). It also implements all the computation associated with the parallel processing of active pulses. In MFSM, in each cell, each active pulse is processed in a separate thread. Each passive filtering operation is also carried in a separate thread. As a result, some precautions must be taken for concurrent data access. Thanks to inheritance and virtual functions, when implementing a specialized cell derived from the base cell, only the specific computation must be coded, in an overloaded process virtual member funtion. All the events leading to the call to this process function, including filtering, will be automatically performed. A cell can be active or inactive. For efficiency purposes, passive filtering only occurs when the cell is activated (activation fails if passive filtering fails), and when explicitely notified by the repository after a cell notified the repository of a structural change in the passive pulse.
If the root of the active filter specifies a pattern, the specialized process function is invoked for each handle generated by the filtering (sequentially, in the same thread). If the root of the passive filter specifies a pattern, only one passive handle is generated (pointing to the first encountered node satisfying the pattern).
typedef CTypeCell<bool> fsf::BoolCell |
Type cell for boolean node.
typedef CTypeCell<float> fsf::Float32Cell |
Type cell for 32 bits floating point node.
typedef CTypeCell<double> fsf::Float64Cell |
Type cell for 64 bits floating point node.
typedef CTypeCell<long int> fsf::Int32Cell |
Type cell for 32 bits integer node.
typedef CTypeCell<long long int> fsf::Int64Cell |
Type cell for 64 bits integer node.
typedef CTypeCell<std::string> fsf::StringCell |
Type cell for string node.