Package 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 Modifier and Type Field Description private SessionRemote
sessionRemote
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 Description LobStorageFrontend(SessionRemote handler)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ValueLob
copyLob(ValueLob old, int tableId)
Copy a lob.ValueBlob
createBlob(java.io.InputStream in, long maxLength)
Create a BLOB object.ValueClob
createClob(java.io.Reader reader, long maxLength)
Create a CLOB object.java.io.InputStream
getInputStream(long lobId, int tableId, long byteCount)
Get the input stream for the given lobjava.io.InputStream
getInputStream(long lobId, long byteCount)
Get the input stream for the given lob, only called on server side of a TCP connection.boolean
isReadOnly()
Whether the storage is read-onlyvoid
removeAllForTable(int tableId)
Remove all LOBs for this table.void
removeLob(ValueLob lob)
Delete a LOB (from the database, if it is stored there).
-
-
-
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
-
sessionRemote
private final SessionRemote sessionRemote
-
-
Constructor Detail
-
LobStorageFrontend
public LobStorageFrontend(SessionRemote handler)
-
-
Method Detail
-
removeLob
public void removeLob(ValueLob lob)
Description copied from interface:LobStorageInterface
Delete a LOB (from the database, if it is stored there).- Specified by:
removeLob
in interfaceLobStorageInterface
- Parameters:
lob
- the lob
-
getInputStream
public java.io.InputStream getInputStream(long lobId, long byteCount) throws java.io.IOException
Description copied from interface:LobStorageInterface
Get the input stream for the given lob, only called on server side of a TCP connection.- Specified by:
getInputStream
in interfaceLobStorageInterface
- Parameters:
lobId
- the lob idbyteCount
- the number of bytes to read, or -1 if not known- Returns:
- the stream
- Throws:
java.io.IOException
- on failure
-
getInputStream
public java.io.InputStream getInputStream(long lobId, int tableId, long byteCount) throws java.io.IOException
Description copied from interface:LobStorageInterface
Get the input stream for the given lob- Specified by:
getInputStream
in interfaceLobStorageInterface
- Parameters:
lobId
- the lob idtableId
- the able idbyteCount
- the number of bytes to read, or -1 if not known- Returns:
- the stream
- Throws:
java.io.IOException
- on failure
-
isReadOnly
public boolean isReadOnly()
Description copied from interface:LobStorageInterface
Whether the storage is read-only- Specified by:
isReadOnly
in interfaceLobStorageInterface
- Returns:
- true if yes
-
copyLob
public ValueLob copyLob(ValueLob old, int tableId)
Description copied from interface:LobStorageInterface
Copy a lob.- Specified by:
copyLob
in interfaceLobStorageInterface
- Parameters:
old
- the old lobtableId
- the new table id- 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 interfaceLobStorageInterface
- Parameters:
tableId
- the table id
-
createBlob
public ValueBlob createBlob(java.io.InputStream in, long maxLength)
Description copied from interface:LobStorageInterface
Create a BLOB object.- Specified by:
createBlob
in interfaceLobStorageInterface
- Parameters:
in
- the input streammaxLength
- the maximum length (-1 if not known)- Returns:
- the LOB
-
createClob
public ValueClob createClob(java.io.Reader reader, long maxLength)
Create a CLOB object.- Specified by:
createClob
in interfaceLobStorageInterface
- Parameters:
reader
- the readermaxLength
- the maximum length (-1 if not known)- Returns:
- the LOB
-
-