1 // ========================================================================
2 // Copyright (c) 2004-2009 Mort Bay Consulting Pty. Ltd.
3 // ------------------------------------------------------------------------
4 // All rights reserved. This program and the accompanying materials
5 // are made available under the terms of the Eclipse Public License v1.0
6 // and Apache License v2.0 which accompanies this distribution.
7 // The Eclipse Public License is available at
8 // http://www.eclipse.org/legal/epl-v10.html
9 // The Apache License v2.0 is available at
10 // http://www.opensource.org/licenses/apache2.0.php
11 // You may elect to redistribute this code under either of these licenses.
12 // ========================================================================
13
14 package org.eclipse.jetty.io;
15
16
17 /* ------------------------------------------------------------ */
18 /** BufferSource.
19 * Represents a pool or other source of buffers and abstracts the creation
20 * of specific types of buffers (eg NIO). The concept of big and little buffers
21 * is supported, but these terms have no absolute meaning and must be determined by context.
22 *
23 */
24 public interface Buffers
25 {
26 enum Type { BYTE_ARRAY, DIRECT, INDIRECT } ;
27
28 Buffer getHeader();
29 Buffer getBuffer();
30 Buffer getBuffer(int size);
31
32 void returnBuffer(Buffer buffer);
33 }