1 //========================================================================
2 //$Id: SimpleBuffers.java,v 1.1 2005/10/05 14:09:25 janb Exp $
3 //Copyright 2004-2005 Mort Bay Consulting Pty. Ltd.
4 //------------------------------------------------------------------------
5 //Licensed under the Apache License, Version 2.0 (the "License");
6 //you may not use this file except in compliance with the License.
7 //You may obtain a copy of the License at
8 //http://www.apache.org/licenses/LICENSE-2.0
9 //Unless required by applicable law or agreed to in writing, software
10 //distributed under the License is distributed on an "AS IS" BASIS,
11 //WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 //See the License for the specific language governing permissions and
13 //limitations under the License.
14 //========================================================================
15
16 package org.mortbay.io;
17
18 /* ------------------------------------------------------------ */
19 /** SimpleBuffers.
20 * Simple implementation of Buffers holder.
21 * @author gregw
22 *
23 */
24 public class SimpleBuffers implements Buffers
25 {
26 Buffer[] _buffers;
27
28 /* ------------------------------------------------------------ */
29 /**
30 *
31 */
32 public SimpleBuffers(Buffer[] buffers)
33 {
34 _buffers=buffers;
35 }
36
37 /* ------------------------------------------------------------ */
38 /*
39 * @see org.mortbay.io.Buffers#getBuffer(boolean)
40 */
41 public Buffer getBuffer(int size)
42 {
43 if (_buffers!=null)
44 {
45 for (int i=0;i<_buffers.length;i++)
46 {
47 if (_buffers[i]!=null && _buffers[i].capacity()==size)
48 {
49 Buffer b=_buffers[i];
50 _buffers[i]=null;
51 return b;
52 }
53 }
54 }
55 return new ByteArrayBuffer(size);
56 }
57
58 /* ------------------------------------------------------------ */
59 /*
60 * @see org.mortbay.io.Buffers#returnBuffer(org.mortbay.io.Buffer)
61 */
62 public void returnBuffer(Buffer buffer)
63 {
64 buffer.clear();
65 if (_buffers!=null)
66 {
67 for (int i=0;i<_buffers.length;i++)
68 {
69 if (_buffers[i]==null)
70 _buffers[i]=buffer;
71 }
72 }
73 }
74
75
76 }