AddItem() публичный Метод

public AddItem ( string description ) : System.Item
description string
Результат System.Item
Пример #1
0
            public CountedItem Increment()
            {
                Count += 1;
                if (Count == 1)
                {
                    Item = Parent.AddItem(Description);
                }

                return(this);
            }
Пример #2
0
        public IEnumerator <object> Move(string targetFilename, ActivityIndicator activities)
        {
            // Wait for any pending operations running against the tangles
            var cb = new BarrierCollection(true, Tangles);

            using (activities.AddItem("Waiting for database to be idle"))
                yield return(cb);

            foreach (var tangle in Tangles)
            {
                tangle.Dispose();
            }

            Tangles.Clear();

            var f = Future.RunInThread(() => {
                File.Delete(_TokenFilePath);

                if (File.Exists(targetFilename))
                {
                    File.Delete(targetFilename);
                }

                Storage.Folder = targetFilename;

                MakeTokenFile(targetFilename);

                _Filename = targetFilename;
            });

            using (activities.AddItem("Moving database"))
                yield return(f);

            var failed = f.Failed;

            yield return(CreateTangles());

            if (failed)
                throw f.Error; }
Пример #3
0
        public IEnumerator<object> Move(string targetFilename, ActivityIndicator activities)
        {
            // Wait for any pending operations running against the tangles
            var cb = new BarrierCollection(true, Tangles);
            using (activities.AddItem("Waiting for database to be idle"))
                yield return cb;

            foreach (var tangle in Tangles)
                tangle.Dispose();

            Tangles.Clear();

            var f = Future.RunInThread(() => {
                File.Delete(_TokenFilePath);

                if (File.Exists(targetFilename))
                    File.Delete(targetFilename);

                Storage.Folder = targetFilename;

                MakeTokenFile(targetFilename);

                _Filename = targetFilename;
            });

            using (activities.AddItem("Moving database"))
                yield return f;

            var failed = f.Failed;

            yield return CreateTangles();

            if (failed)
                throw f.Error;
        }
Пример #4
0
        protected IEnumerator <object> SnapshotIOTask()
        {
            ActivityIndicator.Item progress = null;
            IFuture previousSnapshot        = null;

            while (true)
            {
                if ((SnapshotLoadQueue.Count <= 0) && (previousSnapshot != null))
                {
                    yield return(previousSnapshot);
                }

                if (SnapshotLoadQueue.Count <= 0)
                {
                    SnapshotLoadState.Count = 0;
                    if (progress != null)
                    {
                        progress.Dispose();
                        progress = null;
                    }
                }

                var f = SnapshotLoadQueue.Dequeue();
                using (f)
                    yield return(f);

                var filename = f.Result;

                if (progress == null)
                {
                    progress = Activities.AddItem("Loading snapshots");
                }

                using (var fda = new FileDataAdapter(
                           filename, FileMode.Open,
                           FileAccess.Read, FileShare.Read, 1024 * 128
                           )) {
                    var maximum = SnapshotLoadState.Count + Math.Max(0, SnapshotLoadQueue.Count) + 1;
                    progress.Maximum  = maximum;
                    progress.Progress = Math.Min(maximum, SnapshotLoadState.Count);

                    var fBytes = fda.ReadToEnd();
                    yield return(fBytes);

                    var fText = Future.RunInThread(
                        () => Encoding.ASCII.GetString(fBytes.Result)
                        );
                    yield return(fText);

                    var text = fText.Result;
                    fBytes = null;
                    fText  = null;

                    // Wait for the last snapshot load we triggered to finish
                    if (previousSnapshot != null)
                    {
                        yield return(previousSnapshot);
                    }

                    previousSnapshot = Scheduler.Start(
                        FinishLoadingSnapshot(filename, text), TaskExecutionPolicy.RunAsBackgroundTask
                        );

                    text = null;
                }
            }
        }