• Avalanche.Core
Search Results for

    Show / Hide Table of Contents
    • Avalanche.Accessor
      • Introduction
      • IAccessor
        • IAccessor
        • IListAccessor
        • IMapAccessor
        • IRecordAccessor
        • IContentAccessor
        • IOneOfAccessor
        • IAnyAccessor
      • .Net
        • Introduction
        • IList<T>
        • IDictionary<K,V>
        • FieldInfo
        • OneOfAttribute
        • StructLayoutAttribute
        • Class
      • Protobuf
        • Introduction
      • Articles
        • Dependency Injection
        • AccessorMessages
    • Avalanche.Binding
      • Introduction
    • Avalanche.Core
      • License
    • Avalanche.DataType
      • Introduction
      • DataType
        • IDataType
        • IListType
        • IMapType
        • IRecordType
        • IFieldType
        • IOneOfType
        • IAnyType
        • IStringType
        • IValueType
        • IIntegerType
        • IEnumerationType
        • IRealType
      • .Net
        • Introduction
        • IList<T>
        • IDictionary<K,V>
        • FieldInfo
        • Enum
        • OneOfAttribute
        • StructLayoutAttribute
        • Class
      • Protobuf
        • Introduction
      • Articles
        • DataTypeRequest
        • PrintTree
        • DataTypeMessages
    • Avalanche.Emit
      • Introduction
      • TypeBuilder
      • ConstructorBuilder
      • MethodBuilder
      • PropertyBuilder
      • FieldBuilder
      • Emit
      • Utilities
    • Avalanche.FileSystem
      • Introduction
      • Abstractions
        • IFileSystem
          • IFileSystemBrowse
          • IFileSystemCreateDirectory
          • IFileSystemDelete
          • IFileSystemFileAttribute
          • IFileSystemMount
          • IFileSystemMove
          • IFileSystemObserve
          • IFileSystemOpen
        • IEvent
        • IEntry
        • IOption
        • IToken
      • FileSystem
      • VirtualFileSystem
      • MemoryFileSystem
      • EmbeddedFileSystem
      • HttpFileSystem
      • Decoration
      • IFileProvider
      • Events
      • Utilities
        • Dispose
        • File Scanner
        • Visit Tree
        • File Operation
    • Avalanche.Identity
      • Introduction
      • Identity
      • IdentityParts
      • IdentityInterner
      • IdentityComparer
      • Print Tree
      • IdentityAccessors
        • Introduction
        • TypeName
    • Avalanche.Localization
      • Introduction
      • Localization
      • LocalizationFile
      • LocalizationFiles
      • LocalizationFileSystem
      • LocalizationFileFormat
      • LocalizationLine
      • LocalizationLines
      • TemplateFormat
      • CultureProvider
      • FallbackCultureProvider
      • ResourceManager
      • LocalizationError
      • Microsoft.Extensions
        • Introduction
        • DependencyInjection
        • FileProvider
        • Logging
        • ITextLocalizer
        • IFileLocalizer
        • Localization
      • Asp.Net
        • Introduction
        • Supplying localization
        • Inject to pages
        • Culture Assigned
        • Minimalistic Api
        • Diagnostics
      • Pluralization
        • Introduction
        • Multiple plural parameters
        • Custom PluralRules
        • Invariant Culture
        • Unit Prefix
        • IPluralRule
        • IPluralNumber
        • IPluralRules
        • CLDRs
        • Unicode.CLDR40
        • Unicode.CLDR41
        • Unicode.CLDR42
      • Articles
        • Alphabet localization
        • Benchmarks
        • Caching
        • Class Library
        • Demo
        • Diagnostics
        • Embedded resources
        • Emplacement
        • File localization
        • Text localization
        • Printing templates
    • Avalanche.Message
      • Introduction
      • IMessage
      • IMessageProvider
      • IMessageDescription
      • IMessageDescriptions
      • MessageLevel
      • Message printing
      • Messages and Exceptions
      • Microsoft.Extensions
        • DependencyInjection
      • Articles
        • Aggregate Messages
        • Localization
        • Logging
        • Validation
    • Avalanche.Service
      • Introduction
      • Service
        • Introduction
        • IService
        • IServiceDisposable
        • IServiceDecoration
        • IServiceCast
        • IServiceObservable
        • IServiceContainer
        • Construction
        • Query
        • CancellationToken
        • CachePolicy
        • Scope
      • Handler
        • Introduction
        • IHandler
        • IHandlerCast
        • IHandlerDecoration
        • IHandlerWithOrder
        • CancellationToken
        • Cyclicity
        • Delegates
        • Invokable
        • ExportAttribute
        • OrderAttribute
        • PrintTree
        • Recursion
      • Query
        • Introduction
        • IQuery
        • IQueryCast
        • IQueryDecoration
      • Entry
        • Introduction
        • IEntry
        • IEntryCast
        • IEntryDecoration
        • IEntryObservable
        • IEntryVisitable
        • EntryState
      • Request
        • Introduction
        • IRequest
        • IRequestFor
        • IRequestToBeCached
        • IRequestToBeDisposed
        • RequestAttribute
        • ContextParameterAttribute
        • Print Tree
      • Dependency Injection
        • Introduction
        • Asp.Net
        • ServiceRequest<T>
        • Decorating a service
        • Handler
        • CachePolicy
        • CancellationToken
        • QueryLogger
      • Examples
        • NodeCount
        • Expression
        • Mapper
      • Articles
        • Benchmarks
        • Error Handling
        • ServiceMessages
    • Avalanche.StatusCode
      • Introduction
      • HResult
        • Introduction
        • HResult.Facilities
        • BasicMessages
        • RpcMessages
        • DispatchMessages
        • ItfMessages
        • Win32Messages
        • ClrMessages
      • System
        • Introduction
        • AccessControlMessages
        • AggregateMessages
        • AppDomainMessages
        • ArgumentMessages
        • ArgumentNullMessages
        • ArgumentOutOfRangeMessages
        • ArithmeticMessages
        • ArrayMessages
        • AssemblyMessages
        • BadImageFormatMessages
        • CodeContractMessages
        • CodePageMessages
        • CollectionsMessages
        • CompilerServiceMessages
        • CryptographyMessages
        • CultureMessages
        • DiagnosticsMessages
        • EventSourceMessages
        • ExecutionEngineMessages
        • FormatMessages
        • HostProtectionMessages
        • IOMessages
        • IndexOutOfRangeMessages
        • InteropServiceMessages
        • InvalidCastMessages
        • InvalidOperationMessages
        • IsolatedStorageMessages
        • LazyMessages
        • MarshalerMessages
        • MemoryMessages
        • MiscellaneousMessages
        • NotImplementedMessages
        • NotSupportedMessages
        • ObjectDisposedMessages
        • OperationCanceledMessages
        • OverflowMessages
        • PlatformMessages
        • PolicyMessages
        • PrincipalMessages
        • ProgramMessages
        • ReferenceMessages
        • ReflectionMessages
        • RegionMessages
        • RemotingMessages
        • ResourcesMessages
        • SecurityMessages
        • SerializationMessages
        • StackMessages
        • TaskMessages
        • TextMessages
        • ThreadingMessages
        • TimeZoneMessages
        • TypeMessages
        • XmlMessages
      • HttpStatusCode
      • OpcUaStatusCode
    • Avalanche.Template
      • Introduction
      • TemplateFormats
      • ITemplatePrintable
      • ITemplateFormatPrintable
      • ITemplateText
      • ITemplateBreakdown
      • ITemplateFormat
      • ITemplateFormats
      • Extract Arguments
      • Emplacement
    • Avalanche.Tokenizer
      • Introduction
      • IToken
      • ITokenizer
      • Tokenizers
    • Avalanche.Utilities
      • Introduction
      • Collections
        • Tuples
        • StructList
        • ArrayList
        • BijectionMap
        • LocakableDictionary
        • LockableList
        • MapList
        • Pipe
        • RingQueue
        • EnumerableExtensions
        • TupleUtilities
        • ArrayUtilities
      • Comparers
        • IGraphComparer
        • IGraphComparable
        • AlphaNumericComparer
        • EnumerableComparer
        • EnumerableGraphComparer
        • ReferenceComparer
        • KeyValuePairComparer
        • DefaultComparerProvider
        • RecordComparer
      • Cloners
        • ICloner
        • IGraphCloner
        • IGraphCloneable
        • ListCloner
        • DictionaryCloner
        • FieldCloner
        • PassthroughCloner
        • RecordCloner
        • ClonerProvider
      • Dispose
        • IDisposeAttachable
        • IDisposeBelatable
      • Provider
        • Introduction
        • ProviderBase
        • Delegate
        • Pipe
        • Cache
        • ResultCapture
        • AsReadOnly
        • AsService
        • IProviderEvent
      • Record
        • IRecordDescription
        • IFieldDescription
        • IConstructorDescription
        • IConstructionDescription
        • IParameterDescription
        • IRecordProviders
        • RecordDelegates
          • RecordCreate
          • RecordClone
          • RecordCopy
          • IRecordDelegates
        • FieldDelegates
          • FieldRead
          • FieldWrite
          • RecreateWith
          • IFieldDelegates
      • String
        • IEscaper
        • UnicodeString
      • Miscellaneous
        • IIdGenerator
        • Permutation
        • IReadOnly
        • IUserDataContainer
        • Void
    • Avalanche.Writer
      • Introduction
      • ConstantWriter
      • Context
      • ConvertWriter
      • DefaultConstructor
      • DelegateWriter
      • PassthroughWriter
      • Referer
      • TypeCast
      • Writer
      • WriterPipe
      • WriterMessages

    IOption

    IOption is root interface filesystem options.

    /// <summary>
    /// Interface for filesystem options. 
    /// 
    /// See sub-interfaces:
    /// <list type="bullet">
    ///     <item><see cref="IAdaptableOption"/></item>
    ///     <item><see cref="ISubPathOption"/></item>
    ///     <item><see cref="IPathInfo"/></item>
    ///     <item><see cref="IAutoMountOption"/></item>
    ///     <item><see cref="IToken"/></item>
    ///     <item><see cref="IOpenOption"/></item>
    ///     <item><see cref="IObserveOption"/></item>
    ///     <item><see cref="IMoveOption"/></item>
    ///     <item><see cref="IBrowseOption"/></item>
    ///     <item><see cref="ICreateDirectoryOption"/></item>
    ///     <item><see cref="IDeleteOption"/></item>
    ///     <item><see cref="IMountOption"/></item>
    /// </list>
    /// 
    /// The options properties must be immutable in the implementing classes.
    /// </summary>
    public interface IOption
    {
    }
    

    IOpenOption is capabilities of IFileSystemOpen interface.

    public interface IOpenOption : IOption
    {
        /// <summary>Can open file</summary>
        bool CanOpen { get; }
        /// <summary>Can open file for reading(</summary>
        bool CanRead { get; }
        /// <summary>Can open file for writing.</summary>
        bool CanWrite { get; }
        /// <summary>Can open and create file.</summary>
        bool CanCreateFile { get; }
    }
    

    IObserveOption is capabilities of IFileSystemObserve interface.

    public interface IObserveOption : IOption
    {
        /// <summary>Has Observe capability.</summary>
        bool CanObserve { get; }
    }
    

    IMoveOption is capabilities of IFileSystemMove interface.

    public interface IMoveOption : IOption
    {
        /// <summary>Can Move files within same volume.</summary>
        bool CanMove { get; }
    }
    

    IBrowseOption is capabilities of IFileSystemBrowse interface.

    public interface IBrowseOption : IOption
    {
        /// <summary>Has Browse capability.</summary>
        bool CanBrowse { get; }
        /// <summary>Has GetEntry capability.</summary>
        bool CanGetEntry { get; }
    }
    

    ICreateDirectoryOption is capabilities of IFileSystemCreateDirectory interface.

    public interface ICreateDirectoryOption : IOption
    {
        /// <summary>Has CreateDirectory capability.</summary>
        bool CanCreateDirectory { get; }
    }
    

    IDeleteOption is capabilities of IFileSystemDelete interface.

    public interface IDeleteOption : IOption
    {
        /// <summary>Has Delete capability.</summary>
        bool CanDelete { get; }
    }
    

    IMountOption is capabilities of IFileSystemMount interface.

    public interface IMountOption : IOption
    {
        /// <summary>Can filesystem mount other filesystems.</summary>
        bool CanMount { get; }
        /// <summary>Is filesystem allowed to unmount a mount.</summary>
        bool CanUnmount { get; }
        /// <summary>Is filesystem allowed to list mountpoints.</summary>
        bool CanListMountPoints { get; }
    }
    

    IFileAttributeOption is capabilities of IFileSystemFileAttribute interface.

    public interface IFileAttributeOption : IOption
    {
        /// <summary>Has SetFileAttribute capability.</summary>
        bool CanSetFileAttribute { get; }
    }
    

    ISubPathOption is interface for subpath option.

    public interface ISubPathOption : IOption
    {
        /// <summary>Sub-path.</summary>
        String? SubPath { get; }
    }
    

    IAutoMountOption is interface for automatic mounting of package files.

    public interface IAutoMountOption : IOption
    {
        /// <summary>Package loaders that can mount package files, such as .zip.</summary>
        IPackageLoader[] AutoMounters { get; }
    }
    

    IPathInfo is interface for filesystem's path info options.

    public interface IPathInfo : IOption
    {
        /// <summary>Case sensitivity</summary>
        FileSystemCaseSensitivity CaseSensitivity { get; }
        /// <summary>Filesystem allows empty string "" directory names. The value of this property excludes the default empty "" root path.</summary>
        bool EmptyDirectoryName { get; }
    }
    

    IAdaptableOption is interface for runtime option classes.

    /// <summary>
    /// Interface for option classes that adapt to option types at runtime.
    /// Also enumerates supported <see cref="IOption"/> option type interfaces.
    /// </summary>
    public interface IAdaptableOption : IOption, IEnumerable<KeyValuePair<Type, IOption>>
    {
        /// <summary>Get option with type interface.</summary>
        /// <param name="optionInterfaceType">Subtype of <see cref="IOption"/></param>
        /// <returns>Option or null</returns>
        IOption? GetOption(Type optionInterfaceType);
    }
    


    FileSystemOption singletons:

    Flag Description
    Option.Join() Takes first instance of each option.
    Option.Union() Take union of options.
    Option.Intersection() Take intersection of options.
    Option.ReadOnly Read-only operations allowed, deny modification and write operations
    Option.NoOptions No options
    Option.Path(caseSensitivity, emptyDirectoryName) Path options
    Option.Observe Observe is allowed.
    Option.NoObserve Observe is not allowed
    Option.Open(canOpen, canRead, canWrite, canCreateFile) Open options
    Option.OpenReadWriteCreate Open, Read, Write, Create
    Option.OpenReadWrite Open, Read, Write
    Option.OpenRead Open, Read
    Option.NoOpen No access
    Option.Mount Mount is allowed.
    Option.NoMount Mount is not allowed
    Option.Move Move and rename is allowed.
    Option.NoMove Move and rename not allowed.
    Option.Delete Delete allowed.
    Option.NoDelete Delete not allowed.
    Option.CreateDirectory CreateDirectory allowed.
    Option.NoCreateDirectory CreateDirectory not allowed.
    Option.Browse Browse allowed.
    Option.NoBrowse Browse not allowed.
    Option.SubPath(subpath) Create option for sub-path. Used with decorator and VirtualFileSystem.
    Option.NoSubPath No mount path.
    In This Article
    Back to top Copyright © Toni Kalajainen