Package org.sqlite.core
Class SafeStmtPtr
- java.lang.Object
-
- org.sqlite.core.SafeStmtPtr
-
public class SafeStmtPtr extends java.lang.ObjectA 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 interfaceSafeStmtPtr.SafePtrConsumer<E extends java.lang.Throwable>static interfaceSafeStmtPtr.SafePtrDoubleFunction<E extends java.lang.Throwable>static interfaceSafeStmtPtr.SafePtrFunction<T,E extends java.lang.Throwable>static interfaceSafeStmtPtr.SafePtrIntFunction<E extends java.lang.Throwable>static interfaceSafeStmtPtr.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 intclose()Close this pointerbooleanequals(java.lang.Object o)inthashCode()booleanisClosed()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.SQLExceptionClose 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:
equalsin classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
-