You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@arrow.apache.org by "Wes McKinney (JIRA)" <ji...@apache.org> on 2019/08/13 20:24:00 UTC

[jira] [Comment Edited] (ARROW-6180) [C++] Create InputStream that references a segment of a RandomAccessFile

    [ https://issues.apache.org/jira/browse/ARROW-6180?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16904683#comment-16904683 ] 

Wes McKinney edited comment on ARROW-6180 at 8/13/19 8:23 PM:
--------------------------------------------------------------

The way I would do this is as follows:

* Add {{RandomAccessFile::GetStream(int64_t offset, int64_t length, std::shared_ptr<InputStream>* out)}} (or similarly named -- might need to be a top-level function so that it can retain a shared_ptr to the parent file)
* Implement the object returned by this method privately. So no need to add any new class to public headers


was (Author: wesmckinn):
The way I would do this is as follows:

* Add {{RandomAccessFile::GetStream(int64_t offset, int64_t length, std::shared_ptr<InputStream>* out)}} (or similarly named)
* Implement the object returned by this method privately. So no need to add any new class to public headers

> [C++] Create InputStream that references a segment of a RandomAccessFile
> ------------------------------------------------------------------------
>
>                 Key: ARROW-6180
>                 URL: https://issues.apache.org/jira/browse/ARROW-6180
>             Project: Apache Arrow
>          Issue Type: Improvement
>          Components: C++
>            Reporter: Wes McKinney
>            Assignee: Zherui Cao
>            Priority: Major
>
> If different threads wants to do buffered reads over different portions of a file (and they are unable to create their own separate file handles), they may clobber each other. I would propose creating an object that keeps the RandomAccessFile internally and implements the InputStream API in a way that is safe from other threads changing the file position



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)