Esempio n. 1
0
		/// <summary>
		/// Given the segment id, return the offset, and the length of the segment related to the disk file.
		/// </summary>
		/// <param name="segId"></param>
		/// <param name="offset"></param>
		/// <param name="length"></param>
		/// <returns></returns>
		public bool GetAddr(uint segId, ref uint offset, ref int length)
		{	
            KSegId target = new KSegId(segId);
			target = (KSegId)m_tree.Search(target);
			if (target != null && target.Addr != null)
			{
				offset = target.Addr.Offset;
				length = target.Addr.Length;
				return true;
			}
			else
				return false;
		}
Esempio n. 2
0
        /// <summary>
        /// Given the segment id, return the offset, and the length of the segment related to the disk file.
        /// </summary>
        /// <param name="segId"></param>
        /// <param name="offset"></param>
        /// <param name="length"></param>
        /// <returns></returns>
        public bool GetAddr(uint segId, ref uint offset, ref int length)
        {
            KSegId target = new KSegId(segId);

            target = (KSegId)m_tree.Search(target);
            if (target != null && target.Addr != null)
            {
                offset = target.Addr.Offset;
                length = target.Addr.Length;
                return(true);
            }
            else
            {
                return(false);
            }
        }
Esempio n. 3
0
        public IKey Deserialize(byte[] bytes, int offset, int count)
        {
            KSegId result = null;
            int    pos    = offset;
            uint   id     = OOD.Utility.Bytes.Unpack4U(bytes, pos);

            pos += 4;
            if (count == 4)
            {
                result = new KSegId(id);
            }
            else
            {
                int length = OOD.Utility.Bytes.Unpack2(bytes, pos);
                pos += 2;
                DSegAddr addr = new DSegAddr();
                addr   = (DSegAddr)addr.Deserialize(bytes, pos, length);
                result = new KSegId(id, addr);
            }

            return(result);
        }
Esempio n. 4
0
        public bool DeleteSegment(uint segId)
        {
            KSegId target = new KSegId(segId);

            return(m_tree.Delete(target));
        }
Esempio n. 5
0
        public bool UpdateAddr(uint segId, uint offset, int length)
        {
            KSegId updatedKey = new KSegId(segId, new DSegAddr(offset, length));

            return(m_tree.UpdateData(updatedKey));
        }
Esempio n. 6
0
        public bool InsertAddr(uint segId, uint offset, int length)
        {
            KSegId newKey = new KSegId(segId, new DSegAddr(offset, length));

            return(m_tree.Insert(newKey));
        }
Esempio n. 7
0
		public IKey Deserialize(byte[] bytes, int offset, int count)
		{
			KSegId result = null;
			int pos = offset;
			uint id = OOD.Utility.Bytes.Unpack4U(bytes, pos);
			pos += 4;
			if (count == 4)
			{
				result = new KSegId(id);
			}
			else
			{
				int length = OOD.Utility.Bytes.Unpack2(bytes, pos);
				pos += 2;
				DSegAddr addr = new DSegAddr();
				addr = (DSegAddr)addr.Deserialize(bytes, pos, length);
				result = new KSegId(id, addr);
			}

			return result;
		}
Esempio n. 8
0
        public int CompareTo(IKey B)
        {
            KSegId b = (KSegId)B;

            return((int)(m_id - b.m_id));
        }
Esempio n. 9
0
		public bool DeleteSegment(uint segId)
		{
			KSegId target = new KSegId(segId);
			return m_tree.Delete(target);
		}
Esempio n. 10
0
		public bool UpdateAddr(uint segId, uint offset, int length)
		{
			KSegId updatedKey = new KSegId(segId, new DSegAddr(offset, length));
			return m_tree.UpdateData(updatedKey);
		}
Esempio n. 11
0
		public bool InsertAddr(uint segId, uint offset, int length)
		{
			KSegId newKey = new KSegId(segId, new DSegAddr(offset, length));
			return m_tree.Insert(newKey);
		}