All Packages Class Hierarchy This Package Previous Next Index
Class org.w3c.tools.resources.store.ResourceStoreManager
java.lang.Object
|
+----org.w3c.tools.resources.store.ResourceStoreManager
- public class ResourceStoreManager
- extends Object
- implements ResourceSpace
-
closed
- Is this store shutdown ?
-
debugMemory
-
-
eventQueue
-
-
index
- Our index file.
-
lru
- The store entries least recetenly used list.
-
root_rep
-
-
root_repository
- Our root repository.
-
server_name
- server name;
-
state
-
-
storedir
- Our store directory.
-
STOREFILE_IDENTIFIER
- The identifier for resource store files.
-
sweeper
- Our sweeper thread:
-
ResourceStoreManager(String, File, String, String, int, Hashtable)
- Create a new resource store manager for given store directory.
-
acquireChildren(SpaceEntry)
- Acquire the StoreEntry of the space entry.
-
acquireChildren(SpaceEntry, File, boolean)
- acquire children from an external file.
-
addResource(SpaceEntry, Resource, Hashtable)
- Add this resource to the StoreEntry of the space entry.
-
checkClosed()
- Check that this resource store manager isn't closed.
-
checkMaxLoadedStore()
-
-
checkpoint()
- Checkpoint all modified resource stores, by saving them to disk.
-
collect()
- Collect enough entries to go back into fixed limits.
-
createResourceStoreRepository()
- Create a resource store repository name.
-
decrLoadedStore()
-
-
deleteChildren(SpaceEntry)
- Delete all the children of resource indentified by its
space entry.
-
deleteResource(SpaceEntry, Resource)
- delete this resource from the StoreEntry (and the repository).
-
displayIndex()
-
-
enumerateResourceIdentifiers(SpaceEntry)
- Enumerate the name (ie identifiers) of the space entry children.
-
getCurrentStoreIdentifier()
-
-
getEventQueue()
-
-
getIndexFile()
- Get the index file.
-
getMaxLoadedStore()
-
-
getRootKey()
- Get The root key.
-
getRootRepository()
- Get the root repository.
-
incrLoadedStore()
-
-
loadEntriesIndex()
- Load the index file.
-
loadResource(SpaceEntry, String, Hashtable)
- Restore the resource whose name is given.
-
loadRootResource(String, Hashtable)
- Restore the resource whose name is given from the root StoreEntry.
-
lookupResource(SpaceEntry, String)
- Lookup this resource.
-
markModified(SpaceEntry, Resource)
- Mark the given resource as being modified.
-
markUsed(Object)
- Mark the given store as having been used recently.
-
pickleProlog(DataOutputStream, ResourceStore)
- Dump a prolog in given stream for that resource store.
-
pickLRUEntry()
- Pick the least recently used entry, and remove all links to it.
-
renameResource(SpaceEntry, String, String)
- Rename a resource in this resource space.
-
salvage()
-
-
salvageState()
- Try to salvage the resource store manager state.
-
saveChildren(SpaceEntry)
- Save all the children of the resource indentified by its
spaec entry.
-
saveEntriesIndex()
- Save the index file.
-
saveResource(SpaceEntry, Resource)
- Save this resource to the StoreEntry of the space entry.
-
shutdown()
- Shutdown this resource store manager.
-
unpickleProlog(DataInputStream, ResourceStore)
- Read in the prolog from the given input stream.
-
used(String)
-
-
warning(String)
- Emit the given string as a warning, to whoever it is appropriate.
STOREFILE_IDENTIFIER
public static final int STOREFILE_IDENTIFIER
- The identifier for resource store files.
All files that are used as resource store, and whose resource store
implementation make use of
pickleProlog
will start
with a dump of that integer.
- See Also:
- pickleProlog, unpickleProlog
root_rep
public static final String root_rep
debugMemory
public boolean debugMemory
closed
protected boolean closed
- Is this store shutdown ?
storedir
protected File storedir
- Our store directory.
index
protected File index
- Our index file.
server_name
protected String server_name
- server name;
root_repository
protected File root_repository
- Our root repository.
lru
protected LRUList lru
- The store entries least recetenly used list.
state
protected ResourceStoreState state
sweeper
protected StoreManagerSweeper sweeper
- Our sweeper thread:
eventQueue
protected ResourceEventQueue eventQueue
ResourceStoreManager
public ResourceStoreManager(String server_name,
File storedir,
String default_root_class,
String default_root_name,
int max_loaded_store,
Hashtable defs)
- Create a new resource store manager for given store directory.
The resource store manager will manage the collection of stores
contained in the directory, and keep track of the stores state.
- Parameters:
- storedir - The store directory to manage.
getEventQueue
public ResourceEventQueue getEventQueue()
getMaxLoadedStore
protected final int getMaxLoadedStore()
incrLoadedStore
protected void incrLoadedStore()
decrLoadedStore
protected void decrLoadedStore()
checkClosed
protected final synchronized void checkClosed()
- Check that this resource store manager isn't closed.
- Throws: RuntimeException
- If the store manager was closed.
pickLRUEntry
protected synchronized StoreEntry pickLRUEntry()
- Pick the least recently used entry, and remove all links to it.
After this method as run, the least recently used entry for some store
will be returned. The store manager will have discarded all its link to
it, and the entry shutdown will have to be performed by the caller.
- Returns:
- An StoreEntry instance, to be cleaned up.
collect
public void collect()
- Collect enough entries to go back into fixed limits.
createResourceStoreRepository
public String createResourceStoreRepository()
- Create a resource store repository name.
This method will return a new resource store repository key. When
used in conjunction with the
loadResourceStore
method
that takes a key as a parameter, this allows to caller to abstract
itself from the physical location of the repository.
- Returns:
- A fresh resource store key, guaranteed to be uniq.
getCurrentStoreIdentifier
public int getCurrentStoreIdentifier()
getIndexFile
protected File getIndexFile()
- Get the index file.
- Returns:
- A File instance.
getRootRepository
protected File getRootRepository()
- Get the root repository.
- Returns:
- A File instance.
getRootKey
protected Integer getRootKey()
- Get The root key.
- Returns:
- A String instance
warning
protected void warning(String msg)
- Emit the given string as a warning, to whoever it is appropriate.
- Parameters:
- msg - The warning message.
saveEntriesIndex
protected synchronized void saveEntriesIndex()
- Save the index file.
loadEntriesIndex
protected synchronized void loadEntriesIndex()
- Load the index file.
shutdown
public synchronized void shutdown()
- Shutdown this resource store manager.
Go through all entries, and shut them down.
checkpoint
public void checkpoint()
- Checkpoint all modified resource stores, by saving them to disk.
markUsed
public void markUsed(Object token)
- Mark the given store as having been used recently.
- Parameters:
- token - The token the resource store manager provided you when
it initialized the store.
pickleProlog
public static void pickleProlog(DataOutputStream out,
ResourceStore store) throws IOException
- Dump a prolog in given stream for that resource store.
Using the resource store manager prolog in a resource store
implementation is optional. However, it is recommended that whenever
possible, you use it to get the benefits of the main method of that
class.
- Parameters:
- out - The output stream to dump the prolog to.
- store - The resource store which is being dumped.
- Throws: IOException
- If the prolog couldn't be pickled to the
given output stream.
- See Also:
- unpickleProlog
unpickleProlog
public static void unpickleProlog(DataInputStream in,
ResourceStore store) throws IOException, NotAStoreException, InvalidStoreClassException, StoreClassVersionException
- Read in the prolog from the given input stream.
This method checks the consistency between the implementation of the
store that wants to read from that stream, and the implementation of
the store that has been used to create it.
Using that method, as well as using the pickleProlog
method is optional; however, using one makes using the other
mandatory.
- Parameters:
- in - The input stream to read the prolog from.
- store - The store that is to be created from the given input
stream.
- Throws: IOException
- If the stream couldn't be read.
- Throws: NotAStoreException
- If the given repository wasn't flagged as
containing a resource store.
- Throws: InvalidStoreClassException
- If the loading class is not
the saving class.
- Throws: StoreClassVersionException
- If the saved store version number
doesn't match the loader's class version number.
- See Also:
- pickleProlog
used
protected boolean used(String rep)
salvage
public void salvage()
displayIndex
public void displayIndex()
salvageState
public ResourceStoreState salvageState()
- Try to salvage the resource store manager state.
That's pretty easy and robust, it should really work well if no
one hacked the store directory.
- Returns:
- A ResourceStoreState instance.
loadRootResource
public ResourceReference loadRootResource(String identifier,
Hashtable defs)
- Restore the resource whose name is given from the root StoreEntry.
- Parameters:
- identifier - The identifier of the resource to restore.
- defs - Default attribute values.
lookupResource
public ResourceReference lookupResource(SpaceEntry sentry,
String identifier)
- Lookup this resource.
- Parameters:
- sentry - The resource space entry.
- identifier - The resource identifier.
- Returns:
- A Resource instance, or null if either the
resource doesn't exist, or it isn't loaded yet.
loadResource
public ResourceReference loadResource(SpaceEntry sentry,
String identifier,
Hashtable defs)
- Restore the resource whose name is given.
- Parameters:
- sentry - The resource space entry.
- identifier - The identifier of the resource to restore.
- defs - Default attribute values.
addResource
public ResourceReference addResource(SpaceEntry sentry,
Resource resource,
Hashtable defs)
- Add this resource to the StoreEntry of the space entry.
- Parameters:
- sentry - The resource space entry.
- resource - The resource to add.
- defs - Default attribute values.
saveResource
public void saveResource(SpaceEntry sentry,
Resource resource)
- Save this resource to the StoreEntry of the space entry.
- Parameters:
- sentry - The resource space entry
- resource - The resource to save.
markModified
public void markModified(SpaceEntry sentry,
Resource resource)
- Mark the given resource as being modified.
- Parameters:
- sentry - The resource space entry.
- resource - The resource to mark as modified.
renameResource
public void renameResource(SpaceEntry sentry,
String oldid,
String newid)
- Rename a resource in this resource space.
- Parameters:
- sentry - The resource space entry.
- oldid - The old resorce identifier.
- newid - The new resorce identifier.
deleteResource
public void deleteResource(SpaceEntry sentry,
Resource resource)
- delete this resource from the StoreEntry (and the repository).
- Parameters:
- sentry - The resource space entry
- resource - The resource to delete.
deleteChildren
public void deleteChildren(SpaceEntry sentry)
- Delete all the children of resource indentified by its
space entry.
- Parameters:
- sentry - The resource space entry
saveChildren
public void saveChildren(SpaceEntry sentry)
- Save all the children of the resource indentified by its
spaec entry.
- Parameters:
- sentry - The resource space entry
checkMaxLoadedStore
protected void checkMaxLoadedStore()
acquireChildren
public void acquireChildren(SpaceEntry sentry,
File repository,
boolean transientFlag)
- acquire children from an external file.
- Parameters:
- sentry - The resource space entry.
- repository - The file used to store children.
acquireChildren
public void acquireChildren(SpaceEntry sentry)
- Acquire the StoreEntry of the space entry.
- Parameters:
- sentry - The resource space entry.
enumerateResourceIdentifiers
public Enumeration enumerateResourceIdentifiers(SpaceEntry sentry)
- Enumerate the name (ie identifiers) of the space entry children.
- Parameters:
- sentry - The space entry.
- all - Should all resources be listed.
- Returns:
- An enumeration, providing one element per child, which is
the name of the child, as a String.
All Packages Class Hierarchy This Package Previous Next Index