Interfaces

template< typename tIterator, typename tOutputIterator >
    void GetIterator( uint32_t pid, tIterator srcBegin, size_t offset, 
                      tOutputIterator resultBegin, 
                      size_t count )                            // (1) Begin-Offset-Count

template< typename tIterator, typename tOutputIterator >
void BSPLib::GetIterator( uint32_t pid, tIterator srcBegin, tIterator srcCursor, 
                          tOutputIterator resultBegin,
                          tOutputIterator resultEnd )           // (2) Begin-Cursor-End

template< typename tIterator >
void BSPLib::GetIterator( uint32_t pid, tIterator begin, 
                          tIterator cursor, tIterator end )     // (3) Same Begin-Cursor-End

template< typename tIterator >
void BSPLib::GetIterator( uint32_t pid, tIterator begin, 
                          tIterator end )                       // (4) Same Begin-End

template< typename tIterator >
void BSPLib::GetIterator( uint32_t pid, tIterator begin,
                          size_t offset, size_t count )         // (5) Same Begin-Offset-Count

template< typename tPrimitive, size_t tSizeIn, size_t tSizeOut >
void BSPLib::GetCArray( uint32_t pid, tPrimitive( &srcCArray )[tSizeIn], 
                        tPrimitive( &dstCArray )[tSizeOut] )    // (6) C-Array

template< typename tPrimitive, size_t tSizeIn, size_t tSizeOut >
void BSPLib::GetCArray( uint32_t pid, 
                        tPrimitive( &cArray )[tSizeIn] )        // (7) Same C-Array

template < typename tContainerIn, typename tContainerOut >
void BSPLib::GetContainer( uint32_t pid, tContainerIn &srcContainer,
                           tContainerOut &dstContainer )        // (8) General container   

template < typename tContainerIn, typename tContainerOut >
void BSPLib::GetContainer( uint32_t pid,
                           tContainer &srcContainer )           // (9) Same container

This operation get the registered memory of another processor and copies the memory into its own memory. Gets the values from the container in the processor with identifier pid and stores it the required destination container. Internally, it calculates the size in bytes that is required for the primitive, and calls to BSPLib::Classic::Get().

  1. Gets a buffer of size count primitives from source iterator srcBegin that is located in the processor with identifier pid at offset offset primitives from source iterator srcBegin and stores it at the location of dstBegin.
  2. Has the same behaviour as (1), but now we use a cursor instead of a count. The offset is defined as offset = srcCursor - srcBegin and count = resultEnd - resultBegin.
  3. Has the same behaviour as (1), using that srcBegin = begin, srcCursor = resultBegin = cursor and resultEnd = end.
  4. Has the same behaviour as (3), using that cursor = begin.
  5. Has the same behaviour as (1), using that srcBegin = resultBegin = begin.
  6. Gets an entire C-Array as buffer from srcCArray located in the processor with identifier pid and stores it at the location of dstCArray.
  7. Has the same behaviour as (6), but now srcCArray = dstCArray = cArray, so the source is in the same location as the destination, but in the other processor.
  8. Gets an entire container as buffer from srcContainer located in the processor with identifier pid and stores it at the location of dstContainer.
  9. Has the same behaviour as (8), but now srcContainer = dstContainer = container.

Warnings

  • In case of (8) and (9), make sure the container is described by contiguous iterators.

Tip

There are also other specialisations available. See Containers, Primitives and Pointers.

Parameters

Pre-Conditions

Post-Conditions

Examples

(1) Begin-Offset-Count

(2) Begin-Cursor-End

(3) Same Begin-Cursor-End

(4) Same Begin-End

(5) Same Begin-Offset-Count

(6) C-Array

(7) Same C-Array

(8) General container

(9) Same container