org.h2.store
Interface LobStorageInterface

All Known Implementing Classes:
LobStorageBackend, LobStorageFrontend

public interface LobStorageInterface

A mechanism to store and retrieve lob data.


Method Summary
 ValueLobDb copyLob(int type, long oldLobId, 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(long lobId, byte[] hmac, long byteCount)
          Get the input stream for the given lob.
 void removeLob(long lob)
          Delete a LOB from the database.
 void setTable(long lobId, 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(int type,
                   long oldLobId,
                   int tableId,
                   long length)
Copy a lob.

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

getInputStream

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

Parameters:
lobId - 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(long lobId,
              int table)
Set the table reference of this lob.

Parameters:
lobId - the lob
table - the table

removeLob

void removeLob(long lob)
Delete a LOB from the database.

Parameters:
lob - the lob id