DNA Calib 1.1
Project brief
Public Member Functions | Static Public Member Functions | List of all members
trio::FileStream Class Reference

Standard file stream. More...

#include <FileStream.h>

Inheritance diagram for trio::FileStream:
Inheritance graph
Collaboration diagram for trio::FileStream:
Collaboration graph

Public Member Functions

 FileStream ()=default
 
 ~FileStream () override
 
 FileStream (const FileStream &)=delete
 
FileStreamoperator= (const FileStream &)=delete
 
 FileStream (FileStream &&)=default
 
FileStreamoperator= (FileStream &&)=default
 
- Public Member Functions inherited from trio::BoundedIOStream
virtual ~BoundedIOStream ()
 
- Public Member Functions inherited from trio::Openable
virtual void open ()=0
 Open access to the stream. More...
 
- Public Member Functions inherited from trio::Closeable
virtual void close ()=0
 Close access to the stream. More...
 
- Public Member Functions inherited from trio::Readable
virtual std::size_t read (char *destination, std::size_t size)=0
 Read bytes from stream into the given buffer. More...
 
virtual std::size_t read (Writable *destination, std::size_t size)=0
 Read bytes from this stream into the given stream. More...
 
- Public Member Functions inherited from trio::Writable
virtual std::size_t write (const char *source, std::size_t size)=0
 Writes bytes from the given buffer to the stream. More...
 
virtual std::size_t write (Readable *source, std::size_t size)=0
 Writes bytes from the given stream to this stream. More...
 
- Public Member Functions inherited from trio::Seekable
virtual std::uint64_t tell ()=0
 Get the current position in the stream. More...
 
virtual void seek (std::uint64_t position)=0
 Set the current position in the stream. More...
 
- Public Member Functions inherited from trio::Bounded
virtual std::uint64_t size ()=0
 Obtain size of stream in bytes. More...
 

Static Public Member Functions

static FileStreamcreate (const char *path, AccessMode accessMode, OpenMode openMode, MemoryResource *memRes=nullptr)
 Factory method for creation of a FileStream instance. More...
 
static void destroy (FileStream *instance)
 Method for freeing a FileStream instance. More...
 

Additional Inherited Members

- Public Types inherited from trio::BoundedIOStream
using AccessMode = trio::AccessMode
 
using OpenMode = trio::OpenMode
 
- Static Public Attributes inherited from trio::BoundedIOStream
static const sc::StatusCode OpenError {100, "Error opening file"}
 
static const sc::StatusCode ReadError {101, "Error reading file"}
 
static const sc::StatusCode WriteError {102, "Error writing file"}
 
static const sc::StatusCode AlreadyOpenError {103, "File already open"}
 
static const sc::StatusCode SeekError {104, "Error seeking file"}
 
- Protected Member Functions inherited from trio::Controllable
virtual ~Controllable ()
 
- Protected Member Functions inherited from trio::Openable
virtual ~Openable ()
 
- Protected Member Functions inherited from trio::Closeable
virtual ~Closeable ()
 
- Protected Member Functions inherited from trio::Readable
virtual ~Readable ()
 
- Protected Member Functions inherited from trio::Writable
virtual ~Writable ()
 
- Protected Member Functions inherited from trio::Seekable
virtual ~Seekable ()
 
- Protected Member Functions inherited from trio::Bounded
virtual ~Bounded ()
 

Detailed Description

Standard file stream.

Constructor & Destructor Documentation

◆ FileStream() [1/3]

trio::FileStream::FileStream ( )
default

◆ ~FileStream()

trio::FileStream::~FileStream ( )
overridedefault

◆ FileStream() [2/3]

trio::FileStream::FileStream ( const FileStream )
delete

◆ FileStream() [3/3]

trio::FileStream::FileStream ( FileStream &&  )
default

Member Function Documentation

◆ create()

FileStream * trio::FileStream::create ( const char *  path,
AccessMode  accessMode,
OpenMode  openMode,
MemoryResource memRes = nullptr 
)
static

Factory method for creation of a FileStream instance.

Parameters
pathUTF-8 encoded path to file to be opened.
accessModeControl whether the file is opened for reading or writing.
openModeControl whether the file is opened in binary or textual mode.
memResThe memory resource to be used for the allocation of the FileStream instance.
Note
If a custom memory resource is not given, a default allocation mechanism will be used.
Warning
User is responsible for releasing the returned pointer by calling destroy.
See also
destroy
49 {
51 return alloc.newObject(path, accessMode, openMode, memRes);
52}
Definition: PolyAllocator.h:129

◆ destroy()

void trio::FileStream::destroy ( FileStream instance)
static

Method for freeing a FileStream instance.

Parameters
instanceInstance of FileStream to be freed.
See also
create
54 {
55 // NOLINTNEXTLINE(cppcoreguidelines-pro-type-static-cast-downcast)
56 auto stream = static_cast<FileStreamImpl*>(instance);
57 pma::PolyAllocator<FileStreamImpl> alloc{stream->getMemoryResource()};
58 alloc.deleteObject(stream);
59}

◆ operator=() [1/2]

FileStream & trio::FileStream::operator= ( const FileStream )
delete

◆ operator=() [2/2]

FileStream & trio::FileStream::operator= ( FileStream &&  )
default

The documentation for this class was generated from the following files: