Class ReadOnlyStore<T>

  • All Implemented Interfaces:
    ReadOnlyTStore<T>

    public class ReadOnlyStore<T>
    extends Object
    implements ReadOnlyTStore<T>
    This store decorates a TStore to make sure it can not be modified. Unlike relying directly on the ReadOnlyTStore interface, this class will not allow subsequent users to cast back to a mutable TStore successfully.
    • Constructor Detail

      • ReadOnlyStore

        public ReadOnlyStore​(TStore<T> store)
        Parameters:
        store - may not be null
    • Method Detail

      • reserve

        public long reserve()
        Description copied from interface: ReadOnlyTStore
        Reserve a transaction that is IN_PROGRESS or FAILED_IN_PROGRESS. Reserving a transaction id ensures that nothing else in-process interacting via the same instance will be operating on that transaction id.
        Specified by:
        reserve in interface ReadOnlyTStore<T>
        Returns:
        a transaction id that is safe to interact with, chosen by the store.
      • reserve

        public void reserve​(long tid)
        Description copied from interface: ReadOnlyTStore
        Reserve the specific tid. Reserving a transaction id ensures that nothing else in-process interacting via the same instance will be operating on that transaction id.
        Specified by:
        reserve in interface ReadOnlyTStore<T>
      • unreserve

        public void unreserve​(long tid,
                              long deferTime)
        Description copied from interface: ReadOnlyTStore
        Return the given transaction to the store. upon successful return the store now controls the referenced transaction id. caller should no longer interact with it.
        Specified by:
        unreserve in interface ReadOnlyTStore<T>
        Parameters:
        tid - transaction id, previously reserved.
        deferTime - time in millis to keep this transaction out of the pool used in the reserve method. must be non-negative.
      • top

        public ReadOnlyRepo<T> top​(long tid)
        Description copied from interface: ReadOnlyTStore
        Get the current operation for the given transaction id. Caller must have already reserved tid.
        Specified by:
        top in interface ReadOnlyTStore<T>
        Parameters:
        tid - transaction id, previously reserved.
        Returns:
        a read-only view of the operation
      • getStatus

        public ReadOnlyTStore.TStatus getStatus​(long tid)
        Description copied from interface: ReadOnlyTStore
        Get the state of a given transaction. Caller must have already reserved tid.
        Specified by:
        getStatus in interface ReadOnlyTStore<T>
        Parameters:
        tid - transaction id, previously reserved.
        Returns:
        execution status
      • getProperty

        public Serializable getProperty​(long tid,
                                        String prop)
        Description copied from interface: ReadOnlyTStore
        Retrieve a transaction-specific property. Caller must have already reserved tid.
        Specified by:
        getProperty in interface ReadOnlyTStore<T>
        Parameters:
        tid - transaction id, previously reserved.
        prop - name of property to retrieve.
      • list

        public List<Long> list()
        Description copied from interface: ReadOnlyTStore
        list all transaction ids in store.
        Specified by:
        list in interface ReadOnlyTStore<T>
        Returns:
        all outstanding transactions, including those reserved by others.
      • getStack

        public List<ReadOnlyRepo<T>> getStack​(long tid)
        Description copied from interface: ReadOnlyTStore
        Get all operations on a transactions stack. Element 0 contains the most recent operation pushed or the top.
        Specified by:
        getStack in interface ReadOnlyTStore<T>