struct CCL::IPackageHandler

Overview

#include <ipackagehandler.h>

struct IPackageHandler: public CCL::IUnknown
{
    // enums

    enum OpenPackageOptions;

    // methods

    virtual tresult CCL_API setCryptoFactory (Security::Crypto::ICryptoFactory* factory) = 0;
    virtual tbool CCL_API isPackage (UrlRef path) = 0;
    virtual IPackageFile*CCL_API createPackage (UrlRef path, UIDRef cid = kNullUID) = 0;
    virtual IPackageFile*CCL_API openPackage (UrlRef path, int options = 0) = 0;

    virtual IPackageFile*CCL_API createPackageWithStream (
        IStream& stream,
        UIDRef cid
    ) = 0;

    virtual IPackageFile*CCL_API openPackageWithStream (
        IStream& stream,
        UIDRef cid = kNullUID
    ) = 0;

    virtual tresult CCL_API mountPackageVolume (
        IPackageFile* package,
        StringRef packageID,
        int options = 0
    ) = 0;

    virtual tresult CCL_API unmountPackageVolume (IPackageFile* package) = 0;
    virtual IPackageVolume*CCL_API openPackageVolume (StringRef packageID) = 0;
    virtual tbool CCL_API isMounted (UrlRef path) = 0;
    virtual tresult CCL_API terminate () = 0;
};

Inherited Members

public:
    // 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;

Detailed Documentation

Methods

virtual tresult CCL_API setCryptoFactory (Security::Crypto::ICryptoFactory* factory) = 0

Set external factory for cryptographical algorithms.

virtual tbool CCL_API isPackage (UrlRef path) = 0

Check if given location points to a package.

virtual IPackageFile*CCL_API createPackage (UrlRef path, UIDRef cid = kNullUID) = 0

Create new package file object, type is defined by path or class identifier.

virtual IPackageFile*CCL_API openPackage (UrlRef path, int options = 0) = 0

Open existing package file, type is detected automatically.

virtual IPackageFile*CCL_API createPackageWithStream (
    IStream& stream,
    UIDRef cid
) = 0

Create package with pre-existing stream, the stream will be shared.

virtual IPackageFile*CCL_API openPackageWithStream (
    IStream& stream,
    UIDRef cid = kNullUID
) = 0

Open package from pre-existing stream, the stream will be shared.

virtual tresult CCL_API mountPackageVolume (
    IPackageFile* package,
    StringRef packageID,
    int options = 0
) = 0

Mount package into file system (can be accessed via “package://{package-id}/…”).

virtual tresult CCL_API unmountPackageVolume (IPackageFile* package) = 0

Unmount package from file system.

virtual IPackageVolume*CCL_API openPackageVolume (StringRef packageID) = 0

Get package volume interface by identifier, must be released by caller!

virtual tbool CCL_API isMounted (UrlRef path) = 0

Check if package at given location is already mounted.

virtual tresult CCL_API terminate () = 0

Unmount all packages from file system.