class mrpt::io::CFileOutputStream

Overview

This CStream derived class allow using a file as a write-only, binary stream.

See also:

CStream, CFileStream, CFileGZOutputStream

#include <mrpt/io/CFileOutputStream.h>

class CFileOutputStream: public mrpt::io::CStream
{
public:
    // construction

    CFileOutputStream(const std::string& fileName, const OpenMode mode = OpenMode::TRUNCATE);
    CFileOutputStream();
    CFileOutputStream(const CFileOutputStream&);

    // methods

    CFileOutputStream& operator = (const CFileOutputStream&);

    bool open(
        const std::string& fileName,
        const OpenMode mode = OpenMode::TRUNCATE
        );

    void close();
    virtual std::string getStreamDescription() const;
    bool fileOpenCorrectly() const;
    bool is_open();
    virtual uint64_t Seek(int64_t Offset, CStream::TSeekOrigin Origin = sFromBeginning);
    virtual uint64_t getTotalBytesCount() const;
    virtual uint64_t getPosition() const;
    virtual size_t Read(void* Buffer, size_t Count);
    virtual size_t Write(const void* Buffer, size_t Count);
};

Inherited Members

public:
    // methods

    virtual size_t Read(void* Buffer, size_t Count) = 0;
    virtual size_t Write(const void* Buffer, size_t Count) = 0;
    virtual uint64_t getTotalBytesCount() const = 0;
    virtual uint64_t getPosition() const = 0;

Construction

CFileOutputStream(const std::string& fileName, const OpenMode mode = OpenMode::TRUNCATE)

Constructor.

Parameters:

fileName

The file to be open in this stream

mode

Especify whether to truncate/create the file, or to append at the end if it exists.

std::exception

if the file cannot be opened.

CFileOutputStream()

Default constructor.

Methods

void close()

Close the stream.

virtual std::string getStreamDescription() const

Returns a human-friendly description of the stream, e.g.

a filename.

bool fileOpenCorrectly() const

Returns true if the file was open without errors.

bool is_open()

Returns true if the file was open without errors.

virtual uint64_t Seek(int64_t Offset, CStream::TSeekOrigin Origin = sFromBeginning)

Introduces a pure virtual method for moving to a specified position in the streamed resource.

he Origin parameter indicates how to interpret the Offset parameter. Origin should be one of the following values:

  • sFromBeginning (Default) Offset is from the beginning of the resource. Seek moves to the position Offset. Offset must be >= 0.

  • sFromCurrent Offset is from the current position in the resource. Seek moves to Position + Offset.

  • sFromEnd Offset is from the end of the resource. Offset must be <= 0 to indicate a number of bytes before the end of the file.

Returns:

Seek returns the new value of the Position property.

virtual uint64_t getTotalBytesCount() const

Method for getting the total number of bytes written to buffer.

virtual uint64_t getPosition() const

Method for getting the current cursor position, where 0 is the first byte and TotalBytesCount-1 the last one.

virtual size_t Read(void* Buffer, size_t Count)

Introduces a pure virtual method responsible for reading from the stream.

virtual size_t Write(const void* Buffer, size_t Count)

Introduces a pure virtual method responsible for writing to the stream.

Write attempts to write up to Count bytes to Buffer, and returns the number of bytes actually written.