Class SafeStmtPtr

java.lang.Object
org.sqlite.core.SafeStmtPtr

public class SafeStmtPtr extends Object
A class for safely wrapping calls to a native pointer to a statement, ensuring no other thread has access to the pointer while it is run
  • Constructor Details

    • SafeStmtPtr

      public SafeStmtPtr(DB db, long ptr)
      Construct a new Safe Pointer Wrapper to ensure a pointer is properly handled
      Parameters:
      db - the database that made this pointer. Always locked before any safe run function is executed to avoid deadlocks
      ptr - the raw pointer
  • Method Details

    • isClosed

      public boolean isClosed()
      Check whether this pointer has been closed
      Returns:
      whether this pointer has been closed
    • close

      public int close() throws SQLException
      Close this pointer
      Returns:
      the return code of the close callback function
      Throws:
      SQLException - if the close callback throws an SQLException, or the pointer is locked elsewhere
    • safeRunInt

      public <E extends Throwable> int safeRunInt(SafeStmtPtr.SafePtrIntFunction<E> run) throws SQLException, E
      Run a callback with the wrapped pointer safely.
      Parameters:
      run - the function to run
      Returns:
      the return of the passed in function
      Throws:
      SQLException - if the pointer is utilized elsewhere
      E extends Throwable
    • safeRunLong

      public <E extends Throwable> long safeRunLong(SafeStmtPtr.SafePtrLongFunction<E> run) throws SQLException, E
      Run a callback with the wrapped pointer safely.
      Parameters:
      run - the function to run
      Returns:
      the return of the passed in function
      Throws:
      SQLException - if the pointer is utilized elsewhere
      E extends Throwable
    • safeRunDouble

      public <E extends Throwable> double safeRunDouble(SafeStmtPtr.SafePtrDoubleFunction<E> run) throws SQLException, E
      Run a callback with the wrapped pointer safely.
      Parameters:
      run - the function to run
      Returns:
      the return of the passed in function
      Throws:
      SQLException - if the pointer is utilized elsewhere
      E extends Throwable
    • safeRun

      public <T, E extends Throwable> T safeRun(SafeStmtPtr.SafePtrFunction<T,E> run) throws SQLException, E
      Run a callback with the wrapped pointer safely.
      Parameters:
      run - the function to run
      Returns:
      the return code of the function
      Throws:
      SQLException - if the pointer is utilized elsewhere
      E extends Throwable
    • safeRunConsume

      public <E extends Throwable> void safeRunConsume(SafeStmtPtr.SafePtrConsumer<E> run) throws SQLException, E
      Run a callback with the wrapped pointer safely.
      Parameters:
      run - the function to run
      Throws:
      SQLException - if the pointer is utilized elsewhere
      E extends Throwable
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object