Esempio n. 1
0
File: Tree.cs Progetto: gmich/Gem
		/// <summary>
		/// Initializes a new instance of the <see cref="Sdb.BTree.Tree`2"/> class.
		/// </summary>
		/// <param name="logger">Logger.</param>
		/// <param name="nodeManager">Node manager.</param>
		public Tree (ITreeNodeManager<K, V> nodeManager, bool allowDuplicateKeys = false)
		{
			if (nodeManager == null)
				throw new ArgumentNullException ("nodeManager");
			this.nodeManager = nodeManager;
			this.allowDuplicateKeys = allowDuplicateKeys;
		}
Esempio n. 2
0
        public TreeNode(ITreeNodeManager <K, V> nodeManager, uint id, uint parentId,
                        IEnumerable <Tuple <K, V> > entries = null,
                        IEnumerable <uint> childrenIds      = null)
        {
            if (nodeManager == null)
            {
                throw new ArgumentNullException("nodeManager");
            }

            this.nodeManager = nodeManager;
            this.childrenIds = new List <uint>();
            this.entries     = new List <Tuple <K, V> >(nodeManager.MaxEntriesPerNode);

            this.id       = id;
            this.parentId = parentId;

            // Make shallow copies of lists.
            if (entries != null)
            {
                this.entries.AddRange(entries);
            }
            if (childrenIds != null)
            {
                this.childrenIds.AddRange(childrenIds);
            }
        }
Esempio n. 3
0
        //
        // Constructors
        //

        /// <summary>
        /// Initializes a new instance of the <see cref="Sdb.BTree.Node`2"/> class.
        /// </summary>
        /// <param name="branchingFactor">Branching factor.</param>
        /// <param name="nodeManager">Node manager.</param>
        public TreeNode(ITreeNodeManager <K, V> nodeManager
                        , uint id
                        , uint parentId
                        , IEnumerable <Tuple <K, V> > entries = null
                        , IEnumerable <uint> childrenIds      = null)
        {
            if (nodeManager == null)
            {
                throw new ArgumentNullException(nameof(nodeManager));
            }

            this.id       = id;
            this.parentId = parentId;

            // Setting up readonly attributes
            this.nodeManager = nodeManager;
            this.childrenIds = new List <uint>();
            this.entries     = new List <Tuple <K, V> >(this.nodeManager.MinEntriesPerNode * 2);

            // Loading up data
            if (entries != null)
            {
                this.entries.AddRange(entries);
            }

            if (childrenIds != null)
            {
                this.childrenIds.AddRange(childrenIds);
            }
        }
 public TreeDiskNodeSerializer(ITreeNodeManager <TK, TV> nodeManager, ISerializer <TK> keySerializer,
                               ISerializer <TV> valueSerializer)
 {
     _nodeManager     = nodeManager ?? throw new ArgumentNullException(nameof(nodeManager));
     _keySerializer   = keySerializer ?? throw new ArgumentNullException(nameof(keySerializer));
     _valueSerializer = valueSerializer ?? throw new ArgumentNullException(nameof(valueSerializer));
 }
 public TreeEnumerator(ITreeNodeManager <TK, TV> nodeManager, TreeNode <TK, TV> node, int fromIndex, TreeTraverseDirection direction)
 {
     _nodeManager = nodeManager;
     CurrentNode  = node;
     CurrentEntry = fromIndex;
     _direction   = direction;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="TreeTraverser{K,V}"/> class.
 /// </summary>
 /// <param name="nodeManager">Node manager.</param>
 /// <param name="fromNode">From node.</param>
 /// <param name="fromIndex">From index.</param>
 /// <param name="direction">Direction.</param>
 public TreeTraverser(ITreeNodeManager <TK, TV> nodeManager, TreeNode <TK, TV> fromNode, int fromIndex, TreeTraverseDirection direction)
 {
     _direction   = direction;
     _fromIndex   = fromIndex;
     _fromNode    = fromNode ?? throw new ArgumentNullException(nameof(fromNode));
     _nodeManager = nodeManager;
 }
Esempio n. 7
0
        /// <summary>
		/// Initializes a new instance of the <see cref="TreeEnumerator{K,V}"/> class.
		/// </summary>
		/// <param name="nodeManager">Node manager.</param>
		/// <param name="node">Node.</param>
		/// <param name="fromIndex">From index.</param>
		/// <param name="direction">Direction.</param>
		public TreeEnumerator (ITreeNodeManager<K, V> nodeManager
			, TreeNode<K, V> node
			, int fromIndex
			, TreeTraverseDirection direction)
		{
			this.nodeManager = nodeManager;
			this.currentNode = node;
			this.currentEntry = fromIndex;
			this.direction = direction;
		}
Esempio n. 8
0
        public TreeEnumerator(ITreeNodeManager <K, V> nodeManager, TreeNode <K, V> node,
                              int startIndex, TreeScanDirections direction)
        {
            this.nodeManager = nodeManager;
            this.curNode     = node;
            this.curIndex    = startIndex;

            this.scanNext = (
                direction == TreeScanDirections.Ascending ?
                new Func <bool>(Ascend) :
                new Func <bool>(Descend)
                );
        }
Esempio n. 9
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Sdb.BTree.TreeTraverser`2"/> class.
        /// </summary>
        /// <param name="nodeManager">Node manager.</param>
        /// <param name="fromNode">From node.</param>
        /// <param name="fromIndex">From index.</param>
        /// <param name="direction">Direction.</param>
        public TreeTraverser(ITreeNodeManager <K, V> nodeManager
                             , TreeNode <K, V> fromNode
                             , int fromIndex
                             , TreeTraverseDirection direction)
        {
            if (fromNode == null)
            {
                throw new ArgumentNullException("fromNode");
            }

            this.direction   = direction;
            this.fromIndex   = fromIndex;
            this.fromNode    = fromNode;
            this.nodeManager = nodeManager;
        }
Esempio n. 10
0
        public TreeScanner(ITreeNodeManager <K, V> nodeManager, TreeNode <K, V> node,
                           int startIndex, TreeScanDirections direction)
        {
            if (nodeManager == null)
            {
                throw new ArgumentNullException("nodeManager");
            }
            if (node == null)
            {
                throw new ArgumentNullException("node");
            }

            this.nodeManager = nodeManager;
            this.node        = node;
            this.startIndex  = startIndex;
            this.direction   = direction;
        }
        public DiskTreeNodeSerializer(ITreeNodeManager <K, V> nodeManager,
                                      ISerializer <K> keySerializer, ISerializer <V> valueSerializer)
        {
            if (nodeManager == null)
            {
                throw new ArgumentNullException("nodeManager");
            }
            if (keySerializer == null)
            {
                throw new ArgumentNullException("keySerializer");
            }
            if (valueSerializer == null)
            {
                throw new ArgumentNullException("valueSerializer");
            }

            this.nodeManager     = nodeManager;
            this.keySerializer   = keySerializer;
            this.valueSerializer = valueSerializer;
        }
Esempio n. 12
0
 public Tree(ITreeNodeManager <K, V> nodeManager, bool allowDuplicateKeys = false)
 {
     _nodeManager        = nodeManager ?? throw new ArgumentNullException(nameof(nodeManager));
     _allowDuplicateKeys = allowDuplicateKeys;
 }
Esempio n. 13
0
 public MSSQLFiller(ITreeNodeManager treeNodeManager)
 {
     _treeNodeManager = treeNodeManager;
 }
Esempio n. 14
0
 public IndexTree(ITreeNodeManager <byte[], uint> nodeManager, bool allowDuplicateKeys = false) : base(nodeManager, allowDuplicateKeys)
 {
     AllowDuplicateKeys = allowDuplicateKeys;
 }
Esempio n. 15
0
 public TreeNodesController(ITreeNodeManager treeNodeManager)
 {
     _treeNodeManager = treeNodeManager;
 }