Esempio n. 1
0
 public override void Travers(TraversOrder order, GenericBlockChain <T, ENTRY> root)
 {
     /*if (Root != null && order == TraversOrder.ListOrder) {
      *  Console.Write (Root.Entry + " ");
      *  if(root.Next != null) Travers (order, Root.Next);
      * } else if (root != null && order == TraversOrder.ReservListOrder) {
      *  Console.Write (Root.Entry + " ");
      *  if(root.Prev != null) Travers (order, root.Prev);
      * }*/
 }
Esempio n. 2
0
        IEnumerator <ENTRY> IEnumerable <ENTRY> .GetEnumerator()
        {
            GenericBlockChain <T, ENTRY> root = Root;

            do
            {
                yield return(root.Entry);

                root = root.Next;
            } while (root != null);
        }
Esempio n. 3
0
        public virtual bool IsGreaterThan(GenericBlockChain <T, ENTRY> other)
        {
            if (m_nodes[1] == null)
            {
                return(false);
            }

            ENTRY _a = m_nodes[1].Entry;
            ENTRY _b = other.Entry;

            return(_a.IsGreaterThan(_b));
        }
Esempio n. 4
0
        public override List <ENTRY> ToList()
        {
            GenericBlockChain <T, ENTRY> root = Root;
            List <ENTRY> list = new List <ENTRY> ();

            do
            {
                list.Add(root.Entry);
                root = root.Next;
            } while (root != null);

            return(list);
        }
Esempio n. 5
0
        public ENTRY this [int index] {
            get {
                GenericBlockChain <T, ENTRY> root = Root;

                do
                {
                    if ((int)root.Index == index)
                    {
                        return(root.Entry);
                    }
                    root = root.Next;
                } while (root != null);
                return(null);
            }
            set { }
        }
Esempio n. 6
0
 public override void Travers(TraversOrder order, funcTravers travers, GenericBlockChain <T, ENTRY> chain)
 {
     if (order == TraversOrder.ListOrder)
     {
         for (GenericBlockChain <T, ENTRY> root = chain; root != null; root = root.Next)
         {
             travers(root);
         }
     }
     else if (order == TraversOrder.ReservListOrder)
     {
         for (GenericBlockChain <T, ENTRY> root = chain; root != null; root = root.Prev)
         {
             travers(root);
         }
     }
 }
Esempio n. 7
0
        public override String ToString()
        {
            System.Text.StringBuilder st = new System.Text.StringBuilder();

            GenericBlockChain <T, ENTRY> chain = this;

            do
            {
                st.Append(chain.Entry.ToString());
                if (chain.Next != null)
                {
                    st.Append(",\n");
                }
                chain = chain.Next;
            } while (chain != null);

            return(st.ToString());
        }
Esempio n. 8
0
        public override GenericBlockChain <T, ENTRY> setNode(GenericBlockChain <T, ENTRY> node)
        {
            if (Next == null)
            {
                node.Prev           = this;
                node.Next           = null;
                node.Entry.PrevHash = this.Entry.Hash;
                node.Entry.Index    = this.Entry.Index + 1;

                node.Name = node.Entry.Hash;

                m_nodes[1] = node;
                OnSetNode(node);
            }
            else
            {
                return(m_nodes[1].setNode(node));
            }
            return(this);
        }
Esempio n. 9
0
        public virtual bool Transfer(string Hash, Guid Owner, Guid NewUser)
        {
            try {
                GenericBlockChain <T, ENTRY> node = getNode(Hash);
                ENTRY entry = node.Entry;
                var   lst   = entry.Owners.Last as GenericBlockOwnerList;
                var   data  = lst.Entry;

                TimeSpan ts = new TimeSpan(DateTime.Now.ToUniversalTime().Ticks - (new DateTime(1970, 1, 1)).Ticks);        // das Delta ermitteln

                if (data.Owner != Owner)
                {
                    return(false);
                }
                lst.setNode(new GenericBlockOwnerListEntry(Hash, NewUser, ts.TotalSeconds, data.Hash));
            } catch (Exception) {
                return(false);
            }

            return(true);
        }
Esempio n. 10
0
 public GenericBlockEntry(GenericBlockChain <T> root) : this(root.Entry)
 {
 }
Esempio n. 11
0
 public SHA512BlockEntry(GenericBlockChain <T> root) : base(root)
 {
 }
Esempio n. 12
0
 public override GenericBlockChain <T, ENTRY> removeNode(GenericBlockChain <T, ENTRY> node, ref bool removed)
 {
     removed = false;
     return(this);
 }