/// <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; }
/// <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); } }
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); }
public bool DeleteSegment(uint segId) { KSegId target = new KSegId(segId); return(m_tree.Delete(target)); }
public bool UpdateAddr(uint segId, uint offset, int length) { KSegId updatedKey = new KSegId(segId, new DSegAddr(offset, length)); return(m_tree.UpdateData(updatedKey)); }
public bool InsertAddr(uint segId, uint offset, int length) { KSegId newKey = new KSegId(segId, new DSegAddr(offset, length)); return(m_tree.Insert(newKey)); }
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; }
public int CompareTo(IKey B) { KSegId b = (KSegId)B; return((int)(m_id - b.m_id)); }
public bool DeleteSegment(uint segId) { KSegId target = new KSegId(segId); return m_tree.Delete(target); }
public bool UpdateAddr(uint segId, uint offset, int length) { KSegId updatedKey = new KSegId(segId, new DSegAddr(offset, length)); return m_tree.UpdateData(updatedKey); }
public bool InsertAddr(uint segId, uint offset, int length) { KSegId newKey = new KSegId(segId, new DSegAddr(offset, length)); return m_tree.Insert(newKey); }