COOLFluiD  Release kernel
COOLFluiD is a Collaborative Simulation Environment (CSE) focused on complex MultiPhysics simulations.
Public Member Functions | Static Public Member Functions | Protected Attributes | Private Member Functions | Friends | List of all members
CommWrapper Class Referenceabstract

Base wrapper class serving as interface. More...

#include <CommWrapper.hpp>

Inherits Component.

Inherited by CommWrapperMArray< T, NumDims >, CommWrapperMArray< T, 1 >, CommWrapperMArray< T, 2 >, CommWrapperPtr< T >, and CommWrapperVector< T >.

Public Member Functions

 CommWrapper (const std::string &name)
 
virtual const void * pack (std::vector< int > &map, void *buf=nullptr) const =0
 
virtual const void * pack (void *buf=nullptr) const =0
 
template<typename T >
void pack (std::vector< T > &buf, std::vector< int > &map) const
 
template<typename T >
void pack (std::vector< T > &buf) const
 
virtual void unpack (void *buf, std::vector< int > &map) const =0
 
virtual void unpack (void *buf) const =0
 
template<typename T >
void unpack (std::vector< T > &buf, std::vector< int > &map) const
 
template<typename T >
void unpack (std::vector< T > &buf) const
 
virtual void resize (const int size)=0
 
virtual int size_of () const =0
 
virtual int size () const =0
 
virtual int stride () const =0
 
virtual bool is_data_type_Uint () const =0
 
bool needs_update () const
 
- 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 ()
 Get the class name. More...
 
- Static Public Member Functions inherited from Component
static std::string type_name ()
 Get the class name. More...
 

Protected Attributes

int m_stride
 number of elements to be groupped together and treat as once in communication pattern More...
 
bool m_needs_update
 bool holding the info if data to be synchronized & kept up-to-date with commpattern or only keep up-to-date More...
 

Private Member Functions

virtual void * start_view ()=0
 
virtual void end_view (void *data)=0
 

Friends

template<typename T >
class CommWrapperView
 making CommWrapperView as friend in order to access create_view and destroy_view More...
 

Additional Inherited Members

- 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 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

Base wrapper class serving as interface.

Definition at line 42 of file CommWrapper.hpp.

Constructor & Destructor Documentation

CommWrapper ( const std::string &  name)
inline

constructor

Parameters
namethe component will appear under this name

Definition at line 51 of file CommWrapper.hpp.

Member Function Documentation

virtual void end_view ( void *  data)
privatepure virtual

Finalizes view to the raw data held by the class wrapped by the commwrapper.

Warning
if the underlying data is not linear the data is copied back, therefore performance is degraded
Parameters
datapointer to the data

Implemented in CommWrapperVector< T >, CommWrapperPtr< T >, CommWrapperMArray< T, 2 >, and CommWrapperMArray< T, 1 >.

virtual bool is_data_type_Uint ( ) const
pure virtual

Check for Uint, necessary for cheking type of gid in commpattern

Returns
true or false depending if registered data's type was Uint or not

Implemented in CommWrapperVector< T >, CommWrapperPtr< T >, CommWrapperMArray< T, 2 >, and CommWrapperMArray< T, 1 >.

bool needs_update ( ) const
inline

accessor to lag telling if wrapped data needs to be synchronized, if not then it will only be modified if commpattern changes (for example coordinates of a mesh)

Returns
true or false depending if to be synchronized

Definition at line 142 of file CommWrapper.hpp.

virtual const void* pack ( std::vector< int > &  map,
void *  buf = nullptr 
) const
pure virtual

extraction of sub-data from data wrapped by the objectwrapper, pattern specified by map if nullptr is passed (also default parameter), memory is allocated.

Parameters
mapvector of map
Returns
pointer to the newly allocated data which is of size size_of()*stride()*map.size()

Implemented in CommWrapperVector< T >, CommWrapperPtr< T >, CommWrapperMArray< T, 2 >, and CommWrapperMArray< T, 1 >.

virtual const void* pack ( void *  buf = nullptr) const
pure virtual

extraction of data from the wrapped object, returned memory is a copy, not a view if nullptr is passed (also default parameter), memory is allocated.

Returns
pointer to the newly allocated data which is of size size_of()*stride()*size()

Implemented in CommWrapperVector< T >, CommWrapperPtr< T >, CommWrapperMArray< T, 2 >, and CommWrapperMArray< T, 1 >.

void pack ( std::vector< T > &  buf,
std::vector< int > &  map 
) const
inline

extraction of data from the wrapped object into the specified vector for technical reason, only sizeof(T)==size_of() and sizeof(T)==1 (byte-based buffer) are allowed to cast to

Parameters
bufreference to std::vector to hold the data
mapvector of map

Definition at line 68 of file CommWrapper.hpp.

void pack ( std::vector< T > &  buf) const
inline

extraction of data from the wrapped object into the specified vector for technical reason, only sizeof(T)==size_of() and sizeof(T)==1 (byte-based buffer) are allowed to cast to

Parameters
bufreference to std::vector to hold the data

Definition at line 79 of file CommWrapper.hpp.

virtual void resize ( const int  size)
pure virtual

resizes the underlying wrapped object

Parameters
sizenew dimension size

Implemented in CommWrapperVector< T >, CommWrapperPtr< T >, CommWrapperMArray< T, 2 >, and CommWrapperMArray< T, 1 >.

virtual int size ( ) const
pure virtual

accessor to the size of the array (without divided by stride)

Returns
length of the array

Implemented in CommWrapperVector< T >, CommWrapperPtr< T >, CommWrapperMArray< T, 2 >, and CommWrapperMArray< T, 1 >.

virtual int size_of ( ) const
pure virtual

acts like a sizeof() operator

Returns
size of the data members in bytes

Implemented in CommWrapperVector< T >, CommWrapperPtr< T >, CommWrapperMArray< T, 2 >, and CommWrapperMArray< T, 1 >.

virtual void* start_view ( )
privatepure virtual

Create an access to the raw data inside the wrapped class.

Warning
if underlying raw data is not linear, a copy is being made.
Returns
pointer to data

Implemented in CommWrapperVector< T >, CommWrapperPtr< T >, CommWrapperMArray< T, 2 >, and CommWrapperMArray< T, 1 >.

virtual int stride ( ) const
pure virtual

accessor to the stride which tells how many array elements count as one in the communication pattern

Returns
number of items to be treated as one

Implemented in CommWrapperVector< T >, CommWrapperPtr< T >, CommWrapperMArray< T, 2 >, and CommWrapperMArray< T, 1 >.

static std::string type_name ( )
inlinestatic

Get the class name.

Definition at line 145 of file CommWrapper.hpp.

virtual void unpack ( void *  buf,
std::vector< int > &  map 
) const
pure virtual

returning back values into the data wrapped by objectwrapper

Parameters
mapvector of map
pointerto the data to be committed back

Implemented in CommWrapperVector< T >, CommWrapperPtr< T >, CommWrapperMArray< T, 2 >, and CommWrapperMArray< T, 1 >.

virtual void unpack ( void *  buf) const
pure virtual

returning back values into the data wrapped by objectwrapper

Parameters
pointerto the data to be committed back

Implemented in CommWrapperVector< T >, CommWrapperPtr< T >, CommWrapperMArray< T, 2 >, and CommWrapperMArray< T, 1 >.

void unpack ( std::vector< T > &  buf,
std::vector< int > &  map 
) const
inline

returniong back data to the wrapped object into the specified vector for technical reason, only sizeof(T)==size_of() and sizeof(T)==1 (byte-based buffer) are allowed to cast from

Parameters
bufreference to std::vector to hold the data
mapvector of map

Definition at line 100 of file CommWrapper.hpp.

void unpack ( std::vector< T > &  buf) const
inline

returniong back data to the wrapped object into the specified vector for technical reason, only sizeof(T)==size_of() and sizeof(T)==1 (byte-based buffer) are allowed to cast from

Parameters
bufreference to std::vector to hold the data

Definition at line 111 of file CommWrapper.hpp.

Friends And Related Function Documentation

friend class CommWrapperView
friend

making CommWrapperView as friend in order to access create_view and destroy_view

Definition at line 45 of file CommWrapper.hpp.

Member Data Documentation

bool m_needs_update
protected

bool holding the info if data to be synchronized & kept up-to-date with commpattern or only keep up-to-date

Definition at line 165 of file CommWrapper.hpp.

int m_stride
protected

number of elements to be groupped together and treat as once in communication pattern

Definition at line 162 of file CommWrapper.hpp.


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