source: trunk/CrypPlugins/KeySearcher/P2P/Tree/Leaf.cs @ 1674

Last change on this file since 1674 was 1674, checked in by Paul Lelgemann, 11 years ago

o Refactored distributed KeySearcher: updated directory structure and variable names

File size: 1.8 KB
Line 
1using System;
2using System.Collections.Generic;
3using System.Numerics;
4using KeySearcher.Helper;
5using KeySearcher.P2P.Exceptions;
6using KeySearcher.P2P.Storage;
7
8namespace KeySearcher.P2P.Tree
9{
10    class Leaf : NodeBase
11    {
12        internal DateTime LastReservationDate;
13
14        public Leaf(StorageHelper storageHelper, KeyQualityHelper keyQualityHelper, Node parentNode, BigInteger id, string distributedJobIdentifier)
15            : base(storageHelper, keyQualityHelper, parentNode, id, id, distributedJobIdentifier)
16        {
17        }
18
19        public void HandleResults(LinkedList<KeySearcher.ValueKey> result)
20        {
21            Result = result;
22            UpdateDht();
23        }
24
25        public BigInteger PatternId()
26        {
27            return From;
28        }
29
30        public override Leaf CalculatableLeaf(bool useReservedNodes)
31        {
32            if (IsCalculated())
33            {
34                throw new AlreadyCalculatedException();
35            }
36
37            return this;
38        }
39
40        public override bool IsCalculated()
41        {
42            return Result.Count > 0;
43        }
44
45        public override void Reset()
46        {
47        }
48
49        public bool ReserveLeaf()
50        {
51            LastReservationDate = DateTime.UtcNow;
52            return StorageHelper.UpdateInDht(this).IsSuccessful();
53        }
54
55        public override bool IsReserverd()
56        {
57            var dateFiveMinutesBefore = DateTime.UtcNow.Subtract(new TimeSpan(0, 5, 0));
58            var isReserverd = dateFiveMinutesBefore < LastReservationDate;
59            return isReserverd;
60        }
61
62        public override string ToString()
63        {
64            return base.ToString() + ", last reservation date " + LastReservationDate;
65        }
66    }
67}
Note: See TracBrowser for help on using the repository browser.