commonlib
disk_buffer.h File Reference

DiskBuffer class implements a first-in-first-out (FIFO) data structure stored on physical disc instead of memory. More...

#include "memory.h"
#include <string.h>
#include <mutex>
#include "fifo_buffer_base.h"
#include <fstream>
#include "risingdelay.h"
#include <experimental/filesystem>

Go to the source code of this file.

Classes

class  FileHandler< T >
 Wrapper of operations on file. More...
 
class  DiskBuffer< T >
 The class DiskBuffer implements a first-in-first-out (FIFO) data structure on physical disc. More...
 

Functions

template<typename T >
size_t transferBuffer (IDirectArraySourceBuffer< T > &source, DiskBuffer< T > &target, bool incrementPosition=true, size_t samplesCount=(std::numeric_limits< size_t >::max)())
 Transferring data from source buffer to disk buffer without intermediate buffer. More...
 
template<typename T >
size_t transferBuffer (DiskBuffer< T > &source, IDirectArrayTargetBuffer< T > &target, bool incrementPosition=true, size_t samplesCount=(std::numeric_limits< size_t >::max)())
 Transferring data from disk buffer to target buffer without intermediate buffer. More...
 

Detailed Description

DiskBuffer class implements a first-in-first-out (FIFO) data structure stored on physical disc instead of memory.

Author
Boris Laharnar
Date
22/10/2019
Version
1.0

Function Documentation

◆ transferBuffer() [1/2]

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

Transferring data from source buffer to disk buffer without intermediate buffer.

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

◆ transferBuffer() [2/2]

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

Transferring data from disk buffer to target buffer without intermediate buffer.

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