Interface Ref

All Known Subinterfaces:
BlobRef, ClobRef

public interface Ref
An interface that represents a reference to a object that isn't stored in main memory. The reference to the object is made through the id value returned by the 'getID' method.
Author:
Tobias Downer
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    This method is called when the write phrase has completed, and it marks this large object as complete.
    long
    An id used to reference this object in the context of the database.
    long
    The 'raw' size of this large object in bytes when it is in its byte[] form.
    byte
    The type of large object that is being referenced.
    void
    read(long offset, byte[] buf, int length)
    Reads a part of this large object from the store into the given byte buffer.
    void
    write(long offset, byte[] buf, int length)
    This method is used to write the contents of the large object into the backing store.
  • Method Details

    • getID

      long getID()
      An id used to reference this object in the context of the database. Note that once a static reference is made (or removed) to/from this object, the BlobStore should be notified of the reference. The store will remove an large object that has no references to it.
    • getType

      byte getType()
      The type of large object that is being referenced. 2 = binary object, 3 = ASCII character object, 4 = Unicode character object.
    • getRawSize

      long getRawSize()
      The 'raw' size of this large object in bytes when it is in its byte[] form. This value allows us to know how many bytes we can read from this large object when it's being transferred to the client.
    • read

      void read(long offset, byte[] buf, int length) throws IOException
      Reads a part of this large object from the store into the given byte buffer. This method should only be used when reading a large object to transfer to the JDBC driver. It represents the byte[] representation of the object only and is only useful for transferral of the large object.
      Throws:
      IOException
    • write

      void write(long offset, byte[] buf, int length) throws IOException
      This method is used to write the contents of the large object into the backing store. This method will only work when the large object is in an initial 'write' phase in which the client is pushing the contents of the large object onto the server to be stored.
      Throws:
      IOException
    • complete

      void complete() throws IOException
      This method is called when the write phrase has completed, and it marks this large object as complete. After this method is called the large object reference is a static object that can not be changed.
      Throws:
      IOException