struct CCL::INativeFileSystem

Overview

Native file system interface. More…

#include <inativefilesystem.h>

struct INativeFileSystem: public CCL::IVolumeFileSystem
{
    // enums

    enum EndTransactionMode;
    enum ErrorCodes;

    // methods

    virtual tbool CCL_API getPathType (
        int& type,
        UrlRef baseFolder,
        StringRef fileName
    ) = 0;

    virtual tbool CCL_API setFileTime (UrlRef url, const FileTime& modifiedTime) = 0;
    virtual ISearcher*CCL_API createSearcher (ISearchDescription& description) = 0;
    virtual tbool CCL_API getWorkingDirectory (IUrl& url) = 0;
    virtual tbool CCL_API setWorkingDirectory (UrlRef url) = 0;
    virtual tbool CCL_API getFirstError (int& errorCode) = 0;
    virtual String CCL_API getErrorString (int errorCode) = 0;
    virtual tbool CCL_API beginTransaction () = 0;

    virtual tbool CCL_API endTransaction (
        int mode,
        IProgressNotify* progress = nullptr
    ) = 0;
};

Inherited Members

public:
    // enums

    enum ModeFlags;
    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;
    virtual tbool CCL_API getVolumeInfo (VolumeInfo& info, UrlRef rootUrl) = 0;
    virtual tbool CCL_API isLocalFile (UrlRef url) = 0;
    virtual tbool CCL_API isHiddenFile (UrlRef url) = 0;
    virtual tbool CCL_API isWriteProtected (UrlRef url) = 0;

    virtual tbool CCL_API moveFile (
        UrlRef dstPath,
        UrlRef srcPath,
        int mode = 0,
        IProgressNotify* progress = nullptr
    ) = 0;

    virtual tbool CCL_API copyFile (
        UrlRef dstPath,
        UrlRef srcPath,
        int mode = 0,
        IProgressNotify* progress = nullptr
    ) = 0;

Detailed Documentation

Native file system interface.

Methods

virtual tbool CCL_API getPathType (
    int& type,
    UrlRef baseFolder,
    StringRef fileName
) = 0

Determine type of given resource (IUrl::kFile or IUrl::kFolder).

virtual tbool CCL_API setFileTime (UrlRef url, const FileTime& modifiedTime) = 0

Set date and time the specified file or directory was last modified.

virtual ISearcher*CCL_API createSearcher (ISearchDescription& description) = 0

Create file searcher.

virtual tbool CCL_API getWorkingDirectory (IUrl& url) = 0

Get current working directory.

virtual tbool CCL_API setWorkingDirectory (UrlRef url) = 0

Set current working directory.

virtual tbool CCL_API getFirstError (int& errorCode) = 0

Return (and clear) first error occurred in the calling thread.

virtual String CCL_API getErrorString (int errorCode) = 0

Get localized error string for given error code.

virtual tbool CCL_API beginTransaction () = 0

Begin collecting file operations (for supported operations - fails if transaction for calling thread already exists)

virtual tbool CCL_API endTransaction (
    int mode,
    IProgressNotify* progress = nullptr
) = 0

Perform collected file operations.