struct CCL::IPackageFile
Overview
A package file represents a “file system in a file”. More…
#include <ipackagefile.h> struct IPackageFile: public CCL::IFileResource { // methods virtual tresult CCL_API setOption (StringID id, VariantRef value) = 0; virtual tresult CCL_API getOption (Variant& value, StringID id) const = 0; virtual IFileSystem*CCL_API getFileSystem () = 0; virtual IPackageItem*CCL_API getRootItem () = 0; virtual int CCL_API embedd ( UrlRef path, int fileIteratorMode = IFileIterator::kAll, IUrlFilter* filter = nullptr, IProgressNotify* progress = nullptr ) = 0; virtual int CCL_API embeddToFolder ( UrlRef destPath, UrlRef sourcePath, int fileIteratorMode = IFileIterator::kAll, IUrlFilter* filter = nullptr, IProgressNotify* progress = nullptr ) = 0; virtual int CCL_API extractAll ( UrlRef path, tbool deep = true, IUrlFilter* filter = nullptr, IProgressNotify* progress = nullptr ) = 0; virtual int CCL_API extractFolder ( UrlRef sourcePath, UrlRef destPath, tbool deep = true, IUrlFilter* filter = nullptr, IProgressNotify* progress = nullptr ) = 0; virtual IPackageItem*CCL_API createItem ( UrlRef url, IPackageItemWriter* writer, int* attributes = nullptr ) = 0; virtual IPackageItem*CCL_API copyItem ( IPackageFile* sourcePackage, UrlRef sourcePath, const IUrl* destPath = nullptr ) = 0; virtual tbool CCL_API flush (IProgressNotify* progress = nullptr) = 0; };
Inherited Members
public: // structs struct Closer; struct Opener; // 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 tbool CCL_API setPath (UrlRef path) = 0; virtual UrlRef CCL_API getPath () const = 0; virtual tbool CCL_API open (int mode = 0) = 0; virtual tbool CCL_API create (int mode = 0) = 0; virtual tbool CCL_API close () = 0; virtual tbool CCL_API isExisting () const = 0; virtual tbool CCL_API isOpen () const = 0; virtual tbool CCL_API deletePhysical (int mode = 0) = 0;
Detailed Documentation
A package file represents a “file system in a file”.
Methods
virtual tresult CCL_API setOption (StringID id, VariantRef value) = 0
Set package file option (e.g.
enable/disable compression).
virtual tresult CCL_API getOption (Variant& value, StringID id) const = 0
Get package file option.
virtual IFileSystem*CCL_API getFileSystem () = 0
Get file system interface to iterate, open and create individual streams.
virtual IPackageItem*CCL_API getRootItem () = 0
Get root of content table (returns null if unsupported).
virtual int CCL_API embedd ( UrlRef path, int fileIteratorMode = IFileIterator::kAll, IUrlFilter* filter = nullptr, IProgressNotify* progress = nullptr ) = 0
Embedd files into package.
This method builds the content table only. Use ‘flush’ to copy file data.
virtual int CCL_API embeddToFolder ( UrlRef destPath, UrlRef sourcePath, int fileIteratorMode = IFileIterator::kAll, IUrlFilter* filter = nullptr, IProgressNotify* progress = nullptr ) = 0
Embedd files into package in a subfolder.
This method builds the content table only. Use ‘flush’ to copy file data.
virtual int CCL_API extractAll ( UrlRef path, tbool deep = true, IUrlFilter* filter = nullptr, IProgressNotify* progress = nullptr ) = 0
Extract all files from package to local folder.
virtual int CCL_API extractFolder ( UrlRef sourcePath, UrlRef destPath, tbool deep = true, IUrlFilter* filter = nullptr, IProgressNotify* progress = nullptr ) = 0
Extract subfolder from package to local folder.
virtual IPackageItem*CCL_API createItem ( UrlRef url, IPackageItemWriter* writer, int* attributes = nullptr ) = 0
Create item to be written during flush (takes ownership of writer!).
virtual IPackageItem*CCL_API copyItem ( IPackageFile* sourcePackage, UrlRef sourcePath, const IUrl* destPath = nullptr ) = 0
Create item as a copy of an item from another package.
If destination path is not given, source path will be used.
virtual tbool CCL_API flush (IProgressNotify* progress = nullptr) = 0
Flush changes made to content table.
This process might take a while.