COOLFluiD  Release kernel
COOLFluiD is a Collaborative Simulation Environment (CSE) focused on complex MultiPhysics simulations.
Public Types | Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
Table< ValueT > Class Template Reference

Component holding a 2 dimensional array of a templated type. More...

#include <Table.hpp>

Inherits Component.

Public Types

typedef ValueT value_type
 the value type stored in each entry of the 2-dimensional table More...
 
typedef TableArray< ValueT >::type ArrayT
 the type of the internal structure of the table More...
 
typedef TableRow< ValueT >::type Row
 the type of a row in the internal structure of the table More...
 
typedef TableConstRow< ValueT >::type ConstRow
 the const type of a row in the internal structure of the table More...
 
typedef ArrayBufferT< ValueT > Buffer
 the type of the buffer used to interact with the table More...
 
- Public Types inherited from Component
typedef ComponentIterator< Componentiterator
 type of the iterator to Component More...
 
typedef ComponentIterator< Component const > const_iterator
 type of the iterator to constant Component More...
 
- Public Types inherited from SignalHandler
typedef std::vector< SignalPtrstorage_t
 storage type for signals More...
 

Public Member Functions

 Table (const std::string &name)
 
void set_row_size (const Uint nb_cols)
 
virtual void resize (const Uint nb_rows)
 
ArrayTarray ()
 
const ArrayTarray () const
 
Buffer create_buffer (const size_t buffersize=16384)
 
boost::shared_ptr< Buffercreate_buffer_ptr (const size_t buffersize=16384)
 
Row operator[] (const Uint idx)
 
ConstRow operator[] (const Uint idx) const
 
Uint size () const
 
Uint row_size (Uint i=0) const
 
template<typename VectorT >
void set_row (const Uint array_idx, const VectorT &row)
 
Table< ValueT > & seekp (const Uint p)
 Set position for the next input by <<. More...
 
Uint tellp () const
 Get the current seek position as used by <<. More...
 
- Public Member Functions inherited from Component
 Component (const std::string &name)
 
virtual ~Component ()
 Virtual destructor. More...
 
const std::string & name () const
 Access the name of the component. More...
 
void rename (const std::string &name)
 Rename the component. More...
 
URI uri () const
 Construct the full path. More...
 
void complete_path (URI &path) const
 
Handle< Componentaccess_component (const URI &path) const
 
Handle< Componentaccess_component_checked (const URI &path)
 
Handle< Component const > access_component_checked (const URI &path) const
 
Handle< Componenthandle ()
 Get a handle to the component. More...
 
Handle< Component const > handle () const
 
template<typename ComponentT >
Handle< ComponentT > handle ()
 
template<typename ComponentT >
Handle< ComponentT const > handle () const
 
Handle< Componentparent () const
 
Handle< Component const > root () const
 
Handle< Componentroot ()
 
Handle< Componentget_child (const std::string &name)
 
Handle< Component const > get_child (const std::string &name) const
 
Handle< Componentget_child_checked (const std::string &name)
 
Handle< Component const > get_child_checked (const std::string &name) const
 
Handle< Componentcreate_component (const std::string &name, const std::string &builder)
 Build a (sub)component of this component using the extended type_name of the component. More...
 
template<typename T >
Handle< T > create_component (const std::string &name)
 Create a (sub)component of this component automatically cast to the specified type. More...
 
template<typename T >
Handle< T > create_static_component (const std::string &name)
 Create a static "always there" subcomponent. More...
 
Componentadd_component (const boost::shared_ptr< Component > &subcomp)
 Add the passed component as a subcomponent. More...
 
void add_link (Component &linked_component)
 
boost::shared_ptr< Componentremove_component (const std::string &name)
 Remove a (sub)component of this component. More...
 
boost::shared_ptr< Componentremove_component (Component &subcomp)
 Remove a (sub)component of this component. More...
 
void clear ()
 Remove all sub-components of this component, except for the static ones. More...
 
void move_to (Component &to_parent)
 
std::string tree (bool basic_mode=false, Uint depth=0, Uint recursion_level=0) const
 
std::string info (const std::string &what=std::string("cospt")) const
 
size_t count_children () const
 
virtual std::string derived_type_name () const =0
 
PropertyListproperties ()
 
const PropertyListproperties () const
 
OptionListoptions ()
 
const OptionListoptions () const
 
void reset_options ()
 Reset all options to their default value. More...
 
void configure_option_recursively (const std::string &optname, const boost::any &val)
 
Componentmark_basic ()
 marks this component as basic. More...
 
template<typename ComponentT >
void put_components (std::vector< boost::shared_ptr< ComponentT > > &vec, const bool recurse)
 
template<typename ComponentT >
void put_components (std::vector< boost::shared_ptr< ComponentT const > > &vec, const bool recurse) const
 
template<>
void put_components (std::vector< boost::shared_ptr< Component > > &vec, const bool recurse)
 
template<>
void put_components (std::vector< boost::shared_ptr< Component const > > &vec, const bool recurse) const
 
Component::iterator begin ()
 The begin iterator for a range containing Components. More...
 
Component::iterator end ()
 The end iterator for a range containing Components. More...
 
Component::const_iterator begin () const
 The begin iterator for a range containing Components (const version) More...
 
Component::const_iterator end () const
 The end iterator for a range containing Components (const version) More...
 
Component::iterator recursive_begin ()
 The begin iterator for a recursive range containing Components. More...
 
Component::iterator recursive_end ()
 The end iterator for a recursive range containing Components. More...
 
Component::const_iterator recursive_begin () const
 The begin iterator for a recursive range containing Components (const version) More...
 
Component::const_iterator recursive_end () const
 The end iterator for a recursive range containing Components (const version) More...
 
template<typename T >
Handle< T > create_component (const std::string &name, const std::string &builder)
 Create a component using the reduced builder name. More...
 
void signal_configure (SignalArgs &args)
 configures all the options on this class More...
 
void signal_create_component (SignalArgs &args)
 creates a component from this component More...
 
void signal_delete_component (SignalArgs &args)
 delete this component More...
 
void signal_move_component (SignalArgs &args)
 moves a component from this component to another More...
 
void signal_list_tree (SignalArgs &args) const
 lists the sub components and puts them on the xml_tree More...
 
void signal_list_tree_recursive (SignalArgs &args) const
 prints tree recursively More...
 
void signal_list_properties (SignalArgs &args) const
 lists the properties of this component More...
 
void signal_list_options (SignalArgs &args) const
 lists the properties of this component More...
 
void signal_list_options_recursive (SignalArgs &args) const
 prints all options recursive More...
 
void signal_list_signals (SignalArgs &args) const
 lists the signals of this component More...
 
void signal_list_signals_recursive (SignalArgs &args) const
 prints all signals recursive More...
 
void signal_print_info (SignalArgs &args) const
 gets info on this component More...
 
void signal_print_tree (SignalArgs &args) const
 signal to print the tree More...
 
void signature_print_tree (SignalArgs &args) const
 signature to signal_print_tree More...
 
void signal_rename_component (SignalArgs &args)
 renames this component More...
 
void signal_save_tree (SignalArgs &args)
 dumps the tree to a file More...
 
void signal_list_content (SignalArgs &args)
 gives information about this component such as options, signals, ... More...
 
void signal_signature (SignalArgs &args)
 Gives a signal signature, if any. More...
 
void signature_create_component (SignalArgs &args)
 
void signature_rename_component (SignalArgs &args)
 
void signature_move_component (SignalArgs &args)
 
void signal_store_timings (SignalArgs &args)
 Signal to store the timings (if enabled) into properties, i.e. for readout from python or the GUI. More...
 
void signal_clear (SignalArgs &args)
 Signal to remove all sub-components. More...
 
void signal_reset_options (SignalArgs &args)
 Signal to set all options to their default value. More...
 
void signal_add_tag (SignalArgs &args)
 Signal to add a tag. More...
 
void signature_add_tag (SignalArgs &args)
 
- Public Member Functions inherited from SignalHandler
 ~SignalHandler ()
 
const storage_tsignal_list () const
 
SignalPtr signal (const SignalID &sname)
 
SignalCPtr signal (const SignalID &sname) const
 
SignalRet call_signal (const SignalID &sname, SignalArgs &sinput)
 Calls the signal by providing its name and input. More...
 
SignalRet call_signal (const SignalID &sname, std::vector< std::string > &sinput)
 Calls the signal by providing its name and input. More...
 
bool signal_exists (const SignalID &sname) const
 Checks if a signal exists or not. More...
 
Signalregist_signal (const SignalID &sname)
 Regist signal. More...
 
void unregist_signal (const SignalID &sname)
 Unregist signal. More...
 
- Public Member Functions inherited from ConnectionManager
 ~ConnectionManager ()
 destructor closes all connections More...
 
Connectionconnection (const std::string &name)
 
Connectionmanage_connection (const std::string &name)
 manages a connection (creates if necessary) More...
 
- Public Member Functions inherited from TaggedObject
 TaggedObject ()
 Constructor. More...
 
bool has_tag (const std::string &tag) const
 
void add_tag (const std::string &tag)
 
std::vector< std::string > get_tags () const
 
void remove_tag (const std::string &tag)
 

Static Public Member Functions

static std::string type_name ()
 
- Static Public Member Functions inherited from Component
static std::string type_name ()
 Get the class name. More...
 

Private Attributes

ArrayT m_array
 storage of the array More...
 
Uint m_pos
 position when used as output stream More...
 

Additional Inherited Members

- Public Attributes inherited from SignalHandler
storage_t m_signals
 storage of the signals More...
 
- Protected Member Functions inherited from Component
Componentadd_static_component (const boost::shared_ptr< Component > &subcomp)
 Add a static (sub)component of this component. More...
 
void raise_tree_updated_event ()
 raise event that the path has changed More...
 

Detailed Description

template<typename ValueT>
class cf3::common::Table< ValueT >

Component holding a 2 dimensional array of a templated type.

The internal structure is that of a boost::multi_array, so storage is contingent in memory for reducing cache missing The table can be filled through a buffer. The buffer avoids the typical reallocation in a std::vector. Flushing the buffer will resize the table and copy itself into the table. This happens automatically when the buffer is destroyed, or can also be done manually.

See also
class ArrayBufferT Before using the table one has to be sure that the buffer is flushed.
Author
Willem Deconinck
Bart Janssens
Tiago Quintino

Definition at line 45 of file Table.hpp.

Member Typedef Documentation

typedef TableArray<ValueT>::type ArrayT

the type of the internal structure of the table

Definition at line 53 of file Table.hpp.

typedef ArrayBufferT<ValueT> Buffer

the type of the buffer used to interact with the table

Definition at line 62 of file Table.hpp.

typedef TableConstRow<ValueT>::type ConstRow

the const type of a row in the internal structure of the table

Definition at line 59 of file Table.hpp.

typedef TableRow<ValueT>::type Row

the type of a row in the internal structure of the table

Definition at line 56 of file Table.hpp.

typedef ValueT value_type

the value type stored in each entry of the 2-dimensional table

Definition at line 50 of file Table.hpp.

Constructor & Destructor Documentation

Table ( const std::string &  name)
inline

Contructor

Parameters
nameof the component

Definition at line 68 of file Table.hpp.

Member Function Documentation

ArrayT& array ( )
inline

Modifiable access to the internal structure

Returns
A reference to the array data

Definition at line 92 of file Table.hpp.

const ArrayT& array ( ) const
inline

Non-modifiable access to the internal structure

Returns
A const reference to the array data

Definition at line 96 of file Table.hpp.

Buffer create_buffer ( const size_t  buffersize = 16384)
inline

Create a buffer with a given number of entries

Parameters
[in]buffersizethe size that the buffer is allocated with the default value is 16384
Returns
A Buffer object that can fill this Array

Definition at line 102 of file Table.hpp.

boost::shared_ptr<Buffer> create_buffer_ptr ( const size_t  buffersize = 16384)
inline

Definition at line 109 of file Table.hpp.

Row operator[] ( const Uint  idx)
inline

Operator to have modifiable access to a table-row

Returns
A mutable row of the underlying array

Definition at line 119 of file Table.hpp.

ConstRow operator[] ( const Uint  idx) const
inline

Operator to have non-modifiable access to a table-row

Returns
A const row of the underlying array

Definition at line 123 of file Table.hpp.

virtual void resize ( const Uint  nb_rows)
inlinevirtual

Resize the array to the given number of rows

Parameters
[in]nb_rowsThe number of rows after resizing

Definition at line 85 of file Table.hpp.

Uint row_size ( Uint  i = 0) const
inline

Number of columns , or number of elements of one table-row

Returns
The number of elements in each row, i.e. the number of columns of the array
Note
All row_sizes are the same, so an index is not required, but could be passed to be consistent with DynTable with variable row_sizes

Definition at line 133 of file Table.hpp.

Table<ValueT>& seekp ( const Uint  p)
inline

Set position for the next input by <<.

Definition at line 150 of file Table.hpp.

void set_row ( const Uint  array_idx,
const VectorT &  row 
)
inline

copy a given row into the array, The row type must have the size() function declared

Parameters
[in]array_idxthe index of the row that will be set
[in]rowthe row that will be copied into the array

Definition at line 139 of file Table.hpp.

void set_row_size ( const Uint  nb_cols)
inline

Initialize the array with a fixed column size and remove all existing rows, if any. The number of rows can be changed dynamically.

Parameters
[in]nb_colsnumber of columns in the table.

Definition at line 78 of file Table.hpp.

Uint size ( ) const
inline

Number of rows, excluding rows that may be in the buffer

Returns
The number of local rows in the array

Definition at line 127 of file Table.hpp.

Uint tellp ( ) const
inline

Get the current seek position as used by <<.

Definition at line 157 of file Table.hpp.

static std::string type_name ( )
inlinestatic

Get the component type name

Returns
the component type name

Definition at line 73 of file Table.hpp.

Member Data Documentation

ArrayT m_array
private

storage of the array

Definition at line 165 of file Table.hpp.

Uint m_pos
private

position when used as output stream

Definition at line 167 of file Table.hpp.


The documentation for this class was generated from the following file:
Send comments to:
COOLFluiD Web Admin