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 | |
ComPol_VecScaleCopy () | |
Default Constructor. | |
ComPol_VecScaleCopy (TVector *pVec, number scale) | |
Constructor setting vector and scaling factor. | |
virtual bool | extract (ug::BinaryBuffer &buff, const Interface &interface) |
scales values of a buffer and writes the into the interface | |
virtual int | get_required_buffer_size (const Interface &interface) |
returns the buffer size | |
void | set_scale (number scale) |
sets the scaling factor | |
void | set_vector (TVector *pVec) |
sets the vector that we be used for communication | |
![]() | |
virtual bool | begin_layout_collection (const Layout *pLayout) |
signals the beginning of a layout collection. | |
virtual bool | begin_layout_extraction (const Layout *pLayout) |
signals the beginning of a layout extraction. | |
virtual void | begin_level_extraction (int level) |
signals that a new layout-level will now be processed. | |
virtual bool | end_layout_collection (const Layout *pLayout) |
signals the end of a layout collection | |
virtual bool | end_layout_extraction (const Layout *pLayout) |
signals the end of a layout extraction | |
virtual | ~ICommunicationPolicy () |
Private Attributes | |
TVector * | m_pVec |
number | m_scale |
Additional Inherited Members | |
![]() | |
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 |