class CCL::AbstractFileSystem

Overview

Mix-in base class for file systems not implementing all features. More…

#include <ifilesystem.h>

class AbstractFileSystem: public CCL::IFileSystem
{
public:
    // methods

    virtual IStream*CCL_API openStream (
        UrlRef url,
        int mode = IStream::kOpenMode,
        IUnknown* context = nullptr
    );

    virtual tbool CCL_API fileExists (UrlRef url);
    virtual tbool CCL_API getFileInfo (FileInfo& info, UrlRef url);
    virtual tbool CCL_API removeFile (UrlRef url, int mode = 0);
    virtual tbool CCL_API renameFile (UrlRef url, StringRef newName, int mode = 0);

    virtual IFileIterator*CCL_API newIterator (
        UrlRef url,
        int mode = IFileIterator::kAll
    );

    virtual tbool CCL_API createFolder (UrlRef url);
    virtual tbool CCL_API removeFolder (UrlRef url, int mode = 0);
    virtual tbool CCL_API isCaseSensitive ();
};

Inherited Members

public:
    // enums

    enum ModeFlags;

    // methods

    virtual tresult CCL_API queryInterface (UIDRef iid, void** ptr) = 0;
    virtual unsigned int CCL_API retain () = 0;
    virtual unsigned int CCL_API release () = 0;

    virtual IStream*CCL_API openStream (
        UrlRef url,
        int mode = IStream::kOpenMode,
        IUnknown* context = nullptr
    ) = 0;

    virtual tbool CCL_API fileExists (UrlRef url) = 0;
    virtual tbool CCL_API getFileInfo (FileInfo& info, UrlRef url) = 0;
    virtual tbool CCL_API removeFile (UrlRef url, int mode = 0) = 0;
    virtual tbool CCL_API renameFile (UrlRef url, StringRef newName, int mode = 0) = 0;

    virtual IFileIterator*CCL_API newIterator (
        UrlRef url,
        int mode = IFileIterator::kAll
    ) = 0;

    virtual tbool CCL_API createFolder (UrlRef url) = 0;
    virtual tbool CCL_API removeFolder (UrlRef url, int mode = 0) = 0;
    virtual tbool CCL_API isCaseSensitive () = 0;

Detailed Documentation

Mix-in base class for file systems not implementing all features.

<>

Methods

virtual IStream*CCL_API openStream (
    UrlRef url,
    int mode = IStream::kOpenMode,
    IUnknown* context = nullptr
)

Open stream with given location and mode.

virtual tbool CCL_API fileExists (UrlRef url)

Check if file or folder exists.

virtual tbool CCL_API getFileInfo (FileInfo& info, UrlRef url)

Retrieve file information.

virtual tbool CCL_API removeFile (UrlRef url, int mode = 0)

Delete file physically.

virtual tbool CCL_API renameFile (UrlRef url, StringRef newName, int mode = 0)

Rename file or directory.

virtual IFileIterator*CCL_API newIterator (
    UrlRef url,
    int mode = IFileIterator::kAll
)

Create new file iterator for given folder location.

virtual tbool CCL_API createFolder (UrlRef url)

Create new folder.

virtual tbool CCL_API removeFolder (UrlRef url, int mode = 0)

Delete folder physically.

virtual tbool CCL_API isCaseSensitive ()

Check if the filesystem is case sensitive.