.. index:: 
  !DocumentAuthenticator Class

.. _id3_document_document_authenticator_class:

===============================================================================
DocumentAuthenticator Class
===============================================================================

Namespace: :ref:`id3.Document<reference_document>`

.. toctree::
  :hidden:

  appendFrame<append_frame>
  authenticateHolograms<authenticate_holograms>
  documentName<document_name>
  isFull<is_full>
  temporalWindowSize<temporal_window_size>


Definition
----------
.. line-block::
    Verifies the authenticity of a document using security features such as holograms.

.. tab-set::

    .. tab-item:: Python
      :sync: Python

      .. code:: Python

        class DocumentAuthenticator

    .. tab-item:: Dart
      :sync: Dart

      .. code:: Dart

        class DocumentAuthenticator implements Finalizable

    .. tab-item:: C#
      :sync: C#

      .. code:: C#

        public partial class DocumentAuthenticator

    .. tab-item:: Java
      :sync: Java

      .. code:: Java

        public class DocumentAuthenticator implements AutoCloseable, Serializable

    .. tab-item:: Swift
      :sync: Swift

      .. code:: Swift

        public class DocumentAuthenticator

    .. tab-item:: C
      :sync: C

      .. code:: C

        typedef struct id3DocumentAuthenticator *ID3_DOCUMENT_AUTHENTICATOR;



Usage
-----

.. tab-set::

    .. tab-item:: Python
      :sync: Python

      .. code:: Python

        documentAuthenticatorInstance = DocumentAuthenticator()
        # ...

      **Explicit destruction**

      .. code:: Python

        # ...
        del documentAuthenticatorInstance

    .. tab-item:: Dart
      :sync: Dart

      .. code:: Dart

        final documentAuthenticatorInstance = sdk.DocumentAuthenticator();
        // ...

      **Explicit destruction**

      .. code:: Dart

        // ...
        documentAuthenticatorInstance.dispose()

    .. tab-item:: C#
      :sync: C#

      .. code:: C#

        using (var documentAuthenticatorInstance = new DocumentAuthenticator())
        {
           // ...
        }

      **Explicit destruction**

      .. code:: C#

        var documentAuthenticatorInstance = new DocumentAuthenticator()
        // ...
        documentAuthenticatorInstance.Dispose()

    .. tab-item:: Java
      :sync: Java

      .. code:: Java

        try (DocumentAuthenticator documentAuthenticatorInstance = new DocumentAuthenticator()) {
        // ...
        }

      **Explicit destruction**

      .. code:: Java

        DocumentAuthenticator documentAuthenticatorInstance = new DocumentAuthenticator();
        // ...
        documentAuthenticatorInstance.close();

    .. tab-item:: Swift
      :sync: Swift

      .. code:: Swift

        private var documentAuthenticatorInstance: DocumentAuthenticator? = nil
        documentAuthenticatorInstance = try DocumentAuthenticator()

    .. tab-item:: C
      :sync: C

      .. code:: C

        ID3_DOCUMENT_AUTHENTICATOR hDocumentAuthenticator{};
        int err = id3DocumentAuthenticator_Initialize(&hDocumentAuthenticator);
        if (err == ID3_SUCCESS) {
            // ...
            id3DocumentAuthenticator_Dispose(&hDocumentAuthenticator);
        }


Properties
----------

.. list-table:: 
  :width: 100%
  :widths: 30 5 65
  :header-rows: 1

  * - Name
    - Type
    - Description
  * - :ref:`documentName<id3_document_document_authenticator_document_name_class_member>`
    - string
    - Document type to authenticate.
  * - :ref:`temporalWindowSize<id3_document_document_authenticator_temporal_window_size_class_member>`
    - int
    - Size of the FIFO frame buffer, used for processing.

Methods
-------

.. list-table:: 
  :width: 100%
  :widths: 30 70
  :header-rows: 1

  * - Name
    - Description
  * - :ref:`appendFrame<id3_document_document_authenticator_append_frame_class_method>`
    - Appends a frame in the FIFO buffer.
  * - :ref:`authenticateHolograms<id3_document_document_authenticator_authenticate_holograms_class_method>`
    - Authenticates the holograms on the current frame buffer.
  * - :ref:`isFull<id3_document_document_authenticator_is_full_class_method>`
    - Checks if the frame buffer is full and ready to authenticate for all holograms.
