Ejemplo n.º 1
0
        /// <summary>
        ///     Calculates the hash for the given file (if not given) and queues it up
        ///     to be batch-processed later (<see cref="ProcessAddFilesAsync"/>).
        /// </summary>
        public async Task <AddFileResult> AddFileAsync(IDropItem dropItem)
        {
            Contract.Requires(dropItem != null);

            m_logger.Verbose("Queued file '{0}'", dropItem);

            Interlocked.Increment(ref Stats.NumAddFileRequests);

            var addFileItem = new AddFileItem(dropItem);
            await m_batchBlock.SendAsync(addFileItem);

            return(await addFileItem.TaskSource.Task);
        }
Ejemplo n.º 2
0
        /// <summary>
        ///     Calculates the hash for the given file (if not given) and queues it up
        ///     to be batch-processed later (<see cref="ProcessAddFilesAsync"/>).
        /// </summary>
        public async Task <AddFileResult> AddFileAsync(IDropItem dropItem)
        {
            Contract.Requires(dropItem != null);

            m_logger.Verbose("Queued file '{0}'", dropItem);

            Interlocked.Increment(ref Stats.NumAddFileRequests);

            var addFileItem = new AddFileItem(dropItem);
            await m_batchBlock.SendAsync(addFileItem);

            var manifestResult = await addFileItem.BuildManifestTaskSource.Task;
            var dropResult     = await addFileItem.DropResultTaskSource.Task;

            return(manifestResult == RegisterFileForBuildManifestResult.Failed
                ? AddFileResult.RegisterFileForBuildManifestFailure
                : dropResult);
        }