ug4
|
Communicates the distribution infos through existing interfaces. More...
Public Types | |
typedef Layout::Element | Element |
typedef Layout::Type | GeomObj |
typedef Layout::Interface | Interface |
typedef Interface::const_iterator | InterfaceIter |
typedef TLayout | Layout |
Public Types inherited from pcl::ICommunicationPolicy< TLayout > | |
typedef Layout::Interface | Interface |
typedef TLayout | Layout |
Public Member Functions | |
virtual bool | collect (ug::BinaryBuffer &buff, const Interface &intfc) |
write target processes and move-flag More... | |
ComPol_SynchronizeDistInfos (DistInfoSupplier &distInfos, bool merge) | |
void | enable_merge (bool enable) |
virtual bool | extract (ug::BinaryBuffer &buff, const Interface &intfc) |
read target processes and move-flag More... | |
virtual int | get_required_buffer_size (const Interface &interface) |
returns the size of the buffer in bytes, that will be required for interface-communication. More... | |
bool | merge_enabled () |
virtual | ~ComPol_SynchronizeDistInfos () |
Public Member Functions inherited from pcl::ICommunicationPolicy< TLayout > | |
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 () |
Protected Attributes | |
DistInfoSupplier & | m_distInfos |
bool | m_mergeEnabled |
Communicates the distribution infos through existing interfaces.
Distribution infos are packed into the send buffer for each node and are either merged with existing entries or existing entries are simply overwritten. The merge/overwrite behavior can be chosen through the member method enable_merge.
typedef Layout::Element ug::ComPol_SynchronizeDistInfos< TLayout >::Element |
typedef Layout::Type ug::ComPol_SynchronizeDistInfos< TLayout >::GeomObj |
typedef Layout::Interface ug::ComPol_SynchronizeDistInfos< TLayout >::Interface |
typedef Interface::const_iterator ug::ComPol_SynchronizeDistInfos< TLayout >::InterfaceIter |
typedef TLayout ug::ComPol_SynchronizeDistInfos< TLayout >::Layout |
|
inline |
|
inlinevirtual |
|
inlinevirtual |
write target processes and move-flag
Implements pcl::ICommunicationPolicy< TLayout >.
References ug::Serialize().
|
inline |
Referenced by ug::SynchronizeDistInfos().
|
inlinevirtual |
read target processes and move-flag
Implements pcl::ICommunicationPolicy< TLayout >.
References ug::Deserialize().
|
inlinevirtual |
returns the size of the buffer in bytes, that will be required for interface-communication.
Determines the size of the buffer on which the extract and receive methods for the given interface will operate. If the buffer-size can't be calculated on both sides (sender and receiver) this method should return -1. This will lead to an additional communication step in which buffer-sizes will be exchanged. If the buffer-size can be calculated on both sides, it makes sense to do so, since this leads to less communication and overall improved performance. The buffer-size has to exactly match the size of required memory. Make sure that you completely fill the buffer during collect(...) and that you read all data during extract(...). The default implementation returns -1.
Reimplemented from pcl::ICommunicationPolicy< TLayout >.
|
inline |
|
protected |
|
protected |