public SqoTypeInfo DeserializeSqoTypeInfo(bool loadRealType) { byte[] headerSizeB = new byte[4]; file.Read(0, headerSizeB); int headerSize = ByteConverter.ByteArrayToInt(headerSizeB); byte[] readFullSqoTypeInfo = new byte[headerSize]; file.Read(0, readFullSqoTypeInfo); return(DeserializeSqoTypeInfoFromBuffer(readFullSqoTypeInfo, loadRealType)); }
private static void ShrinkNormal(Siaqodb siaqodb) { var allOrderByPos = (from RawdataInfo ri in siaqodb where ri.IsFree == false orderby ri.Position select ri).ToList(); ISqoFile file = siaqodb.GetRawFile(); MemoryStream memStream = new MemoryStream(); MemoryStream memStreamNew = new MemoryStream(); byte[] fullFile = new byte[file.Length]; file.Read(0, fullFile); memStream.Write(fullFile, 0, fullFile.Length); for (int i = 0; i < allOrderByPos.Count; i++) { RawdataInfo rawi = allOrderByPos[i]; byte[] actualBytes = new byte[rawi.Length]; memStream.Seek(rawi.Position, SeekOrigin.Begin); memStream.Read(actualBytes, 0, actualBytes.Length); if (i == 0) { rawi.Position = 0; memStreamNew.Write(actualBytes, 0, actualBytes.Length); } else { RawdataInfo prev = allOrderByPos[i - 1]; rawi.Position = prev.Position + prev.Length; memStreamNew.Seek(rawi.Position, SeekOrigin.Begin); memStreamNew.Write(actualBytes, 0, actualBytes.Length); } } for (int i = 0; i < allOrderByPos.Count; i++) { siaqodb.StoreObject(allOrderByPos[i]); } file.Length = memStreamNew.Length; file.Write(0, memStreamNew.ToArray()); }
public void Read(long pos, byte[] buffer) { file.Read(pos, buffer); }