R
- the type of a raw, environment specific object representationT
- the type of a Throwable failure to protectpublic static class SafePersistenceWrappers.SafePersistenceManager<R,T extends Throwable> extends NullImplementation.NullPersistenceManager<R>
Continuation
.Modifier and Type | Field and Description |
---|---|
protected Continuation<? super T> |
f_contFailure
The failure continuation for this manager.
|
protected SafePersistenceWrappers.FailureContinuationFactory<R,? super T> |
f_factoryCont
The FailureContinuationFactory.
|
protected com.oracle.datagrid.persistence.PersistenceManager<R> |
f_manager
The underlying PersistenceManager.
|
INSTANCE
Constructor and Description |
---|
SafePersistenceManager(com.oracle.datagrid.persistence.PersistenceManager<R> mgr)
Construct a SafePersistenceManager backed by the specified manager.
|
SafePersistenceManager(com.oracle.datagrid.persistence.PersistenceManager<R> mgr, Continuation<? super Throwable> cont)
Construct a SafePersistenceManager backed by the specified manager.
|
SafePersistenceManager(com.oracle.datagrid.persistence.PersistenceManager<R> mgr, SafePersistenceWrappers.FailureContinuationFactory<R,? super T> factory)
Construct a PersistenceManager backed by the specified manager.
|
Modifier and Type | Method and Description |
---|---|
void |
close(String sId)
Close the associated PersistentStore and release exclusive access to the associated resources.
|
boolean |
delete(String sId, boolean fSafe)
Remove the PersistentStore associated with the specified identifier.
|
com.oracle.datagrid.persistence.PersistenceManager |
getManager()
Return the underlying PersistenceManager.
|
String |
getName()
Return the name of this manager.
|
String[] |
list()
Return the identifiers of the PersistentStores known to this manager.
|
String[] |
listOpen()
Return the identifiers of PersistentStores that are currently open.
|
void |
onException(T t)
Called to handle an unexpected exception.
|
com.oracle.datagrid.persistence.PersistentStore<R> |
open(String sId, com.oracle.datagrid.persistence.PersistentStore<R> store)
Open or create a
PersistentStore associated with the specified identifier and based on the provided store . |
com.oracle.datagrid.persistence.PersistentStore<R> |
open(String sId, com.oracle.datagrid.persistence.PersistentStore<R> store, Collector<Object> collector)
Open or create a
PersistentStore associated with the specified identifier and based on the provided store . |
void |
read(String sId, InputStream in)
Read the PersistenceStore associated with the specified identifier from the given input stream, making it available to this manager.
|
void |
release()
Release all resources held by this manager.
|
String |
toString()
Return a human readable description of this SafePersistenceManager.
|
protected com.oracle.datagrid.persistence.PersistentStore<R> |
wrap(com.oracle.datagrid.persistence.PersistentStore<R> store)
Wrap the specified store in a SafePersistentStore implementation.
|
void |
write(String sId, OutputStream out)
Write the PersistentStore associated with the specified identifier to the given output stream.
|
getPersistenceInfo, getPersistenceTools, getStatistics, validate
protected final com.oracle.datagrid.persistence.PersistenceManager<R> f_manager
protected final Continuation<? super T extends Throwable> f_contFailure
protected final SafePersistenceWrappers.FailureContinuationFactory<R,? super T extends Throwable> f_factoryCont
public SafePersistenceManager(com.oracle.datagrid.persistence.PersistenceManager<R> mgr)
mgr
- the underlying PersistenceManagerpublic SafePersistenceManager(com.oracle.datagrid.persistence.PersistenceManager<R> mgr, Continuation<? super Throwable> cont)
mgr
- the underlying PersistenceManagercont
- the failure continuation to use to handle unexpected exceptionspublic SafePersistenceManager(com.oracle.datagrid.persistence.PersistenceManager<R> mgr, SafePersistenceWrappers.FailureContinuationFactory<R,? super T> factory)
mgr
- the underlying PersistenceManagerfactory
- the failure continuation factory to use to create handlers for unexpected exceptionspublic com.oracle.datagrid.persistence.PersistenceManager getManager()
public void onException(T t)
t
- the Throwableprotected com.oracle.datagrid.persistence.PersistentStore<R> wrap(com.oracle.datagrid.persistence.PersistentStore<R> store)
store
- the underlying PersistentStorepublic String getName()
getName
in interface com.oracle.datagrid.persistence.PersistenceManager<R>
getName
in class NullImplementation.NullPersistenceManager<R>
public com.oracle.datagrid.persistence.PersistentStore<R> open(String sId, com.oracle.datagrid.persistence.PersistentStore<R> store)
PersistentStore
associated with the specified identifier and based on the provided store
.
Upon a new store being created the provided store should be used as the basis for the new store such that the extents and associated data is available in the returned store. This provides an opportunity for an implementation to optimize initializing the new store based upon knowledge of the storage mechanics.
open
in interface com.oracle.datagrid.persistence.PersistenceManager<R>
open
in class NullImplementation.NullPersistenceManager<R>
sId
- a unique identifier for the storestore
- the PersistenceStore the new store should be based uponpublic com.oracle.datagrid.persistence.PersistentStore<R> open(String sId, com.oracle.datagrid.persistence.PersistentStore<R> store, Collector<Object> collector)
PersistentStore
associated with the specified identifier and based on the provided store
.
Upon a new store being created the provided store should be used as the basis for the new store such that the extents and associated data is available in the returned store. This provides an opportunity for an implementation to optimize initializing the new store based upon knowledge of the storage mechanics.
Providing a Collector
allows the open operation to be performed asynchronously. This may be desirable when the calling thread can not be blocked on IO operations that are required when creating a new store based on an old store (storeFrom
). Open is only non-blocking when both an old store and a Collector are provided. Upon completion of an asynchronous open request the provided Collector is called with either a String (GUID) or an AsyncPersistenceException, thus notifying the collector of success of failure respectively.
Note: the behavior of a returned store that has not been opened is undefined.
open
in interface com.oracle.datagrid.persistence.PersistenceManager<R>
open
in class NullImplementation.NullPersistenceManager<R>
sId
- a unique identifier for the storestore
- the PersistenceStore the new store should be based uponcollector
- the Collector to notify once the store has been opened or failed to open; the collector will either receive a String (GUID) or an AsyncPersistenceExceptionpublic void close(String sId)
close
in interface com.oracle.datagrid.persistence.PersistenceManager<R>
close
in class NullImplementation.NullPersistenceManager<R>
sId
- a unique identifier of the store to closepublic boolean delete(String sId, boolean fSafe)
delete
in interface com.oracle.datagrid.persistence.PersistenceManager<R>
delete
in class NullImplementation.NullPersistenceManager<R>
sId
- a unique identifier of the store to removefSafe
- if true, remove the store by moving it to a restorable location (if possible) rather than deleting itpublic String[] list()
list
in interface com.oracle.datagrid.persistence.PersistenceManager<R>
list
in class NullImplementation.NullPersistenceManager<R>
public String[] listOpen()
listOpen
in interface com.oracle.datagrid.persistence.PersistenceManager<R>
listOpen
in class NullImplementation.NullPersistenceManager<R>
public void read(String sId, InputStream in) throws IOException
read
in interface com.oracle.datagrid.persistence.PersistenceManager<R>
read
in class NullImplementation.NullPersistenceManager<R>
sId
- a unique identifier of the store to readin
- the stream to read fromIOException
- if an error occurred while reading from the streampublic void write(String sId, OutputStream out) throws IOException
write
in interface com.oracle.datagrid.persistence.PersistenceManager<R>
write
in class NullImplementation.NullPersistenceManager<R>
sId
- a unique identifier of the store to writeout
- the stream to write toIOException
- if an error occurred while writing to the streampublic void release()
release
in interface com.oracle.datagrid.persistence.PersistenceManager<R>
release
in class NullImplementation.NullPersistenceManager<R>