1 /****************************************************************
2  * Licensed to the Apache Software Foundation (ASF) under one   *
3  * or more contributor license agreements.  See the NOTICE file *
4  * distributed with this work for additional information        *
5  * regarding copyright ownership.  The ASF licenses this file   *
6  * to you under the Apache License, Version 2.0 (the            *
7  * "License"); you may not use this file except in compliance   *
8  * with the License.  You may obtain a copy of the License at   *
9  *                                                              *
10  *   http://www.apache.org/licenses/LICENSE-2.0                 *
11  *                                                              *
12  * Unless required by applicable law or agreed to in writing,   *
13  * software distributed under the License is distributed on an  *
14  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
15  * KIND, either express or implied.  See the License for the    *
16  * specific language governing permissions and limitations      *
17  * under the License.                                           *
18  ****************************************************************/
19 
20 package org.apache.james.mime4j.decoder;
21 
22 import java.util.Iterator;
23 
24 public class ByteQueue {
25 
26     private UnboundedFifoByteBuffer buf;
27     private int initialCapacity = -1;
28 
ByteQueue()29     public ByteQueue() {
30         buf = new UnboundedFifoByteBuffer();
31     }
32 
ByteQueue(int initialCapacity)33     public ByteQueue(int initialCapacity) {
34         buf = new UnboundedFifoByteBuffer(initialCapacity);
35         this.initialCapacity = initialCapacity;
36     }
37 
enqueue(byte b)38     public void enqueue(byte b) {
39         buf.add(b);
40     }
41 
dequeue()42     public byte dequeue() {
43         return buf.remove();
44     }
45 
count()46     public int count() {
47         return buf.size();
48     }
49 
clear()50     public void clear() {
51         if (initialCapacity != -1)
52             buf = new UnboundedFifoByteBuffer(initialCapacity);
53         else
54             buf = new UnboundedFifoByteBuffer();
55     }
56 
iterator()57     public Iterator iterator() {
58         return buf.iterator();
59     }
60 
61 
62 }
63