ug4
|
Communication Policy to add values of a vector and reset value to zero on sending interface. More...
#include <communication_policies.h>
Public Member Functions | |
virtual bool | collect (ug::BinaryBuffer &buff, const Interface &interface) |
ComPol_VecAddSetZero () | |
Default Constructor. More... | |
ComPol_VecAddSetZero (TVector *pVec) | |
Constructor setting vector. More... | |
virtual bool | extract (ug::BinaryBuffer &buff, const Interface &interface) |
adds the values of a buffer to the values on the interface More... | |
virtual int | get_required_buffer_size (const Interface &interface) |
returns the buffer size More... | |
void | set_vector (TVector *pVec) |
sets the vector that we be used for communication More... | |
Public Member Functions inherited from pcl::ICommunicationPolicy< IndexLayout > | |
virtual bool | begin_layout_collection (const Layout *pLayout) |
signals the beginning of a layout collection. More... | |
virtual bool | begin_layout_extraction (const Layout *pLayout) |
signals the beginning of a layout extraction. More... | |
virtual void | begin_level_extraction (int level) |
signals that a new layout-level will now be processed. More... | |
virtual bool | end_layout_collection (const Layout *pLayout) |
signals the end of a layout collection More... | |
virtual bool | end_layout_extraction (const Layout *pLayout) |
signals the end of a layout extraction More... | |
virtual | ~ICommunicationPolicy () |
Private Attributes | |
TVector * | m_pVec |
Additional Inherited Members | |
Public Types inherited from pcl::ICommunicationPolicy< IndexLayout > | |
typedef Layout::Interface | Interface |
typedef IndexLayout | Layout |
Communication Policy to add values of a vector and reset value to zero on sending interface.
This class is used as a policy to add values on the interfaces of a parallel vector and set the values to zero on the sending interface. The collecting routine packs the interface values of the given vector into a stream and and sets those entries to zero immediately after packing. The extracting interfaces receive the stream and add the values to those of already existing in the vector.
TVector | Vector type |
|
inline |
Default Constructor.
|
inline |
Constructor setting vector.
|
inlinevirtual |
writes the interface values into a buffer that will be sent and then sets the value to zero on the interface This function collects all entries of the vector into a buffer that are part of the interface. The values on the interface are then set to zero.
[out] | buff | Buffer |
[in] | interface | Interface that will communicate |
Implements pcl::ICommunicationPolicy< IndexLayout >.
References pcl::OrderedInterface< TType, TContainer, TAlloc >::begin(), pcl::OrderedInterface< TType, TContainer, TAlloc >::end(), pcl::OrderedInterface< TType, TContainer, TAlloc >::get_element(), ug::ComPol_VecAddSetZero< TVector >::m_pVec, PROFILE_BEGIN_GROUP, and ug::Serialize().
|
inlinevirtual |
adds the values of a buffer to the values on the interface
This function adds the values of the buffer to the interface values.
[out] | buff | Buffer |
[in] | interface | Interface that communicates |
Implements pcl::ICommunicationPolicy< IndexLayout >.
References pcl::OrderedInterface< TType, TContainer, TAlloc >::begin(), ug::Deserialize(), pcl::OrderedInterface< TType, TContainer, TAlloc >::end(), pcl::OrderedInterface< TType, TContainer, TAlloc >::get_element(), ug::ComPol_VecAddSetZero< TVector >::m_pVec, and PROFILE_BEGIN_GROUP.
|
inlinevirtual |
returns the buffer size
This function returns the size of the buffer needed for the communication of passed interface. If the vector has fixed size entries this is just the number of interface entries times the size of the entry. In case of a variable size entry type a negative value is returned to indicate that no buffer size can be determined in advanced.
[in] | interface | Interface that will communicate |
Reimplemented from pcl::ICommunicationPolicy< IndexLayout >.
References pcl::OrderedInterface< TType, TContainer, TAlloc >::size().
|
inline |
sets the vector that we be used for communication
References ug::ComPol_VecAddSetZero< TVector >::m_pVec.
|
private |