Rice Pastry API

rice.persistence
Class StorageManager

java.lang.Object
  |
  +--rice.persistence.StorageManager
All Implemented Interfaces:
Cache, Catalog, Storage

public class StorageManager
extends java.lang.Object
implements Cache, Storage

This class provides both persistent and caching services to external applications. Building the StorageManager requires a Storage object, to provide the back-end storage, and a Cache to serve as a cache. Note that this implementation has seperate areas for the Cache and Storage, but the next version will allow the cache to use the unused storage space.


Constructor Summary
StorageManager(rice.p2p.commonapi.IdFactory factory, rice.persistence.Storage storage, rice.persistence.Cache cache)
          Builds a StorageManager given a Storage object to provide storage services and a Cache object to provide caching services.
 
Method Summary
 void cache(rice.p2p.commonapi.Id id, java.io.Serializable obj, rice.Continuation c)
          Caches an object in this storage.
 boolean exists(rice.p2p.commonapi.Id id)
          Returns whether or not an object is present in the location id.
 void exists(rice.p2p.commonapi.Id id, rice.Continuation c)
          Returns whether or not an object is present in the location id.
 rice.persistence.Cache getCache()
          Returns the cache object used by this StorageManager
 void getMaximumSize(rice.Continuation c)
          Returns the maximum size of the cache, in bytes.
 void getObject(rice.p2p.commonapi.Id id, rice.Continuation c)
          Returns the object identified by the given id, or null if there is no cooresponding object (through receiveResult on c).
 rice.persistence.Storage getStorage()
          Returns the permantent storage object used by this StorageManager
 void getTotalSize(rice.Continuation c)
          Returns the total size of the stored data in bytes.The result is returned via the receiveResult method on the provided Continuation with an Integer representing the size.
 rice.p2p.commonapi.IdSet scan(rice.p2p.commonapi.IdRange range)
          Return the objects identified by the given range of ids.
 void scan(rice.p2p.commonapi.IdRange range, rice.Continuation c)
          Return the objects identified by the given range of ids.
 void setMaximumSize(int size, rice.Continuation c)
          Sets the maximum size of the cache, in bytes.
 void store(rice.p2p.commonapi.Id id, java.io.Serializable obj, rice.Continuation c)
          Stores an object in this storage.
 void uncache(rice.p2p.commonapi.Id id, rice.Continuation c)
          Removes the object from the list of cached objects.
 void unstore(rice.p2p.commonapi.Id id, rice.Continuation c)
          Removes the object from the list of stored objects.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

StorageManager

public StorageManager(rice.p2p.commonapi.IdFactory factory,
                      rice.persistence.Storage storage,
                      rice.persistence.Cache cache)
Builds a StorageManager given a Storage object to provide storage services and a Cache object to provide caching services.

Parameters:
factory - The factory to use for Id creation
storage - The Storage object which will serve as the persistent storage.
cache - The Cache object which will serve as the cache.
Method Detail

getStorage

public rice.persistence.Storage getStorage()
Returns the permantent storage object used by this StorageManager

Returns:
The storage of this storage manager

getCache

public rice.persistence.Cache getCache()
Returns the cache object used by this StorageManager

Returns:
The cache of this storage manager

exists

public boolean exists(rice.p2p.commonapi.Id id)
Returns whether or not an object is present in the location id.

Specified by:
exists in interface Catalog
Parameters:
id - The id of the object in question.
Returns:
Whether or not an object is present at id.

exists

public void exists(rice.p2p.commonapi.Id id,
                   rice.Continuation c)
Returns whether or not an object is present in the location id. The result is returned via the receiveResult method on the provided Continuation with an Boolean represnting the result. Returns True or False depending on whether the object exists (through receiveResult on c);

Specified by:
exists in interface Catalog
Parameters:
c - The command to run once the operation is complete
id - The id of the object in question.

getObject

public void getObject(rice.p2p.commonapi.Id id,
                      rice.Continuation c)
Returns the object identified by the given id, or null if there is no cooresponding object (through receiveResult on c).

Specified by:
getObject in interface Catalog
Parameters:
id - The id of the object in question.
c - The command to run once the operation is complete

scan

public void scan(rice.p2p.commonapi.IdRange range,
                 rice.Continuation c)
Return the objects identified by the given range of ids. The IdSet returned contains the Ids of the stored objects. The range is partially inclusive, the lower range is inclusive, and the upper exclusive. When the operation is complete, the receiveResult() method is called on the provided continuation with a IdSet result containing the resulting IDs.

Specified by:
scan in interface Catalog
Parameters:
c - The command to run once the operation is complete

scan

public rice.p2p.commonapi.IdSet scan(rice.p2p.commonapi.IdRange range)
Return the objects identified by the given range of ids. The IdSet returned contains the Ids of the stored objects. The range is partially inclusive, the lower range is inclusive, and the upper exclusive. NOTE: This method blocks so if the behavior of this method changes and no longer stored in memory, this method may be deprecated.

Specified by:
scan in interface Catalog
Parameters:
range - The range to query
Returns:
The idset containg the keys

getTotalSize

public void getTotalSize(rice.Continuation c)
Returns the total size of the stored data in bytes.The result is returned via the receiveResult method on the provided Continuation with an Integer representing the size.

Specified by:
getTotalSize in interface Catalog
Parameters:
c - The command to run once the operation is complete

store

public void store(rice.p2p.commonapi.Id id,
                  java.io.Serializable obj,
                  rice.Continuation c)
Stores an object in this storage. This method is non-blocking. If the object has already been stored at the location id, this method has the effect of calling unstore(id) followed by store(id, obj). This method finishes by calling receiveResult() on the provided continuation with the success or failure of the store. Returns True if the action succeeds, else False (through receiveResult on c).

Specified by:
store in interface Storage
Parameters:
id - The object's id.
obj - The object to store.
c - The command to run once the operation is complete

unstore

public void unstore(rice.p2p.commonapi.Id id,
                    rice.Continuation c)
Removes the object from the list of stored objects. This method is non-blocking. If the object was not in the stored list in the first place, nothing happens and False is returned. Returns True if the action succeeds, else False (through receiveResult on c).

Specified by:
unstore in interface Storage
Parameters:
c - The command to run once the operation is complete

cache

public void cache(rice.p2p.commonapi.Id id,
                  java.io.Serializable obj,
                  rice.Continuation c)
Caches an object in this storage. This method is non-blocking. If the object has already been stored at the location id, this method has the effect of calling uncachr(id) followed by cache(id, obj). This method finishes by calling receiveResult() on the provided continuation with whether or not the object was cached. Note that the object may not actually be cached due to the cache replacement policy. Returns True if the cache actaully stores the object, else False (through receiveResult on c).

Specified by:
cache in interface Cache
Parameters:
id - The object's id.
obj - The object to cache.
c - The command to run once the operation is complete

uncache

public void uncache(rice.p2p.commonapi.Id id,
                    rice.Continuation c)
Removes the object from the list of cached objects. This method is non-blocking. If the object was not in the cached list in the first place, nothing happens and False is returned. Returns True if the action succeeds, else False (through receiveResult on c).

Specified by:
uncache in interface Cache
Parameters:
c - The command to run once the operation is complete

getMaximumSize

public void getMaximumSize(rice.Continuation c)
Returns the maximum size of the cache, in bytes. The result is returned via the receiveResult method on the provided Continuation with an Integer representing the size.

Specified by:
getMaximumSize in interface Cache
Parameters:
c - The command to run once the operation is complete

setMaximumSize

public void setMaximumSize(int size,
                           rice.Continuation c)
Sets the maximum size of the cache, in bytes. Setting this value to a smaller value than the current value may result in object being evicted from the cache. Returns the success or failure of the setSize operation (through receiveResult on c).

Specified by:
setMaximumSize in interface Cache
Parameters:
size - The new maximum size, in bytes, of the cache.
c - The command to run once the operation is complete

Rice Pastry API

Copyright © 2001 - Rice Pastry.


Imprint-Dataprotection