[
https://issues.apache.org/jira/browse/LUCENE-2126?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12786959#action_12786959
]
Marvin Humphrey commented on LUCENE-2126:
-----------------------------------------
FWIW, this approach is sort of the inverse of where we've gone with Lucy.
In Lucy, low-level unbuffered IO operations are abstracted into FileHandle,
which is either a thin wrapper around a POSIX file descriptor (e.g.
FSFileHandle under unixen), or a simulation thereof (e.g. FSFileHandle under
Windows, RAMFileHandle).
Then there are InStream and OutStream, which would be analogous to DataInput
and DataOutput, in that they have all the Lucy-specific encoding/decoding
methods. However, instead of requiring that subclasses implement the
low-level IO operations, InStream "has a" FileHandle and OutStream "has a"
FileHandle.
The advantage of breaking out FileHandle as a separate class is that if e.g.
you extend InStream by adding on PFOR encoding, you automatically get the
benefit for all IO implementations. I think that under the
DataInput/DataOutput model, that extension technique will only be available to
core devs of Lucene, no?
More info:
* LUCY-58 FileHandle
* LUCY-63 InStream and OutStream
> Split up IndexInput and IndexOutput into DataInput and DataOutput
> -----------------------------------------------------------------
>
> Key: LUCENE-2126
> URL: https://issues.apache.org/jira/browse/LUCENE-2126
> Project: Lucene - Java
> Issue Type: Improvement
> Affects Versions: Flex Branch
> Reporter: Michael Busch
> Assignee: Michael Busch
> Priority: Minor
> Fix For: Flex Branch
>
> Attachments: lucene-2126.patch
>
>
> I'd like to introduce the two new classes DataInput and DataOutput
> that contain all methods from IndexInput and IndexOutput that actually
> decode or encode data, such as readByte()/writeByte(),
> readVInt()/writeVInt().
> Methods like getFilePointer(), seek(), close(), etc., which are not
> related to data encoding, but to files as input/output source stay in
> IndexInput/IndexOutput.
> This patch also changes ByteSliceReader/ByteSliceWriter to extend
> DataInput/DataOutput. Previously ByteSliceReader implemented the
> methods that stay in IndexInput by throwing RuntimeExceptions.
> See also LUCENE-2125.
> All tests pass.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]