org.apache.derby.impl.store.raw.data
Class InputStreamContainer

java.lang.Object
  extended byorg.apache.derby.impl.store.raw.data.BaseContainer
      extended byorg.apache.derby.impl.store.raw.data.FileContainer
          extended byorg.apache.derby.impl.store.raw.data.InputStreamContainer
All Implemented Interfaces:
Cacheable, Lockable, TypedFormat

public class InputStreamContainer
extends FileContainer

A class that uses a ZipEntry to be a single container file, but read-only.


Field Summary
private  StorageFile containerPath
           
 
Fields inherited from class org.apache.derby.impl.store.raw.data.FileContainer
ALLOC_PAGE_ARG_NUM, allocCache, canUpdate, CHECKSUM_SIZE, CONTAINER_INFO_SIZE, containerCache, containerInfo, containerVersion, dataFactory, estimatedRowCount, FIRST_ALLOC_PAGE_NUMBER, FIRST_ALLOC_PAGE_OFFSET, firstAllocPageNumber, firstAllocPageOffset, formatIdInteger, initialPages, isDirty, lastLogInstant, minimumRecordSize, pageCache, pageSize, preDirty, SPACE_TRACE, spareSpace, STORED_PAGE_ARG_NUM
 
Fields inherited from class org.apache.derby.impl.store.raw.data.BaseContainer
identity, isCommittedDrop, isDropped, isReusableRecordId
 
Constructor Summary
InputStreamContainer(BaseDataFileFactory factory)
           
 
Method Summary
 void clean(boolean forRemove)
          Write out the header information for this container.
protected  void closeContainer()
           
protected  void createContainer(ContainerKey newIdentity)
          Create a new container, all references to identity must be through the passed in identity, this object will no identity until after this method returns.
protected  void flushAll()
          Flush all outstanding changes in this container to persistent storage.
protected  java.io.InputStream getInputStream()
          Get an input stream positioned at the beginning of the file
protected  boolean openContainer(ContainerKey newIdentity)
          Open a container.
protected  int preAllocate(long lastPreallocPagenum, int preAllocSize)
          Preallocate page.
protected  void readPage(long pageNumber, byte[] pageData)
          Read a page into the supplied array.
protected  void readPositionedPage(long pageOffset, byte[] pageData)
          Read the page at the positioned offset.
protected  void removeContainer(LogInstant instant, boolean leaveStub)
          Remove the container.
protected  void writePage(long pageNumber, byte[] pageData, boolean syncPage)
          Write a page from the supplied array.
 
Methods inherited from class org.apache.derby.impl.store.raw.data.FileContainer
bumpContainerVersion, canUpdate, clearIdentity, clearPreallocThreshold, createIdent, createIdentity, deallocatePage, decryptPage, doPreAllocatePages, dropContainer, encryptPage, getAllocPage, getAnyPage, getContainerProperties, getContainerVersion, getEmbryonicPage, getEstimatedPageCount, getEstimatedRowCount, getFirstHeadPage, getHeadPage, getMinimumRecordSize, getNextHeadPage, getPage, getPageForInsert, getPageSize, getSpaceInfo, getSpareSpace, getTypeFormatId, initPage, isDirty, latchPage, letGo, logCreateContainerInfo, newPage, preDirty, prepareForBulkLoad, readHeader, reCreatePageForLoadTran, setDirty, setEstimatedRowCount, setIdent, setIdentity, trackUnfilledPage, updateEstimatedRowCount, writeHeader, writeHeader
 
Methods inherited from class org.apache.derby.impl.store.raw.data.BaseContainer
addPage, fillInIdentity, getAllocPage, getAnyPage, getCommittedDropState, getContainerId, getContainerStatus, getDeallocLock, getDroppedState, getFirstPage, getIdentity, getNextPage, getSegmentId, isReusableRecordId, lockAttributes, lockerAlwaysCompatible, lockEvent, removePage, requestCompatible, setCommittedDropState, setDroppedState, setReusableRecordIdState, truncate, unlockEvent, use
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.derby.iapi.services.cache.Cacheable
getIdentity
 

Field Detail

containerPath

private StorageFile containerPath
Constructor Detail

InputStreamContainer

public InputStreamContainer(BaseDataFileFactory factory)
Method Detail

openContainer

protected final boolean openContainer(ContainerKey newIdentity)
                               throws StandardException
Description copied from class: FileContainer
Open a container.

Longer descrption of routine.

Open a container. Open the file that maps to this container, if the file does not exist then we assume the container was never created. If the file exists but we have trouble opening it then we throw some exception.
MT - single thread required - Enforced by cache manager.

Specified by:
openContainer in class FileContainer
Throws:
StandardException - Standard exception policy.

closeContainer

protected void closeContainer()
Specified by:
closeContainer in class FileContainer

clean

public final void clean(boolean forRemove)
                 throws StandardException
Write out the header information for this container. If an i/o exception occurs then ...

Throws:
StandardException - Standard Cloudscape error policy
See Also:
Cacheable.clean(boolean)

preAllocate

protected final int preAllocate(long lastPreallocPagenum,
                                int preAllocSize)
Preallocate page.

Specified by:
preAllocate in class FileContainer
Parameters:
lastPreallocPagenum - the last preallocated page number as known by the allocation page
preAllocSize - try to preallocate this page number of pages. Since only the container knows how many pages are actually on disk, it may determine that certain number of pages that the allocation page thinks need to be preallocated is already allocated, in those case, act as if the preallocation is successful.
Returns:
number of successfully preallocated page, or 0 if no page has been preallocated

createContainer

protected void createContainer(ContainerKey newIdentity)
                        throws StandardException
Create a new container, all references to identity must be through the passed in identity, this object will no identity until after this method returns.

Specified by:
createContainer in class FileContainer
Throws:
StandardException - Cloudscape Standard error policy

removeContainer

protected final void removeContainer(LogInstant instant,
                                     boolean leaveStub)
                              throws StandardException
Remove the container.

Specified by:
removeContainer in class BaseContainer
Parameters:
leaveStub - if true, leave a stub. If false, remove everything
Throws:
StandardException - Standard Cloudscape error policy
See Also:
RawContainerHandle.removeContainer(org.apache.derby.iapi.store.raw.log.LogInstant)

readPage

protected final void readPage(long pageNumber,
                              byte[] pageData)
                       throws java.io.IOException,
                              StandardException
Read a page into the supplied array.
MT - thread safe

Specified by:
readPage in class FileContainer
Throws:
StandardException - standard cloudscape error message
java.io.IOException - error reading page

readPositionedPage

protected void readPositionedPage(long pageOffset,
                                  byte[] pageData)
                           throws java.io.IOException
Read the page at the positioned offset. This default implementation, opens the stream and skips to the offset and then reads the data into pageData.

Throws:
java.io.IOException

writePage

protected final void writePage(long pageNumber,
                               byte[] pageData,
                               boolean syncPage)
                        throws java.io.IOException,
                               StandardException
Write a page from the supplied array.
MT - thread safe

Specified by:
writePage in class FileContainer
Throws:
java.io.IOException - error writing page
StandardException - Standard Cloudscape error policy

flushAll

protected final void flushAll()
Description copied from class: BaseContainer
Flush all outstanding changes in this container to persistent storage.

Specified by:
flushAll in class BaseContainer

getInputStream

protected java.io.InputStream getInputStream()
                                      throws java.io.IOException
Get an input stream positioned at the beginning of the file

Throws:
java.io.IOException


Apache Derby V10.0 Engine Documentation - Copyright © 1997,2004 The Apache Software Foundation or its licensors, as applicable.