Class TFileTransport


  • public class TFileTransport
    extends TTransport
    FileTransport implementation of the TTransport interface. Currently this is a straightforward port of the cpp implementation It may make better sense to provide a basic stream access on top of the framed file format The FileTransport can then be a user of this framed file format with some additional logic for chunking.
    • Field Detail

      • inputFile_

        protected TSeekableFile inputFile_
        Underlying file being read
      • outputStream_

        protected java.io.OutputStream outputStream_
        Underlying outputStream
    • Constructor Detail

      • TFileTransport

        public TFileTransport​(java.lang.String path,
                              boolean readOnly)
                       throws java.io.IOException
        File Transport ctor
        Parameters:
        path - File path to read and write from
        readOnly - Whether this is a read-only transport
        Throws:
        java.io.IOException
      • TFileTransport

        public TFileTransport​(TSeekableFile inputFile,
                              boolean readOnly)
        File Transport ctor
        Parameters:
        inputFile - open TSeekableFile to read/write from
        readOnly - Whether this is a read-only transport
    • Method Detail

      • isOpen

        public boolean isOpen()
        open if both input/output open unless readonly
        Specified by:
        isOpen in class TTransport
        Returns:
        true
      • open

        public void open()
                  throws TTransportException
        Diverging from the cpp model and sticking to the TSocket model Files are not opened in ctor - but in explicit open call
        Specified by:
        open in class TTransport
        Throws:
        TTransportException - if the transport could not be opened
      • close

        public void close()
        Closes the transport.
        Specified by:
        close in class TTransport
      • readAll

        public int readAll​(byte[] buf,
                           int off,
                           int len)
                    throws TTransportException
        Cloned from TTransport.java:readAll(). Only difference is throwing an EOF exception where one is detected.
        Overrides:
        readAll in class TTransport
        Parameters:
        buf - Array to read into
        off - Index to start reading at
        len - Maximum number of bytes to read
        Returns:
        The number of bytes actually read, which must be equal to len
        Throws:
        TTransportException - if there was an error reading data
      • read

        public int read​(byte[] buf,
                        int off,
                        int len)
                 throws TTransportException
        Reads up to len bytes into buffer buf, starting at offset off.
        Specified by:
        read in class TTransport
        Parameters:
        buf - Array to read into
        off - Index to start reading at
        len - Maximum number of bytes to read
        Returns:
        The number of bytes actually read
        Throws:
        TTransportException - if there was an error reading data
      • write

        public void write​(byte[] buf,
                          int off,
                          int len)
                   throws TTransportException
        Writes up to len bytes from the buffer.
        Specified by:
        write in class TTransport
        Parameters:
        buf - The output data buffer
        off - The offset to start writing from
        len - The number of bytes to write
        Throws:
        TTransportException - if there was an error writing data
      • main

        public static void main​(java.lang.String[] args)
                         throws java.lang.Exception
        test program
        Throws:
        java.lang.Exception