Cells

Cells are SAI's processing elements. More...


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 CTypeCell, which implements modified semantics for the process member function in order to perform the get and set operations. The template instantiation nature of these classes is made apparent in the notation by not preceding the class name with a 'C'.

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.


Detailed Description

Cells are SAI's processing elements.

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 Documentation

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.


Generated on Thu Oct 21 11:47:37 2010 for MFSM by  doxygen 1.5.9