• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2022 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 package org.chromium.net.apihelpers;
6 
7 import androidx.annotation.Nullable;
8 
9 import org.chromium.net.UrlResponseInfo;
10 
11 import java.util.Objects;
12 
13 /**
14  * A helper object encompassing the headers, body and metadata of a response to Cronet URL
15  * requests.
16  *
17  * @param <T> the response body type
18  */
19 public class CronetResponse<T> {
20     /** The headers and other metadata of the response. */
21     private final UrlResponseInfo mUrlResponseInfo;
22 
23     /** The full body of the response, after performing a user-defined deserialization. */
24     private final @Nullable T mResponseBody;
25 
CronetResponse(UrlResponseInfo urlResponseInfo, @Nullable T responseBody)26     CronetResponse(UrlResponseInfo urlResponseInfo, @Nullable T responseBody) {
27         this.mUrlResponseInfo = urlResponseInfo;
28         this.mResponseBody = responseBody;
29     }
30 
31     /** Returns the headers and other metadata of the response. */
getUrlResponseInfo()32     public UrlResponseInfo getUrlResponseInfo() {
33         return mUrlResponseInfo;
34     }
35 
36     /** Returns the full body of the response, after performing a user-defined deserialization. */
getResponseBody()37     public @Nullable T getResponseBody() {
38         return mResponseBody;
39     }
40 
41     @Override
equals(Object o)42     public boolean equals(Object o) {
43         if (this == o) {
44             return true;
45         }
46         if (!(o instanceof CronetResponse)) {
47             return false;
48         }
49         CronetResponse<?> that = (CronetResponse<?>) o;
50         return Objects.equals(mUrlResponseInfo, that.mUrlResponseInfo)
51                 && Objects.equals(mResponseBody, that.mResponseBody);
52     }
53 
54     @Override
hashCode()55     public int hashCode() {
56         return Objects.hash(mUrlResponseInfo, mResponseBody);
57     }
58 }
59