Exemplo n.º 1
0
        /// <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);

            }
        }
Exemplo n.º 2
0
 /// <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;
 }
Exemplo n.º 3
0
        /// <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);
        }