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 com.oracle.coherence.common.base.Continuation<? super T> |
f_contFailure
The failure continuation for this manager.
|
protected SafePersistenceWrappers.FailureContinuationFactory<R,? super T> |
f_factoryCont
The FailureContinuationFactory.
|
protected com.oracle.coherence.persistence.PersistenceManager<R> |
f_manager
The underlying PersistenceManager.
|
INSTANCE
Constructor and Description |
---|
SafePersistenceManager(com.oracle.coherence.persistence.PersistenceManager<R> mgr)
Construct a SafePersistenceManager backed by the specified manager.
|
SafePersistenceManager(com.oracle.coherence.persistence.PersistenceManager<R> mgr,
com.oracle.coherence.common.base.Continuation<? super Throwable> cont)
Construct a SafePersistenceManager backed by the specified manager.
|
SafePersistenceManager(com.oracle.coherence.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.
|
com.oracle.coherence.persistence.PersistentStore<R> |
createStore(String sId)
Create a
PersistentStore associated with the specified
identifier. |
boolean |
delete(String sId,
boolean fSafe)
Remove the PersistentStore associated with the specified identifier.
|
com.oracle.coherence.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.coherence.persistence.PersistentStore<R> |
open(String sId,
com.oracle.coherence.persistence.PersistentStore<R> store)
Open or create a
PersistentStore associated with the specified
identifier and based on the provided store . |
com.oracle.coherence.persistence.PersistentStore<R> |
open(String sId,
com.oracle.coherence.persistence.PersistentStore<R> store,
com.oracle.coherence.common.base.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.coherence.persistence.PersistentStore<R> |
wrap(com.oracle.coherence.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.coherence.persistence.PersistenceManager<R> f_manager
protected final com.oracle.coherence.common.base.Continuation<? super T extends Throwable> f_contFailure
protected final SafePersistenceWrappers.FailureContinuationFactory<R,? super T extends Throwable> f_factoryCont
public SafePersistenceManager(com.oracle.coherence.persistence.PersistenceManager<R> mgr)
mgr
- the underlying PersistenceManagerpublic SafePersistenceManager(com.oracle.coherence.persistence.PersistenceManager<R> mgr, com.oracle.coherence.common.base.Continuation<? super Throwable> cont)
mgr
- the underlying PersistenceManagercont
- the failure continuation to use to handle unexpected exceptionspublic SafePersistenceManager(com.oracle.coherence.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.coherence.persistence.PersistenceManager getManager()
public void onException(T t)
t
- the Throwableprotected com.oracle.coherence.persistence.PersistentStore<R> wrap(com.oracle.coherence.persistence.PersistentStore<R> store)
store
- the underlying PersistentStorepublic String getName()
getName
in interface com.oracle.coherence.persistence.PersistenceManager<R>
getName
in class NullImplementation.NullPersistenceManager<R>
public com.oracle.coherence.persistence.PersistentStore<R> createStore(String sId)
PersistentStore
associated with the specified
identifier.
Creation of a store suggests its registration but has no usage
until it transitions into a state of open. The implementation may
choose to forgo any resource allocation until the caller
opens
the same identifier.
createStore
in interface com.oracle.coherence.persistence.PersistenceManager<R>
createStore
in class NullImplementation.NullPersistenceManager<R>
sId
- a unique identifier of the storepublic com.oracle.coherence.persistence.PersistentStore<R> open(String sId, com.oracle.coherence.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.coherence.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.coherence.persistence.PersistentStore<R> open(String sId, com.oracle.coherence.persistence.PersistentStore<R> store, com.oracle.coherence.common.base.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.coherence.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.coherence.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.coherence.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.coherence.persistence.PersistenceManager<R>
list
in class NullImplementation.NullPersistenceManager<R>
public String[] listOpen()
listOpen
in interface com.oracle.coherence.persistence.PersistenceManager<R>
listOpen
in class NullImplementation.NullPersistenceManager<R>
public void read(String sId, InputStream in) throws IOException
read
in interface com.oracle.coherence.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.coherence.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.coherence.persistence.PersistenceManager<R>
release
in class NullImplementation.NullPersistenceManager<R>