| IOLink 1.11.0

Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | List of all members
iolink::RandomAccessFactory Class Reference

A factory to create RandomAccess instances from various ressources. More...

`#include <iolink/storage/RandomAccessFactory.h>`

## Public Member Functions
| RandomAccessFactory (const RandomAccessFactory &other)=delete
| RandomAccessFactory (RandomAccessFactory &&other)=delete
RandomAccessFactory & | operator= (const RandomAccessFactory &other)=delete
RandomAccessFactory & | operator= (RandomAccessFactory &&other)=delete

## Static Public Member Functions
static std::shared_ptr< RandomAccess > | allocate (size_t size)
| Create an in-memory RandomAccess of given size.
static std::shared_ptr< RandomAccess > | copyInMemory (std::shared_ptr< RandomAccess > randomAccess)
| Load given RandomAccess in memory.
static std::shared_ptr< RandomAccess > | mapFile (const std::string &filePath)
| Get an accessor from a file mapped in memory.
static std::shared_ptr< RandomAccess > | fromBuffer (void *buffer, size_t size)
| Create a RandomAccess from given memory area.
static std::shared_ptr< RandomAccess > | openURIRead (const Uri &uri)
| Create a RandomAccess from given URI, opening URI in Read Only.
static std::shared_ptr< RandomAccess > | openHTTPRead (const Uri &uri, const std::string &method, const HTTPHeaders &headers)
| Create a RandomAccess from given HTTP URI, opening URI in Read Only.
static std::shared_ptr< RandomAccess > | extractRegion (std::shared_ptr< RandomAccess > src, size_t offset)
| Creates an accessor to a subset of a RandomAccess.
static std::shared_ptr< RandomAccess > | extractRegion (std::shared_ptr< RandomAccess > src, size_t offset, size_t size)
| Creates an accessor to a subset of a RandomAccess.
static std::shared_ptr< RandomAccess > | fromStream (std::shared_ptr< StreamAccess > stream)
| Create a RandomAccess that will delegate to a StreamAccess.

## Detailed Description

A factory to create RandomAccess instances from various ressources.

## Member Function Documentation

## ◆ copyInMemory()

static std::shared_ptr< RandomAccess > iolink::RandomAccessFactory::copyInMemory | ( | std::shared_ptr< RandomAccess > | randomAccess | ) |
| static

Load given RandomAccess in memory.

If storage is already an in-memory RandomAccess, return it (no copy are done).

Exceptions

  InvalidArgument | if input randomAccess is null

## ◆ extractRegion() [1/2]

static std::shared_ptr< RandomAccess > iolink::RandomAccessFactory::extractRegion | ( | std::shared_ptr< RandomAccess > | src,
|  | size_t | offset
| ) |  |
| static

Creates an accessor to a subset of a RandomAccess.

Parameters

  src | The accessor to create the subset from
  offset | The offset from the start of the source accessor

Exceptions

  InvalidArgument | if input randomAccess is null
  Error | When offset is out of range.

## ◆ extractRegion() [2/2]

static std::shared_ptr< RandomAccess > iolink::RandomAccessFactory::extractRegion | ( | std::shared_ptr< RandomAccess > | src,
|  | size_t | offset,
|  | size_t | size
| ) |  |
| static

Creates an accessor to a subset of a RandomAccess.

Parameters

  src | The accessor to create the subset from
  offset | The offset from the start of the source accessor
  size | The size of the subset.

Exceptions

  InvalidArgument | if input randomAccess is null
  Error | When the subset range is out of the source accessor range.

## ◆ fromBuffer()

static std::shared_ptr< RandomAccess > iolink::RandomAccessFactory::fromBuffer | ( | void * | buffer,
|  | size_t | size
| ) |  |
| static

Create a RandomAccess from given memory area.

Warning
  The return DataAccess does not have the ownership of given buffer. You must carefully manage lifetime of each objects.

## ◆ fromStream()

static std::shared_ptr< RandomAccess > iolink::RandomAccessFactory::fromStream | ( | std::shared_ptr< StreamAccess > | stream | ) |
| static

Create a RandomAccess that will delegate to a StreamAccess.

Exceptions

  InvalidArgument | if input stream is null

## ◆ mapFile()

static std::shared_ptr< RandomAccess > iolink::RandomAccessFactory::mapFile | ( | const std::string & | filePath | ) |
| static

Get an accessor from a file mapped in memory.

Parameters

  filePath | The path to the file to map.

Returns
  A RandomAccess with read and write capabilities.

Exceptions

  Error | If the file does not exist already

## ◆ openHTTPRead()

static std::shared_ptr< RandomAccess > iolink::RandomAccessFactory::openHTTPRead | ( | const Uri & | uri,
|  | const std::string & | method,
|  | const HTTPHeaders & | headers
| ) |  |
| static

Create a RandomAccess from given HTTP URI, opening URI in Read Only.

Requested HTTP server must support HTTP range requests.

Parameters

  uri | The HTTP(S) URI to get.
  method | The HTTP request method.
  headers | The HTTP request headers.

## ◆ openURIRead()

static std::shared_ptr< RandomAccess > iolink::RandomAccessFactory::openURIRead | ( | const Uri & | uri | ) |
| static

Create a RandomAccess from given URI, opening URI in Read Only.

If the URI scheme is 'file': creates a ReadRandomAccess using StreamAccessFactory::openFileRead(). If the URI scheme is 'http(s)': calls openHTTPRead(), using the GET method and no headers.

The documentation for this class was generated from the following file:

- iolink/public/include/iolink/storage/RandomAccessFactory.h