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

- Main Page
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Public Types | Public Member Functions | List of all members
fsdk::IDescriptorBatch Struct Referenceabstract
Descriptor extractor

Descriptor batch interface. More...

`#include <IDescriptor.h>`

Inheritance diagram for fsdk::IDescriptorBatch:

## Public Types
enum | Error : uint32_t { Error::Ok, Error::InvalidInput, Error::BatchFull, Error::Incompatible, Error::Internal, Error::IoError, Error::OutOfRange }
| Descriptor batch error enumeration. More...
Public Types inherited from fsdk::ISerializableObject
enum | Error : uint32_t { Error::Ok, Error::Size, Error::Signature, Error::ArchiveRead, Error::InputArchive, Error::ArchiveWrite }
| Serialization nerror codes. More...
enum | Flags { Default = 0, NoSignature = 1 }
| Serialization flags. More...

## Public Member Functions
virtual Result< Error > | add (IDescriptor *descriptor) noexcept=0
| Add a descriptor to the batch. More...
virtual Result< Error > | add (IDescriptorBatch *batch, uint32_t offset=0) noexcept=0
| Add a descriptor batch content to the batch. Descriptors to copy from the source bath are selected based on offset parameter. More...
virtual Result< Error > | add (IDescriptorBatch *batch, uint32_t offset, uint32_t count) noexcept=0
| Add a descriptor batch content to the batch. Descriptors to copy from the source bath are selected based on count and offset parameters. More...
virtual Result< Error > | removeFast (int index) noexcept=0
| Remove a descriptor from batch. More...
virtual Result< Error > | removeSlow (int index) noexcept=0
| Remove a descriptor from batch. More...
virtual Result< MultiError < ISerializableObject::Error, Error > > | loadAndAdd (IArchive *archive)=0
| Load a descriptor/descriptors from archive and add it to the batch. More...
virtual uint32_t | getMaxCount () const noexcept=0
| Get maximum number of descriptors in this batch. More...
virtual uint32_t | getCount () const noexcept=0
| Get actual number of descriptors in this batch. More...
virtual uint32_t | getModelVersion () const noexcept=0
| Get algorithm model version the descriptors in this batch were created with. More...
virtual DesctiptorType | getDescriptorType () const noexcept=0
| Get type of descriptor. More...
virtual uint32_t | getDescriptorSize () const noexcept=0
| Get length of one descriptor. Specified by version of descriptors in batch. More...
virtual IDescriptor * | getDescriptorSlow (uint32_t index) const noexcept=0
| Create descriptor from batch by index with copying. More...
virtual IDescriptor * | getDescriptorFast (uint32_t index) noexcept=0
| Create descriptor from batch by index without copying. More...
Public Member Functions inherited from fsdk::IDataStorageObject
virtual void | clear () noexcept=0
| Clear object data. More...
virtual IRefCounted * | getParentObject () const noexcept=0
| Get parent object (one that has created this). More...
Public Member Functions inherited from fsdk::ISerializableObject
virtual void | getSize (Sizer &sizer, uint32_t flags=Default) const noexcept=0
| Estimate size of this object binary data. More...
virtual Result< Error > | load (IArchive *archive, uint32_t flags=Default)=0
| Load object from archive. More...
virtual Result< Error > | save (IArchive *archive, uint32_t flags=Default) const =0
| Save object to archive. More...
Public Member Functions inherited from fsdk::IRefCounted
virtual int32_t | retain () noexcept=0
| Increase strong reference count. 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

Descriptor batch interface.

Used for matching large continous sets of descriptors.

A batch is created with a reserved memory for descriptors that can not be later extended. Thus descriptors can be add()'ed until the memory reservation is exceeded.

Memory reservation size can be obtained via getMaxCount() function. The batch me be reset via clear() function. It does not deallocate memory reservation. Instead, it resets internal counter allowing to re-populate the batch via add() again.

## Member Enumeration Documentation

enum fsdk::IDescriptorBatch::Error : uint32_t
| strong

Descriptor batch error enumeration.

Used for descriptor batch related errors indication.

Enumerator
Ok | No error.
InvalidInput | Invalid input (Ex: null pointer while a valid objects is expected).
BatchFull | Batch is full.
Incompatible | Trying to add an incompatible descriptor.
Internal | An internal processing error (Ex: memopry allocation or misalignment).
IoError | Error while trying open/read/write file.
OutOfRange | Error while accessing descriptor out of range.

## Member Function Documentation

virtual Result<Error> fsdk::IDescriptorBatch::add | ( | IDescriptor * | descriptor | ) |
| pure virtual noexcept

Add a descriptor to the batch.

Parameters

  descriptor | descriptor to add. Descriptor data is copied and to internal reference is held, thus it is safe to release the source descriptor object later.

Returns
  One of the error codes specified by DescriptorBatchError.

virtual Result<Error> fsdk::IDescriptorBatch::add | ( | IDescriptorBatch * | batch,
|  | uint32_t | offset = `0`
| ) |  |
| pure virtual noexcept

Add a descriptor batch content to the batch. Descriptors to copy from the source bath are selected based on offset parameter.

Parameters

  batch | batch to add content off. All descriptors from the input batch are copied to the buffer of the current batch. So it is safe to release the source descriptor batch object later.
  offset | offset of descriptors to copy.

Returns
  One of the error codes specified by DescriptorBatchError.

Note
  Current batch should have enough free space to place all descriptors from the input batch.
  All selected descriptors from the source batch will be placed right after all descriptors in the current batch.
  All selected descriptors from the input batch are copied to the buffer of the current batch. So it is safe to release the source descriptor batch object later.

virtual Result<Error> fsdk::IDescriptorBatch::add | ( | IDescriptorBatch * | batch,
|  | uint32_t | offset,
|  | uint32_t | count
| ) |  |
| pure virtual noexcept

Add a descriptor batch content to the batch. Descriptors to copy from the source bath are selected based on count and offset parameters.

Parameters

  batch | batch to add content from.
  offset | offset of descriptors to copy.
  count | count of descriptors to copy.

Returns
  One of the error codes specified by DescriptorBatchError.

Note
  Current batch should have enough free space to place all descriptors from the input batch.
  All selected descriptors from the source batch will be placed right after all descriptors in the current batch.
  All selected descriptors from the input batch are copied to the buffer of the current batch. So it is safe to release the source descriptor batch object later.

virtual uint32_t fsdk::IDescriptorBatch::getCount | ( |  | ) | const
| pure virtual noexcept

Get actual number of descriptors in this batch.

Returns
  actual number of descriptors in this batch.

virtual IDescriptor* fsdk::IDescriptorBatch::getDescriptorFast | ( | uint32_t | index | ) |
| pure virtual noexcept

Create descriptor from batch by index without copying.

Parameters

  index | index required descriptor in batch

Returns
  IDescriptor instance pointer if succeeded, nullptr otherwise

Note
  If you change achived descriptor - corresponded descriptor in batch will be changed

virtual uint32_t fsdk::IDescriptorBatch::getDescriptorSize | ( |  | ) | const
| pure virtual noexcept

Get length of one descriptor. Specified by version of descriptors in batch.

Returns
  Length of one descriptor in batch.

virtual IDescriptor* fsdk::IDescriptorBatch::getDescriptorSlow | ( | uint32_t | index | ) | const
| pure virtual noexcept

Create descriptor from batch by index with copying.

Parameters

  index | index required descriptor in batch

Returns
  IDescriptor instance pointer if succeeded, nullptr otherwise

virtual DesctiptorType fsdk::IDescriptorBatch::getDescriptorType | ( |  | ) | const
| pure virtual noexcept

Get type of descriptor.

Note
  This function only makes sense when there is at least one descriptor in the batch.

Returns
  type as enum

See Also
  DesctiptorType.

virtual uint32_t fsdk::IDescriptorBatch::getMaxCount | ( |  | ) | const
| pure virtual noexcept

Get maximum number of descriptors in this batch.

Returns
  maximum number of descriptors in this batch.

virtual uint32_t fsdk::IDescriptorBatch::getModelVersion | ( |  | ) | const
| pure virtual noexcept

Get algorithm model version the descriptors in this batch were created with.

Note
  This function only makes sense when there is at least one descriptor in the batch. It will return 0 if the batch is empty.

Returns
  Version as integral number.

virtual Result<MultiError<ISerializableObject::Error,Error> > fsdk::IDescriptorBatch::loadAndAdd | ( | IArchive * | archive | ) |
| pure virtual

Load a descriptor/descriptors from archive and add it to the batch.

Note
  This method supports both serialized IDescriptorBatch and IDescriptor.

Parameters

  archive | archive to read from.

Returns
  MultiError result with codes specified by DescriptorBatchError and SerializationError.

Note
  This method pass exceptions from user defined IArchive, but doesnt throw its own

See Also
  MultiError.

virtual Result<Error> fsdk::IDescriptorBatch::removeFast | ( | int | index | ) |
| pure virtual noexcept

Remove a descriptor from batch.

Remove descriptor by swapping it with the last descriptor in batch. This breaks descriptor order.

Parameters

  index | descriptor index.

Returns
  One of the error codes specified by DescriptorBatchError.

virtual Result<Error> fsdk::IDescriptorBatch::removeSlow | ( | int | index | ) |
| pure virtual noexcept

Remove a descriptor from batch.

Remove descriptor by shifting all the following descriptors back. This preserves descriptor order.

Parameters

  index | descriptor index.

Returns
  One of the error codes specified by DescriptorBatchError.

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

- include/fsdk/IDescriptor.h