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); * }*/ }
IEnumerator <ENTRY> IEnumerable <ENTRY> .GetEnumerator() { GenericBlockChain <T, ENTRY> root = Root; do { yield return(root.Entry); root = root.Next; } while (root != null); }
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)); }
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); }
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 { } }
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); } } }
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()); }
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); }
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); }
public GenericBlockEntry(GenericBlockChain <T> root) : this(root.Entry) { }
public SHA512BlockEntry(GenericBlockChain <T> root) : base(root) { }
public override GenericBlockChain <T, ENTRY> removeNode(GenericBlockChain <T, ENTRY> node, ref bool removed) { removed = false; return(this); }