]> git.evergreen-ils.org Git - OpenSRF.git/blob - src/java/org/opensrf/net/http/HttpRequest.java
d91a12761f3d800c42aebd673afc053393279bc2
[OpenSRF.git] / src / java / org / opensrf / net / http / HttpRequest.java
1 package org.opensrf.net.http;
2 import org.opensrf.*;
3 import org.opensrf.util.*;
4
5 import java.util.List;
6 import java.util.LinkedList;
7 import java.net.HttpURLConnection;
8
9 public abstract class HttpRequest {
10
11     protected String service;
12     protected Method method;
13     protected HttpURLConnection urlConn;
14     protected HttpConnection httpConn;
15     protected HttpRequestHandler handler;
16     protected List<Object> responseList;
17     protected Exception failure;
18     protected boolean failed;
19     protected boolean complete;
20
21     public HttpRequest() {
22         failed = false;
23         complete = false;
24         handler = null;
25         urlConn = null;
26     }
27
28     public HttpRequest(HttpConnection conn, String service, Method method) {
29         this();
30         this.httpConn = conn;
31         this.service = service;
32         this.method = method;
33     }
34
35     public void sendAsync(final HttpRequestHandler handler) {
36         this.handler = handler;
37         httpConn.manageAsyncRequest(this);
38     }
39
40     protected void pushResponse(Object response) {
41         if (responseList == null)
42             responseList = new LinkedList<Object>();
43         responseList.add(response);
44     }
45
46     protected List responses() {
47         return responseList;
48     }
49     
50     protected Object nextResponse() {
51         if (complete || failed) return null;
52         if (responseList.size() > 0)
53             return responseList.remove(0);
54         return null;
55     }
56
57     public Exception getFailure() {
58         return failure;
59     }
60
61     public abstract HttpRequest send();
62
63     public abstract Object recv();
64 }
65
66