public int WriteObject(string KEY, object ObjectToWrite, object Tag, FileHashDB.OnWriteHandler CB) { MemoryStream ostream = new MemoryStream(); formatter.Serialize(ostream, ObjectToWrite); byte[] buffer = ostream.ToArray(); return(WriteRecord(KEY, buffer, 0, buffer.Length, Tag, CB)); }
public int WriteRecord(string KEY, byte[] buffer, int offset, int count, object Tag, FileHashDB.OnWriteHandler WriteCB) { DataBlock d = GetFreeBlock(); d._Tag = WriteCB; d.OnWrite += new DataBlock.OnWriteHandler(WriteSink); long h = 0; lock (CBMap) { h = handle++; CBMap[h] = new object[2] { KEY, Tag }; } if (Map != null) { lock (Map) { Map[KEY] = d.OFFSET; } } d.Write(KEY, buffer, offset, count, h); return(d.OFFSET); }