org.h2.store
Class LobStorageFrontend

java.lang.Object
  extended by org.h2.store.LobStorageFrontend
All Implemented Interfaces:
LobStorageInterface

public class LobStorageFrontend
extends java.lang.Object
implements LobStorageInterface

This factory creates in-memory objects and temporary files. It is used on the client side.


Field Summary
static int TABLE_ID_SESSION_VARIABLE
          The table id for session variables (LOBs not assigned to a table).
static int TABLE_TEMP
          The table id for temporary objects (not assigned to any object).
 
Constructor Summary
LobStorageFrontend(DataHandler handler)
           
 
Method Summary
 ValueLobDb copyLob(ValueLobDb old, int tableId, long length)
          Copy a lob.
 Value createBlob(java.io.InputStream in, long maxLength)
          Create a BLOB object.
 Value createClob(java.io.Reader reader, long maxLength)
          Create a CLOB object.
 java.io.InputStream getInputStream(ValueLobDb lob, byte[] hmac, long byteCount)
          Get the input stream for the given lob.
 void init()
          Initialize the lob storage.
 void removeAllForTable(int tableId)
          Remove all LOBs for this table.
 void removeLob(ValueLobDb lob)
          Delete a LOB (from the database, if it is stored there).
 void setTable(ValueLobDb lob, int tableIdSessionVariable)
          Set the table reference of this lob.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

TABLE_ID_SESSION_VARIABLE

public static final int TABLE_ID_SESSION_VARIABLE
The table id for session variables (LOBs not assigned to a table).

See Also:
Constant Field Values

TABLE_TEMP

public static final int TABLE_TEMP
The table id for temporary objects (not assigned to any object).

See Also:
Constant Field Values
Constructor Detail

LobStorageFrontend

public LobStorageFrontend(DataHandler handler)
Method Detail

removeLob

public void removeLob(ValueLobDb lob)
Description copied from interface: LobStorageInterface
Delete a LOB (from the database, if it is stored there).

Specified by:
removeLob in interface LobStorageInterface
Parameters:
lob - the lob

getInputStream

public java.io.InputStream getInputStream(ValueLobDb lob,
                                          byte[] hmac,
                                          long byteCount)
                                   throws java.io.IOException
Get the input stream for the given lob.

Specified by:
getInputStream in interface LobStorageInterface
Parameters:
lob - the lob
hmac - the message authentication code (for remote input streams)
byteCount - the number of bytes to read, or -1 if not known
Returns:
the stream
Throws:
java.io.IOException

copyLob

public ValueLobDb copyLob(ValueLobDb old,
                          int tableId,
                          long length)
Description copied from interface: LobStorageInterface
Copy a lob.

Specified by:
copyLob in interface LobStorageInterface
Parameters:
old - the old lob
tableId - the new table id
length - the length
Returns:
the new lob

setTable

public void setTable(ValueLobDb lob,
                     int tableIdSessionVariable)
Description copied from interface: LobStorageInterface
Set the table reference of this lob.

Specified by:
setTable in interface LobStorageInterface
Parameters:
lob - the lob
tableIdSessionVariable - the table

removeAllForTable

public void removeAllForTable(int tableId)
Description copied from interface: LobStorageInterface
Remove all LOBs for this table.

Specified by:
removeAllForTable in interface LobStorageInterface
Parameters:
tableId - the table id

createBlob

public Value createBlob(java.io.InputStream in,
                        long maxLength)
Description copied from interface: LobStorageInterface
Create a BLOB object.

Specified by:
createBlob in interface LobStorageInterface
Parameters:
in - the input stream
maxLength - the maximum length (-1 if not known)
Returns:
the LOB

createClob

public Value createClob(java.io.Reader reader,
                        long maxLength)
Create a CLOB object.

Specified by:
createClob in interface LobStorageInterface
Parameters:
reader - the reader
maxLength - the maximum length (-1 if not known)
Returns:
the LOB

init

public void init()
Description copied from interface: LobStorageInterface
Initialize the lob storage.

Specified by:
init in interface LobStorageInterface