public PersistentQueueOperation(PersistentQueueOperationTypes type, int fileNumber, int start, int length) { Type = type; FileNumber = fileNumber; Start = start; Length = length; }
/// <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); }