/// <summary> /// 构建出一个简单的连接型队列,其中前部包含元素 10,后部为空 /// </summary> /// <returns></returns> private static ConcatenatedLRUQueue<IFrame> ConstructSimpleConcatQueue() { IQueue<IFrame> front = new FIFOQueue<IFrame>(); IQueue<IFrame> back = new FIFOQueue<IFrame>(); front.Enqueue(new Frame(10)); ConcatenatedLRUQueue<IFrame> target = new ConcatenatedLRUQueue<IFrame>(front, back); return target; }
/// <summary> /// 构建出一个嵌套的连接型队列。 /// </summary> /// <returns></returns> private static ConcatenatedLRUQueue<IFrame> ConstructNestedConcatQueue(out IQueue<IFrame>[] FIFOs) { IQueue<IFrame>[] q = new FIFOQueue<IFrame>[8]; for (int i = 0; i < q.Length; i++) { q[i] = new FIFOQueue<IFrame>(); q[i].Enqueue(new Frame((uint)(i * 10))); q[i].Enqueue(new Frame((uint)(i * 10 + 1))); } IQueue<IFrame> q01 = new ConcatenatedLRUQueue<IFrame>(q[0], q[1]), q23 = new ConcatenatedLRUQueue<IFrame>(q[2], q[3]), q45 = new ConcatenatedLRUQueue<IFrame>(q[4], q[5]), q67 = new ConcatenatedLRUQueue<IFrame>(q[6], q[7]); IQueue<IFrame> q0123 = new ConcatenatedLRUQueue<IFrame>(q01, q23), q4567 = new ConcatenatedLRUQueue<IFrame>(q45, q67); ConcatenatedLRUQueue<IFrame> target = new ConcatenatedLRUQueue<IFrame>(q0123, q4567); FIFOs = q; return target; }