The RRawFileTFile wraps an open TFile, but does not take ownership.
Definition at line 29 of file RRawFileTFile.hxx.
Public Member Functions | |
| RRawFileTFile (TFile *file) | |
| std::unique_ptr< ROOT::Internal::RRawFile > | Clone () const final |
| Create a new RawFile that accesses the same resource. The file pointer is reset to zero. | |
Public Member Functions inherited from ROOT::Internal::RRawFile | |
| RRawFile (const RRawFile &)=delete | |
| RRawFile (std::string_view url, ROptions options) | |
| virtual | ~RRawFile ()=default |
| std::uint64_t | GetFilePos () const |
| Returns the offset for the next Read/Readln call. | |
| virtual RIOVecLimits | GetReadVLimits () |
| Returns the limits regarding the ioVec input to ReadV for this specific file; may open the file as a side-effect. | |
| std::uint64_t | GetSize () |
| Returns the size of the file. | |
| std::string | GetUrl () const |
| Returns the url of the file. | |
| bool | IsBuffering () const |
| bool | IsOpen () const |
| Once opened, the file stay open until destruction of the RRawFile object. | |
| RRawFile & | operator= (const RRawFile &)=delete |
| size_t | Read (void *buffer, size_t nbytes) |
| Read from fFilePos offset. Returns the actual number of bytes read. | |
| size_t | ReadAt (void *buffer, size_t nbytes, std::uint64_t offset) |
| Buffered read from a random position. | |
| bool | Readln (std::string &line) |
| Read the next line starting from the current value of fFilePos. Returns false if the end of the file is reached. | |
| void | ReadV (RIOVec *ioVec, unsigned int nReq) |
| Opens the file if necessary and calls ReadVImpl. | |
| void | Seek (std::uint64_t offset) |
| Change the cursor fFilePos. | |
| void | SetBuffering (bool value) |
| Turn off buffered reads; all scalar read requests go directly to the implementation. | |
Protected Member Functions | |
| std::uint64_t | GetSizeImpl () final |
| Derived classes should return the file size. | |
| void | OpenImpl () final |
| OpenImpl() is called at most once and before any call to either DoReadAt or DoGetSize. | |
| size_t | ReadAtImpl (void *buffer, size_t nbytes, std::uint64_t offset) final |
| Derived classes should implement low-level reading without buffering. | |
Protected Member Functions inherited from ROOT::Internal::RRawFile | |
| void | EnsureOpen () |
| Open the file if not already open. Otherwise noop. | |
| virtual void | ReadVImpl (RIOVec *ioVec, unsigned int nReq) |
| By default implemented as a loop of ReadAt calls but can be overwritten, e.g. XRootD or DAVIX implementations. | |
Private Attributes | |
| TFile * | fFile |
Additional Inherited Members | |
Public Types inherited from ROOT::Internal::RRawFile | |
| enum class | ELineBreaks { kAuto , kSystem , kUnix , kWindows } |
| kAuto detects the line break from the first line, kSystem picks the system's default More... | |
Static Public Member Functions inherited from ROOT::Internal::RRawFile | |
| static std::unique_ptr< RRawFile > | Create (std::string_view url, ROptions options=ROptions()) |
| Factory method that returns a suitable concrete implementation according to the transport in the url. | |
| static std::string | GetLocation (std::string_view url) |
| Returns only the file location, e.g. "server/file" for http://server/file. | |
| static std::string | GetTransport (std::string_view url) |
| Returns only the transport protocol in lower case, e.g. "http" for HTTP://server/file. | |
Protected Attributes inherited from ROOT::Internal::RRawFile | |
| std::uint64_t | fFilePos = 0 |
| The current position in the file, which can be changed by Seek, Read, and Readln. | |
| ROptions | fOptions |
| std::string | fUrl |
#include <ROOT/RRawFileTFile.hxx>
|
inline |
Definition at line 47 of file RRawFileTFile.hxx.
|
inlinefinalvirtual |
Create a new RawFile that accesses the same resource. The file pointer is reset to zero.
Implements ROOT::Internal::RRawFile.
Definition at line 49 of file RRawFileTFile.hxx.
|
inlinefinalprotectedvirtual |
Derived classes should return the file size.
Implements ROOT::Internal::RRawFile.
Definition at line 44 of file RRawFileTFile.hxx.
|
inlinefinalprotectedvirtual |
OpenImpl() is called at most once and before any call to either DoReadAt or DoGetSize.
If fOptions.fBlocksize is negative, derived classes are responsible to set a sensible value. After a call to OpenImpl(), fOptions.fBlocksize must be larger or equal to zero.
Implements ROOT::Internal::RRawFile.
Definition at line 34 of file RRawFileTFile.hxx.
|
inlinefinalprotectedvirtual |
Derived classes should implement low-level reading without buffering.
Short reads indicate the end of the file, therefore derived classes should return nbytes bytes if available.
Implements ROOT::Internal::RRawFile.
Definition at line 36 of file RRawFileTFile.hxx.
|
private |
Definition at line 31 of file RRawFileTFile.hxx.