class axl::io::MappedFile

#include <axl_io_MappedFile.h>

class MappedFile
{
public:
    // enums

    enum DefaultsKind;

    // construction

    MappedFile();
    ~MappedFile();

    // methods

    bool
    isOpen() const;

    uint_t
    getFlags() const;

    const File*
    getFile() const;

    uint64_t
    getSize() const;

    bool
    setSize(uint64_t size);

    void
    close();

    bool
    open(
        const sl::StringRef& fileName,
        uint_t flags = 0
        );

    bool
    duplicate(
        File::Handle fileHandle,
        uint_t flags = 0
        );

    bool
    duplicate(
        const File* file,
        uint_t flags = 0
        );

    void
    attach(
        File::Handle fileHandle,
        uint_t flags = 0
        );

    File::Handle
    detach();

    bool
    setup(
        size_t maxDynamicViewCount,
        size_t readAheadSize
        );

    const void*
    view(
        uint64_t offset = 0,
        size_t size = 0,
        bool isPermanent = false
        ) const;

    void*
    view(
        uint64_t offset = 0,
        size_t size = 0,
        bool isPermanent = false
        );

    const void*
    view(
        uint64_t offset,
        size_t size,
        size_t* actualSize,
        bool isPermanent = false
        ) const;

    void*
    view(
        uint64_t offset,
        size_t size,
        size_t* actualSize,
        bool isPermanent = false
        );

    void
    unmapAllViews();
};