using System; using System.Collections.Generic; using System.IO; namespace AppLimit.CloudComputing.SharpBox { /// /// This enum describes all support cloud storage provider /// configuration in sharpbox. This enum will also be used /// to implement a service chooser in the future /// public enum nSupportedCloudConfigurations { /// /// DropBox /// DropBox, /// /// StoreGate /// StoreGate, /// /// BoxNet /// BoxNet, /// /// SmartDrive /// SmartDrive, /// /// WebDav /// WebDav, /// /// CloudMe /// CloudMe, /// /// Strato HiDrive /// HiDrive, /// /// Google Drive /// Google, /// /// Yandex.Disk /// Yandex, /// /// SkyDrive /// SkyDrive } public interface ICloudStoragePublicAPI : ICloudStorageProvider, ICloudStorageAsyncInterface { bool IsOpened { get; } #region Security Token Handling Stream SerializeSecurityToken(ICloudStorageAccessToken token); Stream SerializeSecurityToken(ICloudStorageAccessToken token, Dictionary additionalMetaData); Stream SerializeSecurityTokenEx(ICloudStorageAccessToken token, Type configurationType, Dictionary additionalMetaData); ICloudStorageAccessToken DeserializeSecurityToken(Stream tokenStream); ICloudStorageAccessToken DeserializeSecurityToken(Stream tokenStream, out Dictionary additionalMetaData); #endregion #region Comfort Functions ICloudDirectoryEntry GetFolder(string path); ICloudDirectoryEntry GetFolder(string path, ICloudDirectoryEntry parent); ICloudDirectoryEntry GetFolder(string path, bool throwException); ICloudDirectoryEntry GetFolder(string path, ICloudDirectoryEntry startFolder, bool throwException); ICloudFileSystemEntry GetFile(string path, ICloudDirectoryEntry startFolder); void DownloadFile(ICloudDirectoryEntry parent, string name, string targetPath); void DownloadFile(ICloudDirectoryEntry parent, string name, string targetPath, FileOperationProgressChanged delProgress); void DownloadFile(string filePath, string targetPath); void DownloadFile(string filePath, string targetPath, FileOperationProgressChanged delProgress); void DownloadFile(string name, ICloudDirectoryEntry parent, Stream targetStream); ICloudFileSystemEntry UploadFile(string filePath, ICloudDirectoryEntry targetContainer); ICloudFileSystemEntry UploadFile(string filePath, ICloudDirectoryEntry targetContainer, FileOperationProgressChanged delProgress); ICloudFileSystemEntry UploadFile(string filePath, ICloudDirectoryEntry targetContainer, string targetFileName); ICloudFileSystemEntry UploadFile(string filePath, ICloudDirectoryEntry targetContainer, string targetFileName, FileOperationProgressChanged delProgress); ICloudFileSystemEntry UploadFile(string filePath, string targetDirectory); ICloudFileSystemEntry UploadFile(string filePath, string targetDirectory, FileOperationProgressChanged delProgress); ICloudFileSystemEntry UploadFile(string filePath, string targetDirectory, string targetFileName); ICloudFileSystemEntry UploadFile(string filePath, string targetDirectory, string targetFileName, FileOperationProgressChanged delProgress); ICloudFileSystemEntry UploadFile(Stream uploadDataStream, string targetFileName, ICloudDirectoryEntry targetContainer, FileOperationProgressChanged delProgress); ICloudFileSystemEntry UploadFile(Stream uploadDataStream, string targetFileName, ICloudDirectoryEntry targetContainer); ICloudDirectoryEntry CreateFolder(string path); ICloudDirectoryEntry CreateFolderEx(string path, ICloudDirectoryEntry entry); bool DeleteFileSystemEntry(string filePath); bool MoveFileSystemEntry(string filePath, string newParentPath); bool RenameFileSystemEntry(string filePath, string newName); bool CopyFileSystemEntry(string filePath, string newParentPath); ICloudFileSystemEntry CreateFile(string filePath); #endregion #region Configuration Mapping ICloudStorageConfiguration GetCloudConfiguration(nSupportedCloudConfigurations configtype, params object[] param); #endregion } }