Exemplo n.º 1
0
        public static MailslotHandle Create(
            FileAccess access,
            string fileName,
            ObjectFlags objectFlags,
            NativeHandle rootDirectory,
            int quota,
            int maxMessageSize,
            long readTimeout,
            FileCreateOptions createOptions
            )
        {
            ObjectAttributes oa = new ObjectAttributes(fileName, objectFlags, rootDirectory);
            IoStatusBlock    isb;
            IntPtr           handle;

            try
            {
                Win32.NtCreateMailslotFile(
                    out handle,
                    access,
                    ref oa,
                    out isb,
                    createOptions,
                    quota,
                    maxMessageSize,
                    ref readTimeout
                    ).ThrowIf();
            }
            finally
            {
                oa.Dispose();
            }

            return(new MailslotHandle(handle, true));
        }
Exemplo n.º 2
0
 public static NamedPipeHandle Create(
     FileAccess access,
     string fileName,
     PipeType type,
     FileCreateOptions createOptions,
     int maximumInstances,
     int inboundQuota,
     int outboundQuota,
     long defaultTimeout
     )
 {
     return Create(
         access,
         fileName,
         ObjectFlags.CaseInsensitive,
         null,
         FileShareMode.ReadWrite,
         FileCreationDisposition.OpenIf,
         createOptions,
         type,
         type,
         PipeCompletionMode.Queue,
         maximumInstances,
         inboundQuota,
         outboundQuota,
         defaultTimeout
         );
 }
Exemplo n.º 3
0
        public override FileActionStatus Save(FileDefinition fileDefinition, ContainerDefinition containerDefinition,
            FileCreateOptions fileCreateOptions,
            ContainerCreateOptions containerCreateOptions)
        {
            var status = new FileActionStatus();

            // If we aren't allowing auto creation of directories, fail
            if (!Directory.Exists(containerDefinition.Path) && !_createPathsAutomatically)
            {
                status.Status = Status.NoAction;
                status.Message = Constants.Messages.NoAction +
                                 " Path does not exist, and config to create paths automatically is false.";
                return status;
            }

            // Create directory if it doesn't exist
            Directory.CreateDirectory(containerDefinition.Path);

            var path = GetFullFilePath(fileDefinition, containerDefinition);

            // Overwrite based on provided option
            if (!fileCreateOptions.OverwriteExisting && File.Exists(path))
            {
                status.Status = Status.NoAction;
                status.Message = Constants.Messages.NoAction +
                                 " File already exists; must explicitly set option to overwrite.";
                return status;
            }

            SaveFile(path, fileDefinition.Data).Wait();

            status.Status = Status.Success;
            status.Message = Constants.Messages.Success;
            return status;
        }
Exemplo n.º 4
0
        public static MailslotHandle Create(
            FileAccess access,
            string fileName,
            ObjectFlags objectFlags,
            NativeHandle rootDirectory,
            int quota,
            int maxMessageSize,
            long readTimeout,
            FileCreateOptions createOptions
            )
        {
            ObjectAttributes oa = new ObjectAttributes(fileName, objectFlags, rootDirectory);
            IoStatusBlock isb;
            IntPtr handle;

            try
            {
                Win32.NtCreateMailslotFile(
                    out handle,
                    access,
                    ref oa,
                    out isb,
                    createOptions,
                    quota,
                    maxMessageSize,
                    ref readTimeout
                    ).ThrowIf();
            }
            finally
            {
                oa.Dispose();
            }

            return new MailslotHandle(handle, true);
        }
 public static NamedPipeHandle Create(
     FileAccess access,
     string fileName,
     PipeType type,
     FileCreateOptions createOptions,
     int maximumInstances,
     int inboundQuota,
     int outboundQuota,
     long defaultTimeout
     )
 {
     return(Create(
                access,
                fileName,
                ObjectFlags.CaseInsensitive,
                null,
                FileShareMode.ReadWrite,
                FileCreationDisposition.OpenIf,
                createOptions,
                type,
                type,
                PipeCompletionMode.Queue,
                maximumInstances,
                inboundQuota,
                outboundQuota,
                defaultTimeout
                ));
 }
Exemplo n.º 6
0
        public FileServiceTest(
            StripeMockFixture stripeMockFixture,
            MockHttpClientFixture mockHttpClientFixture)
            : base(stripeMockFixture, mockHttpClientFixture)
        {
            this.service = new FileService(this.StripeClient);

            this.createOptions = new FileCreateOptions
            {
                File         = typeof(FileServiceTest).GetTypeInfo().Assembly.GetManifestResourceStream(FileName),
                FileLinkData = new FileLinkDataOptions
                {
                    Create   = true,
                    Metadata = new Dictionary <string, string>
                    {
                        { "key", "value" },
                    },
                },
                Purpose = FilePurpose.BusinessLogo,
            };

            this.listOptions = new FileListOptions
            {
                Limit = 1,
            };
        }
        public override FileActionStatus Save(FileDefinition fileDefinition, ContainerDefinition containerDefinition,
                                              FileCreateOptions fileCreateOptions,
                                              ContainerCreateOptions containerCreateOptions)
        {
            var status = new FileActionStatus();

            // If we aren't allowing auto creation of directories, fail
            if (!Directory.Exists(containerDefinition.Path) && !_createPathsAutomatically)
            {
                status.Status  = Status.NoAction;
                status.Message = Constants.Messages.NoAction +
                                 " Path does not exist, and config to create paths automatically is false.";
                return(status);
            }

            // Create directory if it doesn't exist
            Directory.CreateDirectory(containerDefinition.Path);

            var path = GetFullFilePath(fileDefinition, containerDefinition);

            // Overwrite based on provided option
            if (!fileCreateOptions.OverwriteExisting && File.Exists(path))
            {
                status.Status  = Status.NoAction;
                status.Message = Constants.Messages.NoAction +
                                 " File already exists; must explicitly set option to overwrite.";
                return(status);
            }

            SaveFile(path, fileDefinition.Data).Wait();

            status.Status  = Status.Success;
            status.Message = Constants.Messages.Success;
            return(status);
        }
Exemplo n.º 8
0
        public static NamedPipeHandle Create(
            FileAccess access,
            string fileName,
            ObjectFlags objectFlags,
            NativeHandle rootDirectory,
            FileShareMode shareMode,
            FileCreationDisposition creationDisposition,
            FileCreateOptions createOptions,
            PipeType type,
            PipeType readMode,
            PipeCompletionMode completionMode,
            int maximumInstances,
            int inboundQuota,
            int outboundQuota,
            long defaultTimeout
            )
        {
            NtStatus         status;
            ObjectAttributes oa = new ObjectAttributes(fileName, objectFlags, rootDirectory);
            IoStatusBlock    isb;
            IntPtr           handle;

            // If a timeout wasn't specified, use a default value.
            if (defaultTimeout == 0)
            {
                defaultTimeout = -50 * Win32.TimeMsTo100Ns; // 50 milliseconds
            }
            try
            {
                if ((status = Win32.NtCreateNamedPipeFile(
                         out handle,
                         access,
                         ref oa,
                         out isb,
                         shareMode,
                         creationDisposition,
                         createOptions,
                         type,
                         readMode,
                         completionMode,
                         maximumInstances,
                         inboundQuota,
                         outboundQuota,
                         ref defaultTimeout
                         )) >= NtStatus.Error)
                {
                    Win32.Throw(status);
                }
            }
            finally
            {
                oa.Dispose();
            }

            return(new NamedPipeHandle(handle, true));
        }
Exemplo n.º 9
0
 public MailslotHandle(
     string fileName,
     ObjectFlags objectFlags,
     NativeHandle rootDirectory,
     FileShareMode shareMode,
     FileCreateOptions openOptions,
     FileAccess access
     )
     : base(fileName, objectFlags, rootDirectory, shareMode, openOptions, access)
 {
 }
Exemplo n.º 10
0
 public MailslotHandle(
     string fileName,
     ObjectFlags objectFlags,
     FileHandle rootDirectory,
     FileShareMode shareMode,
     FileCreateOptions openOptions,
     FileAccess access
     )
     : base(fileName, objectFlags, rootDirectory, shareMode, openOptions, access)
 {
 }
Exemplo n.º 11
0
        public static NamedPipeHandle Create(
            FileAccess access,
            string fileName,
            ObjectFlags objectFlags,
            NativeHandle rootDirectory,
            FileShareMode shareMode,
            FileCreationDisposition creationDisposition,
            FileCreateOptions createOptions,
            PipeType type,
            PipeType readMode,
            PipeCompletionMode completionMode,
            int maximumInstances,
            int inboundQuota,
            int outboundQuota,
            long defaultTimeout
            )
        {
            NtStatus status;
            ObjectAttributes oa = new ObjectAttributes(fileName, objectFlags, rootDirectory);
            IoStatusBlock isb;
            IntPtr handle;

            // If a timeout wasn't specified, use a default value.
            if (defaultTimeout == 0)
                defaultTimeout = -50 * Win32.TimeMsTo100Ns; // 50 milliseconds

            try
            {
                if ((status = Win32.NtCreateNamedPipeFile(
                    out handle,
                    access,
                    ref oa,
                    out isb,
                    shareMode,
                    creationDisposition,
                    createOptions,
                    type,
                    readMode,
                    completionMode,
                    maximumInstances,
                    inboundQuota,
                    outboundQuota,
                    ref defaultTimeout
                    )) >= NtStatus.Error)
                    Win32.Throw(status);
            }
            finally
            {
                oa.Dispose();
            }

            return new NamedPipeHandle(handle, true);
        }
Exemplo n.º 12
0
        public static NamedPipeHandle Create(
            FileAccess access,
            string fileName,
            ObjectFlags objectFlags,
            FileHandle rootDirectory,
            FileShareMode shareMode,
            FileCreationDisposition creationDisposition,
            FileCreateOptions createOptions,
            PipeType type,
            PipeType readMode,
            PipeCompletionMode completionMode,
            int maximumInstances,
            int inboundQuota,
            int outboundQuota,
            long defaultTimeout
            )
        {
            NtStatus         status;
            ObjectAttributes oa = new ObjectAttributes(fileName, objectFlags, rootDirectory);
            IoStatusBlock    isb;
            IntPtr           handle;

            try
            {
                if ((status = Win32.NtCreateNamedPipeFile(
                         out handle,
                         access,
                         ref oa,
                         out isb,
                         shareMode,
                         creationDisposition,
                         createOptions,
                         type,
                         readMode,
                         completionMode,
                         maximumInstances,
                         inboundQuota,
                         outboundQuota,
                         ref defaultTimeout
                         )) >= NtStatus.Error)
                {
                    Win32.ThrowLastError(status);
                }
            }
            finally
            {
                oa.Dispose();
            }

            return(new NamedPipeHandle(handle, true));
        }
Exemplo n.º 13
0
        public FileServiceTest()
        {
            this.service = new FileService();

            this.createOptions = new FileCreateOptions()
            {
                File    = typeof(FileServiceTest).GetTypeInfo().Assembly.GetManifestResourceStream(FileName),
                Purpose = FilePurpose.BusinessLogo,
            };

            this.listOptions = new FileListOptions()
            {
                Limit = 1,
            };
        }
Exemplo n.º 14
0
        public FileServiceTest(MockHttpClientFixture mockHttpClientFixture)
            : base(mockHttpClientFixture)
        {
            this.service = new FileService();

            this.createOptions = new FileCreateOptions
            {
                File    = typeof(FileServiceTest).GetTypeInfo().Assembly.GetManifestResourceStream(FileName),
                Purpose = FilePurpose.BusinessLogo,
            };

            this.listOptions = new FileListOptions
            {
                Limit = 1,
            };
        }
Exemplo n.º 15
0
 public MailslotHandle(string fileName, FileShareMode shareMode, FileCreateOptions openOptions, FileAccess access)
     : base(fileName, shareMode, openOptions, access)
 {
 }
Exemplo n.º 16
0
 /// <summary>
 ///     Save a file object into the NStore repository. If the target container doesn't exist, create it with the provided
 ///     options.
 /// </summary>
 /// <param name="fileDefinition"></param>
 /// <param name="containerDefinition"></param>
 /// <param name="fileCreateOptions"></param>
 /// <param name="containerCreateOptions"></param>
 /// <returns></returns>
 public abstract FileActionStatus Save(FileDefinition fileDefinition, ContainerDefinition containerDefinition,
     FileCreateOptions fileCreateOptions,
     ContainerCreateOptions containerCreateOptions);
Exemplo n.º 17
0
 public MailslotHandle(string fileName, FileShareMode shareMode, FileCreateOptions openOptions, FileAccess access)
     : base(fileName, shareMode, openOptions, access)
 { }
Exemplo n.º 18
0
 /// <summary>
 ///     Save a file object into the NStore repository with default options. If the target container doesn't exist, create
 ///     it with default options.
 /// </summary>
 /// <param name="fileDefinition"></param>
 /// <param name="containerDefinition"></param>
 /// <param name="fileCreateOptions"></param>
 /// <returns></returns>
 public FileActionStatus Save(FileDefinition fileDefinition, ContainerDefinition containerDefinition,
     FileCreateOptions fileCreateOptions)
 {
     return Save(fileDefinition, containerDefinition, fileCreateOptions,
         Defaults<ContainerCreateOptions>.GetDefault());
 }
Exemplo n.º 19
0
 /// <summary>
 ///     Save a file object into the NStore repository. If the target container doesn't exist, create it with the provided
 ///     options.
 /// </summary>
 /// <param name="fileDefinition"></param>
 /// <param name="containerDefinition"></param>
 /// <param name="fileCreateOptions"></param>
 /// <param name="containerCreateOptions"></param>
 /// <returns></returns>
 public abstract FileActionStatus Save(FileDefinition fileDefinition, ContainerDefinition containerDefinition,
                                       FileCreateOptions fileCreateOptions,
                                       ContainerCreateOptions containerCreateOptions);
Exemplo n.º 20
0
 /// <summary>
 ///     Save a file object into the NStore repository asynchronously. If the target container doesn't exist, create it with
 ///     the provided options.
 /// </summary>
 /// <param name="fileDefinition"></param>
 /// <param name="containerDefinition"></param>
 /// <param name="fileCreateOptions"></param>
 /// <param name="containerCreateOptions"></param>
 /// <returns></returns>
 public abstract Task <FileActionStatus> SaveAsync(FileDefinition fileDefinition,
                                                   ContainerDefinition containerDefinition,
                                                   FileCreateOptions fileCreateOptions,
                                                   ContainerCreateOptions containerCreateOptions);
Exemplo n.º 21
0
 /// <summary>
 ///     Save a file object into the NStore repository with default options. If the target container doesn't exist, create
 ///     it with default options.
 /// </summary>
 /// <param name="fileDefinition"></param>
 /// <param name="containerDefinition"></param>
 /// <param name="fileCreateOptions"></param>
 /// <returns></returns>
 public FileActionStatus Save(FileDefinition fileDefinition, ContainerDefinition containerDefinition,
                              FileCreateOptions fileCreateOptions)
 {
     return(Save(fileDefinition, containerDefinition, fileCreateOptions,
                 Defaults <ContainerCreateOptions> .GetDefault()));
 }
Exemplo n.º 22
0
 /// <summary>
 ///     Save a file object into the NStore repository asynchronously. If the target container doesn't exist, create it with
 ///     the provided options.
 /// </summary>
 /// <param name="fileDefinition"></param>
 /// <param name="containerDefinition"></param>
 /// <param name="fileCreateOptions"></param>
 /// <param name="containerCreateOptions"></param>
 /// <returns></returns>
 public abstract Task<FileActionStatus> SaveAsync(FileDefinition fileDefinition,
     ContainerDefinition containerDefinition,
     FileCreateOptions fileCreateOptions,
     ContainerCreateOptions containerCreateOptions);