/////////////////////////////////////////////////////////////////////////////// // // Copyright (c) Microsoft Corporation. All rights reserved. // using System; using System.Collections; using Microsoft.SingSharp; using Microsoft.Singularity.Channels; using Microsoft.Singularity.Directory; using Microsoft.Singularity.Security; using Iso9660; namespace Microsoft.Singularity.FileSystem { public enum FSRequestAction {Read, GetAttributes, BeginEnumeration, Bind} public delegate void FSThreadPoolCallback(FSRequestInfo); public class FSRequestInfo { public FSRequestAction action; protected FSRequestInfo( FSRequestAction requestAction) { action = requestAction; } } public class FSFileRequestInfo : FSRequestInfo { public TRef endpointT; public ByteContainer buf; public Iso9660FileStream fileStream; public long bufOffset; public long fileOffset; public long maxLength; public FSFileRequestInfo( FSRequestAction action, TRef newEndpointT, ByteContainer newBuf, Iso9660FileStream newFileStream, long newBufOffset, long newFileOffset, long newMaxLength) : base(action) { endpointT = newEndpointT; buf = newBuf; fileStream = newFileStream; bufOffset = newBufOffset; fileOffset = newFileOffset; maxLength = newMaxLength; } } public class FSDirectoryRequestInfo : FSRequestInfo { public TRef endpointT; public Iso9660DirectoryInfo dir; public string name; public FSDirectoryRequestInfo( FSRequestAction action, TRef newEndpointT, Iso9660DirectoryInfo newDir, string newName) : base(action) { endpointT = newEndpointT; dir = newDir; name = newName; } } public class FSBindRequestInfo : FSRequestInfo { public TRef endpointT; public TRef bindEndpointT; public Iso9660DirectoryInfo startingDir; public string path; public FSBindRequestInfo( FSRequestAction action, TRef newEndpointT, TRef newBindEndpointT, Iso9660DirectoryInfo newStartingDir, string newPath) : base(action) { endpointT = newEndpointT; bindEndpointT = newBindEndpointT; startingDir = newStartingDir; path = newPath; } } }