1d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru/*
2d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * Copyright (C) 2011 The Android Open Source Project
3d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru *
4d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * Licensed under the Apache License, Version 2.0 (the "License");
5d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * you may not use this file except in compliance with the License.
6d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * You may obtain a copy of the License at
7d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru *
8d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru *      http://www.apache.org/licenses/LICENSE-2.0
9d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru *
10d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * Unless required by applicable law or agreed to in writing, software
11d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * distributed under the License is distributed on an "AS IS" BASIS,
12d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * See the License for the specific language governing permissions and
14d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * limitations under the License.
15d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru */
16d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru
17d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Querupackage com.android.volley;
18d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru
19d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queruimport org.apache.http.HttpStatus;
20d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru
21d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queruimport java.util.Collections;
22d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queruimport java.util.Map;
23d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru
24d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru/**
25d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * Data and headers returned from {@link Network#performRequest(Request)}.
26d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru */
27d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Querupublic class NetworkResponse {
28d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    /**
29d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru     * Creates a new network response.
30d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru     * @param statusCode the HTTP status code
31d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru     * @param data Response body
32d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru     * @param headers Headers returned with this response, or null for none
33d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru     * @param notModified True if the server returned a 304 and the data was already in cache
34d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru     */
35d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    public NetworkResponse(int statusCode, byte[] data, Map<String, String> headers,
36d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru            boolean notModified) {
37d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru        this.statusCode = statusCode;
38d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru        this.data = data;
39d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru        this.headers = headers;
40d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru        this.notModified = notModified;
41d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    }
42d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru
43d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    public NetworkResponse(byte[] data) {
44d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru        this(HttpStatus.SC_OK, data, Collections.<String, String>emptyMap(), false);
45d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    }
46d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru
47e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    public NetworkResponse(byte[] data, Map<String, String> headers) {
48e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        this(HttpStatus.SC_OK, data, headers, false);
49e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    }
50e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru
51d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    /** The HTTP status code. */
52d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    public final int statusCode;
53d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru
54d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    /** Raw data from this response. */
55d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    public final byte[] data;
56d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru
57d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    /** Response headers. */
58d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    public final Map<String, String> headers;
59d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru
60d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    /** True if the server returned a 304 (Not Modified). */
61d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    public final boolean notModified;
62d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru}