class Core::Portable::FileStream

Overview

Stream representing a file on disk. More…

#include <corefile.h>

class FileStream: public Core::IO::Stream
{
public:
    // construction

    FileStream(FILE* file = nullptr);

    // methods

    bool open(CStringPtr filename, int mode = IO::kReadMode|IO::kWriteMode);
    bool create(CStringPtr filename);
    void close();
    bool isOpen() const;
    int64 getFileSize();
    virtual int64 getPosition();
    virtual int64 setPosition(int64 pos, int mode);
    virtual int readBytes(void* buffer, int size);
    virtual int writeBytes(const void* buffer, int size);
};

Inherited Members

public:
    // fields

    static const InterfaceID kIID = FOUR_CHAR_ID('B','S','t','r');

    // methods

    virtual int64 getPosition() = 0;
    virtual int64 setPosition(int64 pos, int mode) = 0;
    virtual int readBytes(void* buffer, int size) = 0;
    virtual int writeBytes(const void* buffer, int size) = 0;
    virtual BufferProvider* getBufferProvider();

Detailed Documentation

Stream representing a file on disk.

Methods

bool open(CStringPtr filename, int mode = IO::kReadMode|IO::kWriteMode)

Open file for binary reading and/or writing.

bool create(CStringPtr filename)

Create new file.

void close()

Close file.

bool isOpen() const

Check if file is currently open.

int64 getFileSize()

Get current size of file in bytes.

virtual int64 getPosition()

Get current read/write position.

virtual int64 setPosition(int64 pos, int mode)

Set current read/write position.

See also:

SeekMode

virtual int readBytes(void* buffer, int size)

Read data from stream.

Returns:

number of bytes read or -1 for error

virtual int writeBytes(const void* buffer, int size)

Write data to stream.

Returns:

number of bytes written or -1 for error