struct CCL::Web::IWebFileService
Overview
Interface to mount server volumes into the virtual file system. More…
#include <iwebfileservice.h> struct IWebFileService: public CCL::IUnknown { // fields static const CCL::String kProtocol; // methods virtual tresult CCL_API mountFileServer ( UrlRef serverUrl, StringRef name, StringRef label, IWebCredentials* credentials = nullptr, StringRef type = nullptr, IUnknown* serverHandler = nullptr ) = 0; virtual tresult CCL_API unmountFileServer ( StringRef name, tbool deferred = false ) = 0; virtual tresult CCL_API remountFileServer ( StringRef name, IWebCredentials* newCredentials, const IUrl* newUrl = nullptr ) = 0; virtual tbool CCL_API isMounted ( UrlRef serverUrl, IWebCredentials* credentials = nullptr ) = 0; virtual tresult CCL_API translateServerUrl ( IUrl& webfsUrl, UrlRef serverUrl, IWebCredentials* credentials = nullptr ) = 0; virtual tresult CCL_API translateWebfsUrl (IUrl& serverUrl, UrlRef webfsUrl) = 0; virtual tresult CCL_API terminate () = 0; virtual tresult CCL_API openHandler (UrlRef webfsUrl, UIDRef iid, void** object) = 0; template <class Interface> Interface* openHandler (UrlRef webfsUrl); virtual IFileDescriptor*CCL_API openFileItem (UrlRef webfsUrl) = 0; virtual tresult CCL_API requestDirectory ( IObserver* observer, UrlRef webfsUrl, tbool async = true ) = 0; virtual tresult CCL_API discardDirectory (UrlRef webfsUrl, tbool async = true) = 0; virtual tresult CCL_API scheduleTask ( IObserver* observer, UrlRef webfsUrl, IFileTask* task ) = 0; virtual tresult CCL_API cancelOperation (IObserver* observer) = 0; virtual IRemoteSession*CCL_API openSession (UrlRef webfsUrl) = 0; virtual ISearcher*CCL_API createSearcher (ISearchDescription& description) = 0; virtual tresult CCL_API createDownload ( ITransfer*& transfer, UrlRef webfsUrl, UrlRef localPath ) = 0; virtual tresult CCL_API createUpload ( ITransfer*& transfer, UrlRef webfsUrl, UrlRef localPath ) = 0; virtual ITriggerAction*CCL_API createDirectoryChangedAction (UrlRef webfsUrl) = 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
Interface to mount server volumes into the virtual file system.
Threading Policy: File servers can be mounted/unmounted by the main thread only, otherwise the methods will fail with kResultWrongThread!
Fields
static const CCL::String kProtocol
Methods
virtual tresult CCL_API mountFileServer ( UrlRef serverUrl, StringRef name, StringRef label, IWebCredentials* credentials = nullptr, StringRef type = nullptr, IUnknown* serverHandler = nullptr ) = 0
Mount file server.
virtual tresult CCL_API unmountFileServer ( StringRef name, tbool deferred = false ) = 0
Unmount file server.
virtual tresult CCL_API remountFileServer ( StringRef name, IWebCredentials* newCredentials, const IUrl* newUrl = nullptr ) = 0
Remount file server with new credentials, and optionally new URL.
virtual tbool CCL_API isMounted ( UrlRef serverUrl, IWebCredentials* credentials = nullptr ) = 0
Check if file server is already mounted.
virtual tresult CCL_API translateServerUrl ( IUrl& webfsUrl, UrlRef serverUrl, IWebCredentials* credentials = nullptr ) = 0
Translate URL on server to its equivalent in WebFS.
virtual tresult CCL_API translateWebfsUrl (IUrl& serverUrl, UrlRef webfsUrl) = 0
Translate URL in WebFS to real URL on server.
virtual tresult CCL_API terminate () = 0
Unmount all file servers and exit threads.
virtual tresult CCL_API openHandler (UrlRef webfsUrl, UIDRef iid, void** object) = 0
Get handler for given volume (can be null, must be released otherwise).
virtual IFileDescriptor*CCL_API openFileItem (UrlRef webfsUrl) = 0
Open file descriptor for given location (can be null, must be released otherwise).
virtual tresult CCL_API requestDirectory ( IObserver* observer, UrlRef webfsUrl, tbool async = true ) = 0
Get directory listing.
Main thread must request in background with async = true.
virtual tresult CCL_API discardDirectory (UrlRef webfsUrl, tbool async = true) = 0
Discard cached directory listing at given location.
virtual tresult CCL_API scheduleTask ( IObserver* observer, UrlRef webfsUrl, IFileTask* task ) = 0
Schedule file task to be performed in background.
Task is shared.
virtual tresult CCL_API cancelOperation (IObserver* observer) = 0
Cancel asynchronous operation.
virtual IRemoteSession*CCL_API openSession (UrlRef webfsUrl) = 0
Open independent remote session to access given WebFS volume.
This call might block!
virtual ISearcher*CCL_API createSearcher (ISearchDescription& description) = 0
Create searcher for WebFS volume.
virtual tresult CCL_API createDownload ( ITransfer*& transfer, UrlRef webfsUrl, UrlRef localPath ) = 0
Create transfer object for downloading given WebFS file.
virtual tresult CCL_API createUpload ( ITransfer*& transfer, UrlRef webfsUrl, UrlRef localPath ) = 0
Create transfer object for uploading file to given WebFS folder.
virtual ITriggerAction*CCL_API createDirectoryChangedAction (UrlRef webfsUrl) = 0
Create trigger action for kDirectoryChanged signal.