commonlib
buffer.h File Reference

Basic source and target buffer interface and data transferring operation. More...

#include "memory.h"
#include <memory>
#include <mutex>
#include <cassert>
#include "lock_guard.h"

Go to the source code of this file.

Classes

class  ISourceBuffer< T >
 Basic source buffer interface. More...
 
class  ITargetBuffer< T >
 Basic target buffer interface. More...
 

Functions

template<typename T , typename Locking = UseLock>
size_t transferBuffer (ISourceBuffer< T > &source, ITargetBuffer< T > &target, bool incrementPosition=true, size_t samplesCount=(std::numeric_limits< size_t >::max)())
 Transferring data from one buffer to another. More...
 
template<typename S , typename T >
size_t transferBuffer (ISourceBuffer< S > &source, ITargetBuffer< T > &target, bool incrementPosition=true, size_t samplesCount=(std::numeric_limits< size_t >::max)())
 Transferring data of specific type between the buffer of the specific type and the raw buffer. More...
 

Detailed Description

Basic source and target buffer interface and data transferring operation.

Reverse container view.

Author
Anže Škerjanc
Date
01/02/2019
Version
1.0
Author
Anže Škerjanc
Date
29/05/2019
Version
1.0

Function Documentation

◆ transferBuffer() [1/2]

template<typename T , typename Locking = UseLock>
size_t transferBuffer ( ISourceBuffer< T > &  source,
ITargetBuffer< T > &  target,
bool  incrementPosition = true,
size_t  samplesCount = (std::numeric_limits<size_t>::max)() 
)

Transferring data from one buffer to another.

Parameters
sourcesource buffer
targetdestination buffer
incrementPositionan option if change position
samplesCounta number of samples to be transferred
Returns
number of transferred samples

◆ transferBuffer() [2/2]

template<typename S , typename T >
size_t transferBuffer ( ISourceBuffer< S > &  source,
ITargetBuffer< T > &  target,
bool  incrementPosition = true,
size_t  samplesCount = (std::numeric_limits<size_t>::max)() 
)

Transferring data of specific type between the buffer of the specific type and the raw buffer.

Raw buffer type is generally byte. No conversion on data intended.

Parameters
sourcesource buffer
targetdestination buffer
incrementPositionan option if change position
samplesCounta number of samples to be transferred
Returns
number of transferred samples