The RRawFileWin class uses portable C I/O calls to read from a drive.
The standard C I/O buffering is turned off for the buffering of RRawFile base class.
Definition at line 32 of file RRawFileWin.hxx.
Public Member Functions | |
| RRawFileWin (std::string_view url, RRawFile::ROptions options) | |
| ~RRawFileWin () override | |
| std::unique_ptr< RRawFile > | Clone () const final | 
| Create a new RawFile that accesses the same resource. The file pointer is reset to zero.   | |
| int | GetFeatures () const final | 
| Derived classes shall inform the user about the supported functionality, which can possibly depend on the file at hand.   | |
  Public Member Functions inherited from ROOT::Internal::RRawFile | |
| RRawFile (const RRawFile &)=delete | |
| RRawFile (std::string_view url, ROptions options) | |
| virtual | ~RRawFile () | 
| 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 | IsOpen () const | 
| Once opened, the file stay open until destruction of the RRawFile object.   | |
| void * | Map (size_t nbytes, std::uint64_t offset, std::uint64_t &mapdOffset) | 
| Memory mapping according to POSIX standard; in particular, new mappings of the same range replace older ones.   | |
| 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 | Unmap (void *region, size_t nbytes) | 
| Receives a pointer returned by Map() and should have nbytes set to the full length of the mapping.   | |
Protected Member Functions | |
| std::uint64_t | GetSizeImpl () final | 
| Derived classes should return the file size or kUnknownFileSize.   | |
| 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 * | MapImpl (size_t nbytes, std::uint64_t offset, std::uint64_t &mapdOffset) | 
| If a derived class supports mmap, the MapImpl and UnmapImpl calls are supposed to be implemented, too The default implementation throws an error.   | |
| 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.   | |
| virtual void | UnmapImpl (void *region, size_t nbytes) | 
| Derived classes with mmap support must be able to unmap the memory area handed out by Map()   | |
Private Member Functions | |
| void | Seek (long offset, int whence) | 
Private Attributes | |
| FILE * | fFilePtr | 
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.   | |
  Static Public Attributes inherited from ROOT::Internal::RRawFile | |
| static constexpr int | kFeatureHasAsyncIo = 0x04 | 
| File supports async IO.   | |
| static constexpr int | kFeatureHasMmap = 0x02 | 
| Map() and Unmap() are implemented.   | |
| static constexpr int | kFeatureHasSize = 0x01 | 
| GetSize() does not return kUnknownFileSize.   | |
| static constexpr std::uint64_t | kUnknownFileSize = std::uint64_t(-1) | 
| Derived classes do not necessarily need to provide file size information but they can return "not known" instead.   | |
  Protected Attributes inherited from ROOT::Internal::RRawFile | |
| std::uint64_t | fFilePos | 
| The current position in the file, which can be changed by Seek, Read, and Readln.   | |
| ROptions | fOptions | 
| std::string | fUrl | 
#include <ROOT/RRawFileWin.hxx>
| ROOT::Internal::RRawFileWin::RRawFileWin | ( | std::string_view | url, | 
| RRawFile::ROptions | options ) | 
Definition at line 29 of file RRawFileWin.cxx.
      
  | 
  override | 
Definition at line 34 of file RRawFileWin.cxx.
      
  | 
  finalvirtual | 
Create a new RawFile that accesses the same resource. The file pointer is reset to zero.
Implements ROOT::Internal::RRawFile.
Definition at line 40 of file RRawFileWin.cxx.
      
  | 
  inlinefinalvirtual | 
Derived classes shall inform the user about the supported functionality, which can possibly depend on the file at hand.
Implements ROOT::Internal::RRawFile.
Definition at line 46 of file RRawFileWin.hxx.
      
  | 
  finalprotectedvirtual | 
Derived classes should return the file size or kUnknownFileSize.
Implements ROOT::Internal::RRawFile.
Definition at line 45 of file RRawFileWin.cxx.
      
  | 
  finalprotectedvirtual | 
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 56 of file RRawFileWin.cxx.
      
  | 
  finalprotectedvirtual | 
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 68 of file RRawFileWin.cxx.
      
  | 
  private | 
Definition at line 79 of file RRawFileWin.cxx.
      
  | 
  private | 
Definition at line 34 of file RRawFileWin.hxx.