| Face Engine SDK 5.34.0 A face detection, recognition and tracking engine.

Public Types | Public Member Functions | List of all members
fsdk::IImageTransfer Struct Referenceabstract
ImageTransfer

Image transfer facility which give speed up of usage internal memory pool. More...

`#include <IImageTransfer.h>`

Inheritance diagram for fsdk::IImageTransfer:

## Public Types
using | ImagesBatchFuture = vlc::future< IImagesBatchPtr >
| Common alias for IImageTransfer asynchronous interface.

## Public Member Functions
virtual ResultValue< FSDKError, Ref< IImagesBatch > > | transfer (Span< const Image > images, Image::MemoryResidence residence) const noexcept=0
| Transfer of multiple images. More...
virtual Result< FSDKError > | validate (Span< const Image > images, Image::MemoryResidence residence, Span< Result< FSDKError >> errors) const noexcept=0
| Validate input of multiple frames in a single function call. More...
virtual ImagesBatchFuture | transferAsync (Span< const Image > images, Image::MemoryResidence residence) const =0
| Asynchronously transfer multiple images. More...
Public Member Functions inherited from fsdk::IRefCounted
virtual int32_t | retain () noexcept=0
| Increase strong reference count. More...
virtual int32_t | retainLocked () noexcept=0
| Increase strong reference count thread safely. More...
virtual int32_t | release () noexcept=0
| Decrease strong reference count. More...
virtual int32_t | getRefCount () const noexcept=0
| Get actual strong reference count. More...
virtual int32_t | retainWeak () noexcept=0
| Increase weak reference count. More...
virtual int32_t | releaseWeak () noexcept=0
| Decrease weak reference count. More...
virtual int32_t | getWeakRefCount () const noexcept=0
| Get actual weak reference count. More...

## Detailed Description

Image transfer facility which give speed up of usage internal memory pool.

Note
  This module designed to work only while FaceEngine initialized. Usage of this module after FaceEngine destruction is undefined behaviour.
  This module is only make sense to use if user get sdk compiled with cuda support and if user set deviceClass to GPU nevertheless transfer accomplished CPU -> GPU or reverse.

## Member Function Documentation

## ◆ transfer()

virtual ResultValue<FSDKError, Ref<IImagesBatch> > fsdk::IImageTransfer::transfer | ( | Span< const Image > | images,
|  | Image::MemoryResidence | residence
| ) |  | const
| pure virtual noexcept

Transfer of multiple images.

Parameters

  [in] | images | span of source images.
  [in] | residence | desired destination residence.

Returns
  ResultValue with error code and IImagesBatch object.

See also
  Ref, Span, Image, MemoryResidence, IImagesBatch, ResultValue and FSDKError for details.

Note
  all spans should be based on user owned continuous collections.

## ◆ transferAsync()

virtual ImagesBatchFuture fsdk::IImageTransfer::transferAsync | ( | Span< const Image > | images,
|  | Image::MemoryResidence | residence
| ) |  | const
| pure virtual

Asynchronously transfer multiple images.

Parameters

  [in] | images | span of source images.
  [in] | residence | desired destination residence.

Returns
  Future with IImagesBatch object.

See also
  Ref, Span, Image, MemoryResidence, IImagesBatch vlc::future for details.

Note
  all spans should be based on user owned continuous collections.
  this method is experimental and interface may be changed in the future.
  this method is not marked as noexcept and may throw an exception.

## ◆ validate()

virtual Result<FSDKError> fsdk::IImageTransfer::validate | ( | Span< const Image > | images,
|  | Image::MemoryResidence | residence,
|  | Span< Result< FSDKError >> | errors
| ) |  | const
| pure virtual noexcept

Validate input of multiple frames in a single function call.

Parameters

  [in] | images | span of source images.
  [in] | residence | desired destination residence.
  [out] | errors | output span of errors for each image.

Returns
  Result with error code.

See also
  Span, Image, MemoryResidence, Result and FSDKError for details.

Note
  all spans should be based on user owned continuous collections.
  all spans should be equal size.

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

- include/fsdk/IImageTransfer.h