|
1 |
| -/* |
2 |
| - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved. |
3 |
| - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 |
| - * |
5 |
| - * This code is free software; you can redistribute it and/or modify it |
6 |
| - * under the terms of the GNU General Public License version 2 only, as |
7 |
| - * published by the Free Software Foundation. |
8 |
| - * |
9 |
| - * This code is distributed in the hope that it will be useful, but WITHOUT |
10 |
| - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
11 |
| - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
12 |
| - * version 2 for more details (a copy is included in the LICENSE file that |
13 |
| - * accompanied this code). |
14 |
| - * |
15 |
| - * You should have received a copy of the GNU General Public License version |
16 |
| - * 2 along with this work; if not, write to the Free Software Foundation, |
17 |
| - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
18 |
| - * |
19 |
| - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
20 |
| - * or visit www.oracle.com if you need additional information or have any |
21 |
| - * questions. |
22 |
| - */ |
23 |
| - |
24 |
| -import java.net.*; |
25 |
| -import java.util.*; |
26 |
| -import java.io.IOException; |
27 |
| - |
28 |
| -/** |
29 |
| - * This class provides a partial implementation of the HttpCallback |
30 |
| - * interface. Use this class if you want to use the requestURI as a means |
31 |
| - * of tracking multiple invocations of a request (on the server). |
32 |
| - * In this case, you implement the modified request() method, which includes |
33 |
| - * an integer count parameter. This parameter indicates the number of times |
34 |
| - * (starting at zero) the request URI has been received. |
35 |
| - */ |
36 |
| - |
37 |
| -public abstract class AbstractCallback implements HttpCallback { |
38 |
| - |
39 |
| - Map requests; |
40 |
| - |
41 |
| - static class Request { |
42 |
| - URI uri; |
43 |
| - int count; |
44 |
| - |
45 |
| - Request (URI u) { |
46 |
| - uri = u; |
47 |
| - count = 0; |
48 |
| - } |
49 |
| - } |
50 |
| - |
51 |
| - AbstractCallback () { |
52 |
| - requests = Collections.synchronizedMap (new HashMap()); |
53 |
| - } |
54 |
| - |
55 |
| - /** |
56 |
| - * handle the given request and generate an appropriate response. |
57 |
| - * @param msg the transaction containing the request from the |
58 |
| - * client and used to send the response |
59 |
| - */ |
60 |
| - public void request (HttpTransaction msg) { |
61 |
| - URI uri = msg.getRequestURI(); |
62 |
| - Request req = (Request) requests.get (uri); |
63 |
| - if (req == null) { |
64 |
| - req = new Request (uri); |
65 |
| - requests.put (uri, req); |
66 |
| - } |
67 |
| - request (msg, req.count++); |
68 |
| - } |
69 |
| - |
70 |
| - /** |
71 |
| - * Same as HttpCallback interface except that the integer n |
72 |
| - * is provided to indicate sequencing of repeated requests using |
73 |
| - * the same request URI. n starts at zero and is incremented |
74 |
| - * for each successive call. |
75 |
| - * |
76 |
| - * @param msg the transaction containing the request from the |
77 |
| - * client and used to send the response |
78 |
| - * @param n value is 0 at first call, and is incremented by 1 for |
79 |
| - * each subsequent call using the same request URI. |
80 |
| - */ |
81 |
| - abstract public void request (HttpTransaction msg, int n); |
82 |
| -} |
0 commit comments