org.rrd4j.core
Class RrdMemoryBackendFactory

java.lang.Object
  extended by org.rrd4j.core.RrdBackendFactory
      extended by org.rrd4j.core.RrdMemoryBackendFactory

public class RrdMemoryBackendFactory
extends RrdBackendFactory

Factory class which creates actual RrdMemoryBackend objects. Rrd4j's support for in-memory RRDs is still experimental. You should know that all active RrdMemoryBackend objects are held in memory, each backend object stores RRD data in one big byte array. This implementation is therefore quite basic and memory hungry but runs very fast.

Calling close() on RrdDb objects does not release any memory at all (RRD data must be available for the next new RrdDb(path) call. To release allocated memory, you'll have to call delete(path) method of this class.


Constructor Summary
RrdMemoryBackendFactory()
           
 
Method Summary
 boolean delete(String id)
          Removes the storage with the given ID from the memory.
protected  boolean exists(String id)
          Method to determine if a memory storage with the given ID already exists.
 String getName()
          Returns the name of this factory.
protected  RrdBackend open(String id, boolean readOnly)
          Creates RrdMemoryBackend object.
protected  boolean shouldValidateHeader(String path)
          Determines if the header should be validated.
 
Methods inherited from class org.rrd4j.core.RrdBackendFactory
getDefaultFactory, getFactory, registerAndSetAsDefaultFactory, registerFactory, setDefaultFactory
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RrdMemoryBackendFactory

public RrdMemoryBackendFactory()
Method Detail

open

protected RrdBackend open(String id,
                          boolean readOnly)
                   throws IOException
Creates RrdMemoryBackend object.

Specified by:
open in class RrdBackendFactory
Parameters:
id - Since this backend holds all data in memory, this argument is interpreted as an ID for this memory-based storage.
readOnly - This parameter is ignored
Returns:
RrdMemoryBackend object which handles all I/O operations
Throws:
IOException - Thrown in case of I/O error.

exists

protected boolean exists(String id)
Method to determine if a memory storage with the given ID already exists.

Specified by:
exists in class RrdBackendFactory
Parameters:
id - Memory storage ID.
Returns:
True, if such storage exists, false otherwise.

shouldValidateHeader

protected boolean shouldValidateHeader(String path)
                                throws IOException
Description copied from class: RrdBackendFactory
Determines if the header should be validated.

Specified by:
shouldValidateHeader in class RrdBackendFactory
Parameters:
path - Storage path
Returns:
True, if the header should be validated for this factory
Throws:
IOException - if header validation fails

delete

public boolean delete(String id)
Removes the storage with the given ID from the memory.

Parameters:
id - Storage ID
Returns:
True, if the storage with the given ID is deleted, false otherwise.

getName

public String getName()
Returns the name of this factory.

Specified by:
getName in class RrdBackendFactory
Returns:
Factory name (equals to "MEMORY").