public PersistentQueueOperation(PersistentQueueOperationTypes type, int fileNumber, int start, int length)
 {
     Type       = type;
     FileNumber = fileNumber;
     Start      = start;
     Length     = length;
 }
Ejemplo n.º 2
0
        /// <summary>
        /// This special purpose function is to work around potential issues with Mono
        /// </summary>
//		private static PersistentQueueEntry[] ToArray(LinkedList<PersistentQueueEntry> list)
//		{
//			if (list == null) return new PersistentQueueEntry[0];
//			List<PersistentQueueEntry> outp = new List<PersistentQueueEntry>(25);
//			LinkedListNode<PersistentQueueEntry> cur = list.First;
//			while (cur != null)
//			{
//				outp.Add(cur.Value);
//				cur = cur.Next;
//			}
//
//			return outp.ToArray();
//		}

        private static void WriteEntryToTransactionLog(Stream ms, PersistentQueueEntry entry, PersistentQueueOperationTypes operationType)
        {
            ms.Write(PersistentQueueUtils.OperationSeparatorBytes, 0, PersistentQueueUtils.OperationSeparatorBytes.Length);

            ms.WriteByte((byte)operationType);

            byte[] fileNumber = BitConverter.GetBytes(entry.FileNumber);
            ms.Write(fileNumber, 0, fileNumber.Length);

            byte[] start = BitConverter.GetBytes(entry.Start);
            ms.Write(start, 0, start.Length);

            byte[] length = BitConverter.GetBytes(entry.Length);
            ms.Write(length, 0, length.Length);
        }