Beispiel #1
0
 /// <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)));
 }
Beispiel #2
0
 /// <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);
Beispiel #3
0
 /// <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);
Beispiel #4
0
 /// <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)));
 }
Beispiel #5
0
 /// <summary>
 /// Override to get item last access timestamp.
 /// This method may be called by multiple threads
 /// </summary>
 protected internal abstract DateTime?DoGetLastAccessTimestamp(FileSystemSessionItem item);
Beispiel #6
0
 /// <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)));
 }
Beispiel #7
0
 /// <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);
 }
Beispiel #8
0
 /// <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);
Beispiel #9
0
 /// <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)));
 }
Beispiel #10
0
 /// <summary>
 /// Override to delete item.
 /// This method may be called by multiple threads
 /// </summary>
 protected internal abstract void DoDeleteItem(FileSystemSessionItem item);
Beispiel #11
0
 /// <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)));
 }
Beispiel #12
0
 /// <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)));
 }
Beispiel #13
0
 /// <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);
Beispiel #14
0
 /// <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)
 {
 }
Beispiel #15
0
 /// <summary>
 /// Override to get item readonly status.
 /// This method may be called by multiple threads
 /// </summary>
 protected internal abstract bool DoGetReadOnly(FileSystemSessionItem item);
Beispiel #16
0
 /// <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);
Beispiel #17
0
 /// <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);
Beispiel #18
0
 /// <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)));
 }
Beispiel #19
0
 /// <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);
 }
Beispiel #20
0
 /// <summary>
 /// Override to get item modification timestamp.
 /// This method may be called by multiple threads
 /// </summary>
 protected internal abstract DateTime?DoGetModificationTimestamp(FileSystemSessionItem item);
Beispiel #21
0
 /// <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)));
 }
Beispiel #22
0
 /// <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)
 {
 }