Package org.sqlite.core
Class SafeStmtPtr
- java.lang.Object
-
- org.sqlite.core.SafeStmtPtr
-
public class SafeStmtPtr extends java.lang.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
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
SafeStmtPtr.SafePtrConsumer<E extends java.lang.Throwable>
static interface
SafeStmtPtr.SafePtrDoubleFunction<E extends java.lang.Throwable>
static interface
SafeStmtPtr.SafePtrFunction<T,E extends java.lang.Throwable>
static interface
SafeStmtPtr.SafePtrIntFunction<E extends java.lang.Throwable>
static interface
SafeStmtPtr.SafePtrLongFunction<E extends java.lang.Throwable>
-
Constructor Summary
Constructors Constructor Description SafeStmtPtr(DB db, long ptr)
Construct a new Safe Pointer Wrapper to ensure a pointer is properly handled
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
close()
Close this pointerboolean
equals(java.lang.Object o)
int
hashCode()
boolean
isClosed()
Check whether this pointer has been closed<T,E extends java.lang.Throwable>
TsafeRun(SafeStmtPtr.SafePtrFunction<T,E> run)
Run a callback with the wrapped pointer safely.<E extends java.lang.Throwable>
voidsafeRunConsume(SafeStmtPtr.SafePtrConsumer<E> run)
Run a callback with the wrapped pointer safely.<E extends java.lang.Throwable>
doublesafeRunDouble(SafeStmtPtr.SafePtrDoubleFunction<E> run)
Run a callback with the wrapped pointer safely.<E extends java.lang.Throwable>
intsafeRunInt(SafeStmtPtr.SafePtrIntFunction<E> run)
Run a callback with the wrapped pointer safely.<E extends java.lang.Throwable>
longsafeRunLong(SafeStmtPtr.SafePtrLongFunction<E> run)
Run a callback with the wrapped pointer safely.
-
-
-
Constructor Detail
-
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 deadlocksptr
- the raw pointer
-
-
Method Detail
-
isClosed
public boolean isClosed()
Check whether this pointer has been closed- Returns:
- whether this pointer has been closed
-
close
public int close() throws java.sql.SQLException
Close this pointer- Returns:
- the return code of the close callback function
- Throws:
java.sql.SQLException
- if the close callback throws an SQLException, or the pointer is locked elsewhere
-
safeRunInt
public <E extends java.lang.Throwable> int safeRunInt(SafeStmtPtr.SafePtrIntFunction<E> run) throws java.sql.SQLException, E extends java.lang.Throwable
Run a callback with the wrapped pointer safely.- Parameters:
run
- the function to run- Returns:
- the return of the passed in function
- Throws:
java.sql.SQLException
- if the pointer is utilized elsewhereE extends java.lang.Throwable
-
safeRunLong
public <E extends java.lang.Throwable> long safeRunLong(SafeStmtPtr.SafePtrLongFunction<E> run) throws java.sql.SQLException, E extends java.lang.Throwable
Run a callback with the wrapped pointer safely.- Parameters:
run
- the function to run- Returns:
- the return of the passed in function
- Throws:
java.sql.SQLException
- if the pointer is utilized elsewhereE extends java.lang.Throwable
-
safeRunDouble
public <E extends java.lang.Throwable> double safeRunDouble(SafeStmtPtr.SafePtrDoubleFunction<E> run) throws java.sql.SQLException, E extends java.lang.Throwable
Run a callback with the wrapped pointer safely.- Parameters:
run
- the function to run- Returns:
- the return of the passed in function
- Throws:
java.sql.SQLException
- if the pointer is utilized elsewhereE extends java.lang.Throwable
-
safeRun
public <T,E extends java.lang.Throwable> T safeRun(SafeStmtPtr.SafePtrFunction<T,E> run) throws java.sql.SQLException, E extends java.lang.Throwable
Run a callback with the wrapped pointer safely.- Parameters:
run
- the function to run- Returns:
- the return code of the function
- Throws:
java.sql.SQLException
- if the pointer is utilized elsewhereE extends java.lang.Throwable
-
safeRunConsume
public <E extends java.lang.Throwable> void safeRunConsume(SafeStmtPtr.SafePtrConsumer<E> run) throws java.sql.SQLException, E extends java.lang.Throwable
Run a callback with the wrapped pointer safely.- Parameters:
run
- the function to run- Throws:
java.sql.SQLException
- if the pointer is utilized elsewhereE extends java.lang.Throwable
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
-