/// <summary> /// Async version of <see cref="DoSetLastAccessTimestamp(FileSystemSessionItem, DateTime)"/>. /// This base/default implementation just synchronously calls <see cref="DoSetLastAccessTimestamp(FileSystemSessionItem, DateTime)"/> and /// returns already completed Task with result returned by <see cref="DoSetLastAccessTimestamp(FileSystemSessionItem, DateTime)"/> /// </summary> protected internal virtual Task DoSetLastAccessTimestampAsync(FileSystemSessionItem item, DateTime timestamp) { return(TaskUtils.AsCompletedTask(() => DoSetLastAccessTimestamp(item, timestamp))); }
/// <summary> /// Override to set item modification timestamp. /// This method may be called by multiple threads /// </summary> protected internal abstract void DoSetModificationTimestamp(FileSystemSessionItem item, DateTime timestamp);
/// <summary> /// Override to set item last access timestamp. /// This method may be called by multiple threads /// </summary> protected internal abstract void DoSetLastAccessTimestamp(FileSystemSessionItem item, DateTime timestamp);
/// <summary> /// Async version of <see cref="DoCheckCanChange(FileSystemSessionItem)"/>. /// This base/default implementation just synchronously calls <see cref="DoCheckCanChange(FileSystemSessionItem)"/> and /// returns already completed Task with result returned by <see cref="DoCheckCanChange(FileSystemSessionItem)"/> /// </summary> protected internal virtual Task DoCheckCanChangeAsync(FileSystemSessionItem item) { return(TaskUtils.AsCompletedTask(() => DoCheckCanChange(item))); }
/// <summary> /// Override to get item last access timestamp. /// This method may be called by multiple threads /// </summary> protected internal abstract DateTime?DoGetLastAccessTimestamp(FileSystemSessionItem item);
/// <summary> /// Async version of <see cref="DoSetReadOnly(FileSystemSessionItem, bool)"/>. /// This base/default implementation just synchronously calls <see cref="DoSetReadOnly(FileSystemSessionItem, bool)"/> and /// returns already completed Task with result returned by <see cref="DoSetReadOnly(FileSystemSessionItem, bool)"/> /// </summary> protected internal virtual Task DoSetReadOnlyAsync(FileSystemSessionItem item, bool readOnly) { return(TaskUtils.AsCompletedTask(() => DoSetReadOnly(item, readOnly))); }
/// <summary> /// Override in particular file systems to get user who was the last user accessing the item. /// This method may be called by multiple threads /// </summary> protected internal virtual User DoGetLastAccessUser(FileSystemSessionItem item) { return(User.Fake); }
/// <summary> /// Override to get the byte size of item (directory or file). /// This method may be called by multiple threads /// </summary> protected internal abstract ulong DoGetItemSize(FileSystemSessionItem item);
/// <summary> /// Async version of <see cref="DoGetItemSize(FileSystemSessionItem)"/>. /// This base/default implementation just synchronously calls <see cref="DoGetItemSize(FileSystemSessionItem)"/> and /// returns already completed Task with result returned by <see cref="DoGetItemSize(FileSystemSessionItem)"/> /// </summary> protected internal virtual Task <ulong> DoGetItemSizeAsync(FileSystemSessionItem item) { return(TaskUtils.AsCompletedTask(() => DoGetItemSize(item))); }
/// <summary> /// Override to delete item. /// This method may be called by multiple threads /// </summary> protected internal abstract void DoDeleteItem(FileSystemSessionItem item);
/// <summary> /// Async version of <see cref="DoDeleteItem(FileSystemSessionItem)"/>. /// This base/default implementation just synchronously calls <see cref="DoDeleteItem(FileSystemSessionItem)"/> and /// returns already completed Task with result returned by <see cref="DoDeleteItem(FileSystemSessionItem)"/> /// </summary> protected internal virtual Task DoDeleteItemAsync(FileSystemSessionItem item) { return(TaskUtils.AsCompletedTask(() => DoDeleteItem(item))); }
/// <summary> /// Async version of <see cref="DoRenameItem(FileSystemSessionItem, string)"/>. /// This base/default implementation just synchronously calls <see cref="DoRenameItem(FileSystemSessionItem, string)"/> and /// returns already completed Task with result returned by <see cref="DoRenameItem(FileSystemSessionItem, string)"/> /// </summary> protected internal virtual Task <bool> DoRenameItemAsync(FileSystemSessionItem item, string newName) { return(TaskUtils.AsCompletedTask(() => DoRenameItem(item, newName))); }
/// <summary> /// Override to rename item return true on success. /// This method may be called by multiple threads /// </summary> protected internal abstract bool DoRenameItem(FileSystemSessionItem item, string newName);
/// <summary> /// Override to refresh item state, i.e. re-fetch remote information. /// This method may be called by multiple threads /// </summary> protected internal virtual void DoRefresh(FileSystemSessionItem item) { }
/// <summary> /// Override to get item readonly status. /// This method may be called by multiple threads /// </summary> protected internal abstract bool DoGetReadOnly(FileSystemSessionItem item);
/// <summary> /// Override to get metadata stream for item (directory or file). /// This method may be called by multiple threads /// </summary> protected internal abstract FileSystemStream DoGetMetadataStream(FileSystemSessionItem item, Action <FileSystemStream> disposeAction);
/// <summary> /// Override to set item readonly status. /// This method may be called by multiple threads /// </summary> protected internal abstract void DoSetReadOnly(FileSystemSessionItem item, bool readOnly);
/// <summary> /// Async version of <see cref="DoGetMetadataStream(FileSystemSessionItem, Action{FileSystemStream})"/>. /// This base/default implementation just synchronously calls <see cref="DoGetMetadataStream(FileSystemSessionItem, Action{FileSystemStream})"/> and /// returns already completed Task with result returned by <see cref="DoGetMetadataStream(FileSystemSessionItem, Action{FileSystemStream})"/> /// </summary> protected internal virtual Task <FileSystemStream> DoGetMetadataStreamAsync(FileSystemSessionItem item, Action <FileSystemStream> disposeAction) { return(TaskUtils.AsCompletedTask(() => DoGetMetadataStream(item, disposeAction))); }
/// <summary> /// Override in particular file systems to get user who was the last user modifying the item. /// This method may be called by multiple threads /// </summary> protected internal virtual User DoGetModificationUser(FileSystemSessionItem item) { return(User.Fake); }
/// <summary> /// Override to get item modification timestamp. /// This method may be called by multiple threads /// </summary> protected internal abstract DateTime?DoGetModificationTimestamp(FileSystemSessionItem item);
/// <summary> /// Async version of <see cref="DoGetLastAccessUser(FileSystemSessionItem)"/>. /// This base/default implementation just synchronously calls <see cref="DoGetLastAccessUser(FileSystemSessionItem)"/> and /// returns already completed Task with result returned by <see cref="DoGetLastAccessUser(FileSystemSessionItem)"/> /// </summary> protected internal virtual Task <User> DoGetLastAccessUserAsync(FileSystemSessionItem item) { return(TaskUtils.AsCompletedTask(() => DoGetLastAccessUser(item))); }
/// <summary> /// Override in particular file systems to see if item can change, i.e. /// for file systems that support versioning throw exception if item is in session /// which "looks" at a sealed/closed version and can not change. This method may be called by multiple threads /// </summary> protected internal virtual void DoCheckCanChange(FileSystemSessionItem item) { }