View Javadoc

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.http;
15  
16  import org.eclipse.jetty.io.Buffers;
17  import org.eclipse.jetty.io.BuffersFactory;
18  import org.eclipse.jetty.util.component.AbstractLifeCycle;
19  
20  /* ------------------------------------------------------------ */
21  /** Abstract Buffer pool.
22   * simple unbounded pool of buffers for header, request and response sizes.
23   *
24   */
25  public class HttpBuffers extends AbstractLifeCycle
26  {
27      private int _requestBufferSize=12*1024;
28      private int _requestHeaderSize=6*1024;
29      private int _responseBufferSize=32*1024;
30      private int _responseHeaderSize=6*1024;
31      private int _maxBuffers=1024;
32      
33      private Buffers.Type _requestBufferType=Buffers.Type.BYTE_ARRAY;
34      private Buffers.Type _requestHeaderType=Buffers.Type.BYTE_ARRAY;
35      private Buffers.Type _responseBufferType=Buffers.Type.BYTE_ARRAY;
36      private Buffers.Type _responseHeaderType=Buffers.Type.BYTE_ARRAY;
37      
38      private Buffers _requestBuffers;
39      private Buffers _responseBuffers;
40      
41      
42      public HttpBuffers()
43      {
44          super();
45      }
46      
47      /**
48       * @return the requestBufferSize
49       */
50      public int getRequestBufferSize()
51      {
52          return _requestBufferSize;
53      }
54      
55      /**
56       * @param requestBufferSize the requestBufferSize to set
57       */
58      public void setRequestBufferSize(int requestBufferSize)
59      {
60          _requestBufferSize = requestBufferSize;
61      }
62  
63      /**
64       * @return the requestHeaderSize
65       */
66      public int getRequestHeaderSize()
67      {
68          return _requestHeaderSize;
69      }
70  
71      /**
72       * @param requestHeaderSize the requestHeaderSize to set
73       */
74      public void setRequestHeaderSize(int requestHeaderSize)
75      {
76          _requestHeaderSize = requestHeaderSize;
77      }
78  
79      /**
80       * @return the responseBufferSize
81       */
82      public int getResponseBufferSize()
83      {
84          return _responseBufferSize;
85      }
86  
87      /**
88       * @param responseBufferSize the responseBufferSize to set
89       */
90      public void setResponseBufferSize(int responseBufferSize)
91      {
92          _responseBufferSize = responseBufferSize;
93      }
94  
95      /**
96       * @return the responseHeaderSize
97       */
98      public int getResponseHeaderSize()
99      {
100         return _responseHeaderSize;
101     }
102 
103     /**
104      * @param responseHeaderSize the responseHeaderSize to set
105      */
106     public void setResponseHeaderSize(int responseHeaderSize)
107     {
108         _responseHeaderSize = responseHeaderSize;
109     }
110 
111     /**
112      * @return the requestBufferType
113      */
114     public Buffers.Type getRequestBufferType()
115     {
116         return _requestBufferType;
117     }
118 
119     /**
120      * @param requestBufferType the requestBufferType to set
121      */
122     protected void setRequestBufferType(Buffers.Type requestBufferType)
123     {
124         _requestBufferType = requestBufferType;
125     }
126 
127     /**
128      * @return the requestHeaderType
129      */
130     public Buffers.Type getRequestHeaderType()
131     {
132         return _requestHeaderType;
133     }
134 
135     /**
136      * @param requestHeaderType the requestHeaderType to set
137      */
138     protected void setRequestHeaderType(Buffers.Type requestHeaderType)
139     {
140         _requestHeaderType = requestHeaderType;
141     }
142 
143     /**
144      * @return the responseBufferType
145      */
146     public Buffers.Type getResponseBufferType()
147     {
148         return _responseBufferType;
149     }
150 
151     /**
152      * @param responseBufferType the responseBufferType to set
153      */
154     protected void setResponseBufferType(Buffers.Type responseBufferType)
155     {
156         _responseBufferType = responseBufferType;
157     }
158 
159     /**
160      * @return the responseHeaderType
161      */
162     public Buffers.Type getResponseHeaderType()
163     {
164         return _responseHeaderType;
165     }
166 
167     /**
168      * @param responseHeaderType the responseHeaderType to set
169      */
170     protected void setResponseHeaderType(Buffers.Type responseHeaderType)
171     {
172         _responseHeaderType = responseHeaderType;
173     }
174 
175     /**
176      * @param requestBuffers the requestBuffers to set
177      */
178     public void setRequestBuffers(Buffers requestBuffers)
179     {
180         _requestBuffers = requestBuffers;
181     }
182 
183     /**
184      * @param responseBuffers the responseBuffers to set
185      */
186     public void setResponseBuffers(Buffers responseBuffers)
187     {
188         _responseBuffers = responseBuffers;
189     }
190 
191     @Override
192     protected void doStart()
193         throws Exception
194     {
195         _requestBuffers=BuffersFactory.newBuffers(_requestHeaderType,_requestHeaderSize,_requestBufferType,_requestBufferSize,_requestBufferType,getMaxBuffers());
196         _responseBuffers=BuffersFactory.newBuffers(_responseHeaderType,_responseHeaderSize,_responseBufferType,_responseBufferSize,_responseBufferType,getMaxBuffers());
197         super.doStart();
198     }
199     
200     @Override
201     protected void doStop()
202         throws Exception
203     {
204         _requestBuffers=null;
205         _responseBuffers=null;
206     }
207 
208     public Buffers getRequestBuffers()
209     {
210         return _requestBuffers;
211     }
212     
213 
214     public Buffers getResponseBuffers()
215     {
216         return _responseBuffers;
217     }
218 
219     public void setMaxBuffers(int maxBuffers)
220     {
221         _maxBuffers = maxBuffers;
222     }
223 
224     public int getMaxBuffers()
225     {
226         return _maxBuffers;
227     }
228     
229 }