org.h2.store
Interface LobStorageInterface

All Known Implementing Classes:
LobStorageBackend, LobStorageFrontend, LobStorageMap

public interface LobStorageInterface

A mechanism to store and retrieve lob data.


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 table)
          Set the table reference of this lob.
 

Method Detail

createClob

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

Parameters:
reader - the reader
maxLength - the maximum length (-1 if not known)
Returns:
the LOB

createBlob

Value createBlob(java.io.InputStream in,
                 long maxLength)
Create a BLOB object.

Parameters:
in - the input stream
maxLength - the maximum length (-1 if not known)
Returns:
the LOB

copyLob

ValueLobDb copyLob(ValueLobDb old,
                   int tableId,
                   long length)
Copy a lob.

Parameters:
old - the old lob
tableId - the new table id
length - the length
Returns:
the new lob

getInputStream

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

Parameters:
lob - the lob id
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

setTable

void setTable(ValueLobDb lob,
              int table)
Set the table reference of this lob.

Parameters:
lob - the lob
table - the table

removeLob

void removeLob(ValueLobDb lob)
Delete a LOB (from the database, if it is stored there).

Parameters:
lob - the lob

removeAllForTable

void removeAllForTable(int tableId)
Remove all LOBs for this table.

Parameters:
tableId - the table id

init

void init()
Initialize the lob storage.