gzz.mediaserver
Interface Mediaserver

All Known Implementing Classes:
MultiplexingMediaserver, SimpleMediaserver

public interface Mediaserver

Interface to a mediaserver capable of retrieving and adding data.


Nested Class Summary
static class Mediaserver.Id
          The ID handle class.
static class Mediaserver.InvalidID
           
 
Method Summary
 Mediaserver.Id addDatum(byte[] data, java.util.Collection headerLines, Mediaserver.Id assocId, boolean addDefaultHeaders)
          Add a new datum, explicitly giving a collection of header lines.
 Mediaserver.Id addDatum(byte[] data, java.lang.String contentType)
          Add a new datum, creating a new ID for it.
 Mediaserver.Id addDatum(byte[] data, java.lang.String contentType, Mediaserver.Id assocId)
          Add a new datum, creating a new ID for it.
 void cache(MediaserverBlock b)
          Cache a mediaserver block.
 void expungeDatum(Mediaserver.Id id)
          Permanently remove a block.
 MediaserverBlock getDatum(Mediaserver.Id id)
          Get the datum corresponding to the given id.
 java.util.Set getDiffsFrom(Mediaserver.Id id)
           
 java.util.Set getDiffsTo(Mediaserver.Id id)
           
 java.util.Set getIDs()
          Get a set of the IDs of all entries in the Mediaserver database.
 Mediaserver.Id getPointer(java.lang.String s)
          (Kludge) Get a String-identified pointer local to this mediaserver.
 java.util.Set getPointers()
          (Kludge) Get the names of all String-identified pointers local to this mediaserver.
 PointerSet getPointerSet(java.lang.String s)
           
 java.lang.String getPoolName()
          Get the name of the pool this mediaserver stores.
 void setPointer(java.lang.String s, Mediaserver.Id id)
          (Kludge) Set a String-identified pointer local to this mediaserver.
 void setPointer(java.lang.String s, Mediaserver.Id id, Mediaserver.Id obsolete)
           
 void setPoolName(java.lang.String s)
          Set the name of the pool this mediaserver stores.
 void storeDatum(Mediaserver.Id id, byte[] data)
          Store an existing datum under a given ID.
 void uncache(MediaserverBlock b)
          Uncache a mediaserver block.
 

Method Detail

getIDs

public java.util.Set getIDs()
                     throws java.io.IOException
Get a set of the IDs of all entries in the Mediaserver database. Used in synchronization and pointer tracking.

java.io.IOException

getDatum

public MediaserverBlock getDatum(Mediaserver.Id id)
                          throws java.io.IOException
Get the datum corresponding to the given id.

java.io.IOException

addDatum

public Mediaserver.Id addDatum(byte[] data,
                               java.lang.String contentType,
                               Mediaserver.Id assocId)
                        throws java.io.IOException
Add a new datum, creating a new ID for it. The new datum is associated with an existing id. (For example, the existing Id might be the previous version of the datum; the effect is that the new datum is stored in the same pool as assocId.)

Returns:
The key of the new datum.
java.io.IOException

addDatum

public Mediaserver.Id addDatum(byte[] data,
                               java.lang.String contentType)
                        throws java.io.IOException
Add a new datum, creating a new ID for it.

Returns:
The key of the new datum.
java.io.IOException

addDatum

public Mediaserver.Id addDatum(byte[] data,
                               java.util.Collection headerLines,
                               Mediaserver.Id assocId,
                               boolean addDefaultHeaders)
                        throws java.io.IOException
Add a new datum, explicitly giving a collection of header lines.

Parameters:
assocId - May be null.
addDefaultHeaders - Whether to also add the default header lines: "Content-Transfer-Encoding: binary", "X-Injector: ...", and "Date: ...".
java.io.IOException

storeDatum

public void storeDatum(Mediaserver.Id id,
                       byte[] data)
                throws java.io.IOException
Store an existing datum under a given ID.

Parameters:
data - the pure data block obtained from another mediaserver, containing all header information etc.
Throws:
Mediaserver.InvalidID - if the ID is not valid for the given data.
java.io.IOException

expungeDatum

public void expungeDatum(Mediaserver.Id id)
                  throws java.io.IOException
Permanently remove a block.

java.io.IOException

cache

public void cache(MediaserverBlock b)
Cache a mediaserver block. The block must be from this mediaserver. This operation doesn't need to do anything, if this mediaserver does not support caching.


uncache

public void uncache(MediaserverBlock b)
Uncache a mediaserver block. The block must be from this mediaserver. This operation doesn't need to do anything, if this mediaserver does not support caching. If the block wasn't in the cache, this should not issue an error message.


setPointer

public void setPointer(java.lang.String s,
                       Mediaserver.Id id)
                throws java.io.IOException
(Kludge) Set a String-identified pointer local to this mediaserver. A pointer points to an ID. That way, the mediaserver can be used somewhat like a file system, in that there are references that can be updated. The system isn't very powerful, though, and needs to be rethought sometime soon.

XXX THIS EXPLANATION IS OUTDATED! Explain the new pointer system!

java.io.IOException

getPointer

public Mediaserver.Id getPointer(java.lang.String s)
                          throws java.io.IOException
(Kludge) Get a String-identified pointer local to this mediaserver. null if the pointer is not yet set.

java.io.IOException
See Also:
setPointer

getPointers

public java.util.Set getPointers()
                          throws java.io.IOException
(Kludge) Get the names of all String-identified pointers local to this mediaserver. Needed for synching.

java.io.IOException
See Also:

getPoolName

public java.lang.String getPoolName()
                             throws java.io.IOException
Get the name of the pool this mediaserver stores.

java.io.IOException

setPoolName

public void setPoolName(java.lang.String s)
                 throws java.io.IOException
Set the name of the pool this mediaserver stores.

java.io.IOException

getPointerSet

public PointerSet getPointerSet(java.lang.String s)
                         throws java.io.IOException
java.io.IOException

setPointer

public void setPointer(java.lang.String s,
                       Mediaserver.Id id,
                       Mediaserver.Id obsolete)
                throws java.io.IOException
java.io.IOException

getDiffsFrom

public java.util.Set getDiffsFrom(Mediaserver.Id id)
                           throws java.io.IOException
java.io.IOException

getDiffsTo

public java.util.Set getDiffsTo(Mediaserver.Id id)
                         throws java.io.IOException
java.io.IOException