ug4
|
Communication Policy to copy scaled values of a vector. More...
#include <communication_policies.h>
Public Member Functions | |
virtual bool | collect (ug::BinaryBuffer &buff, const Interface &interface) |
writes the interface values into a buffer that will be sent More... | |
ComPol_VecScaleCopy () | |
Default Constructor. More... | |
ComPol_VecScaleCopy (TVector *pVec, number scale) | |
Constructor setting vector and scaling factor. More... | |
virtual bool | extract (ug::BinaryBuffer &buff, const Interface &interface) |
scales values of a buffer and writes the into the interface More... | |
virtual int | get_required_buffer_size (const Interface &interface) |
returns the buffer size More... | |
void | set_scale (number scale) |
sets the scaling factor 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 |
number | m_scale |
Additional Inherited Members | |
Public Types inherited from pcl::ICommunicationPolicy< IndexLayout > | |
typedef Layout::Interface | Interface |
typedef IndexLayout | Layout |
Communication Policy to copy scaled values of a vector.
This class is used as a policy to copy scaled values on the interfaces of a parallel vector. The collecting interfaces pack the values on the interface into a stream. The extracting interfaces receive the stream and overwrites the values of the vector with the sent data times the scaling.
TVector | Vector type |
|
inline |
Default Constructor.
|
inline |
Constructor setting vector and scaling factor.
|
inlinevirtual |
writes the interface values into a buffer that will be sent
This function collects all entries of the vector into a buffer that are part of the interface.
[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_VecScaleCopy< TVector >::m_pVec, PROFILE_BEGIN_GROUP, and ug::Serialize().
|
inlinevirtual |
scales values of a buffer and writes the into the interface
This function writes the scaled buffer values into the vector.
[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_VecScaleCopy< TVector >::m_pVec, ug::ComPol_VecScaleCopy< TVector >::m_scale, 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 scaling factor
References ug::ComPol_VecScaleCopy< TVector >::m_scale.
|
inline |
sets the vector that we be used for communication
References ug::ComPol_VecScaleCopy< TVector >::m_pVec.
|
private |
|
private |