// Standard ctor - as for BlobWriteStream but also specify the sequence number of the segment. public PartialBlobWriteStream(Stream s, FPTag t, int id) { // We cannot call the base constructor because we need use the additional id parameter // Even if we split out some of the functionality using a virtual init method with no // parameters, the sequenceId will not be initialized when the virtual function was called // by the base constructor. So we just have to duplicate the (small)initialization code. holdingArea = s; theTag = t; sequenceId = id; myCallbacks = new Callbacks(holdingArea); fpStream = new FPGenericStream(holdingArea, FPStream.StreamDirection.InputToCentera, myCallbacks, (IntPtr)this.GetHashCode()); FPLogger.ConsoleMessage("\n ** Partial blob write stream with sequence id = " + sequenceId); blobThread = new Thread(delegate() { theTag.BlobWritePartial(fpStream, sequenceId); }); blobThread.Name = "PartialBlobWriteThread"; }