/// <summary> /// Creates an QueueEntry for reading especially INodes and ObjectLocators. /// </summary> /// <param name="myExtendedPositions">the position of the ObjectExtents where to start reading</param> /// <param name="myLengthToRead">the number of bytes to read</param> public QueueEntry(IEnumerable<ExtendedPosition> myExtendedPositions, UInt64 myLength) { ObjectExtent _ObjectExtent; _DataLength = myLength; _Data = null; _RWQueueStreams = new List<ObjectExtent>(); _FlushAfterWrite = false; // Convert the list of ExtendedPositions into a list of ObjectExtents foreach (var _ExtendedPosition in myExtendedPositions) { _ObjectExtent = new ObjectExtent(); _ObjectExtent.LogicalPosition = 0; _ObjectExtent.StorageUUID = _ExtendedPosition.StorageUUID; _ObjectExtent.PhysicalPosition = _ExtendedPosition.Position; _ObjectExtent.Length = myLength; _RWQueueStreams.Add(_ObjectExtent); } }
/// <summary> /// Creates an QueueEntry for reading a single ObjectExtent /// </summary> /// <param name="myObjectExtent">the ObjectExtent to read</param> public QueueEntry(ObjectExtent myObjectExtent) { _Data = null; _RWQueueStreams = new List<ObjectExtent>{ myObjectExtent }; _DataLength = myObjectExtent.Length; _FlushAfterWrite = false; }
/// <summary> /// Creates an QueueEntry for storing some bytes at a single position /// </summary> /// <param name="myPosition">a single position of the data wihtin the filesystem</param> /// <param name="myPaddedLength">some bytes for padding</param> /// <param name="mySerializedData">the data</param> public QueueEntry(Byte[] myData, UInt64 myPosition, UInt64 myPaddedLength) { //ObjectDatastream myObjectStream; //ObjectExtent _ObjectExtent; _Data = myData; _DataLength = myData.ULongLength(); _RWQueueStreams = new List<ObjectExtent>(); _FlushAfterWrite = false; var _ObjectExtent = new ObjectExtent(); _ObjectExtent.LogicalPosition = 0; _ObjectExtent.StorageUUID = new StorageUUID(1UL); _ObjectExtent.PhysicalPosition = myPosition; _ObjectExtent.Length = _DataLength; //myObjectStream = new ObjectDatastream(); //myObjectStream.StreamLength = _DataLength; //myObjectStream.ReservedLength = myPaddedLength - _DataLength; //myObjectStream.Add(myObjectExtent); _RWQueueStreams.Add(_ObjectExtent); }