Package org.eclipse.viatra.query.runtime.matchers.scopes

## Interface IStorageBackend

- All Known Implementing Classes:
    `SimpleLocalStorageBackend`

      public interface IStorageBackend

  An abstract storage backend that instantiates tables and coordinates transactions.

  EXPERIMENTAL. This class or interface has been added as part of a work in progress. There is no guarantee that this API will work or that it will remain the same.

  Since:
    2.1

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `ITableWriterBinary.Table<java.lang.Object,​java.lang.Object>` | `createBinaryTable​(IInputKey key, ITableContext tableContext, boolean unique)` | Creates an index table for a simple source-target bidirectional mapping.
    `ITableWriterUnary.Table<java.lang.Object>` | `createUnaryTable​(IInputKey key, ITableContext tableContext, boolean unique)` | Creates an index table for a simple value set.
    `void` | `finishTransaction()` | Marks the end of a transaction.
    `void` | `startTransaction()` | Marks the beginning of a transaction.

- - ### Method Detail

    - #### startTransaction

          void startTransaction()

      Marks the beginning of a transaction. In transaction mode, table updates may be temporarily delayed (`IIndexTable` methods may return stale answers) for better performance.

    - #### finishTransaction

          void finishTransaction()

      Marks the end of a transaction. Any updates delayed during the transaction must now be flushed.

    - #### createUnaryTable

          ITableWriterUnary.Table<java.lang.Object> createUnaryTable​(IInputKey key,
                                                                     ITableContext tableContext,
                                                                     boolean unique)

      Creates an index table for a simple value set.
      Parameters:
        `unique` - client promises to only insert a given tuple with multiplicity one

    - #### createBinaryTable

          ITableWriterBinary.Table<java.lang.Object,​java.lang.Object> createBinaryTable​(IInputKey key,
                                                                                              ITableContext tableContext,
                                                                                              boolean unique)

      Creates an index table for a simple source-target bidirectional mapping.
      Parameters:
        `unique` - client promises to only insert a given tuple with multiplicity one