org.h2.store

## Class LobStorageFrontend

- java.lang.Object
- - 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

Fields
`static int` `TABLE_ID_SESSION_VARIABLE` The table id for session variables (LOBs not assigned to a table).
`static int` `TABLE_RESULT` The table id for result sets.
`static int` `TABLE_TEMP` The table id for temporary objects (not assigned to any object).

### Constructor Summary

Constructors
Constructor and Description
`LobStorageFrontend(DataHandler handler)`

### Method Summary

Methods
`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.
`boolean` `isReadOnly()` Whether the storage is read-only
`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).

### 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

#### TABLE_RESULT

    public static final int TABLE_RESULT

The table id for result sets.

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`

#### isReadOnly

    public boolean isReadOnly()

Description copied from interface: `LobStorageInterface`
Whether the storage is read-only

Specified by:
  `isReadOnly` in interface `LobStorageInterface`
Returns:
  true if yes

#### 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

#### 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`