stream_handle.h revision cedac228d2dd51db4b79ea1e72c7f249408ee061
1// Copyright (c) 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CONTENT_PUBLIC_BROWSER_STREAM_HANDLE_H_
6#define CONTENT_PUBLIC_BROWSER_STREAM_HANDLE_H_
7
8#include "base/callback.h"
9#include "base/memory/ref_counted.h"
10#include "content/common/content_export.h"
11#include "url/gurl.h"
12
13namespace net {
14class HttpResponseHeaders;
15}
16
17namespace content {
18
19class CONTENT_EXPORT StreamHandle {
20 public:
21  virtual ~StreamHandle() {}
22
23  // Gets the URL the stream can be read from.
24  virtual const GURL& GetURL() = 0;
25
26  // Gets the original URL being redirected to this Stream.
27  virtual const GURL& GetOriginalURL() = 0;
28
29  // Get the MIME type associated with this Stream.
30  virtual const std::string& GetMimeType() = 0;
31
32  // Get the HTTP response headers associated with this Stream.
33  virtual scoped_refptr<net::HttpResponseHeaders> GetResponseHeaders() = 0;
34
35  // Add a callback which will be called when the Stream is closed.
36  virtual void AddCloseListener(const base::Closure& callback) = 0;
37};
38
39}  // namespace content
40
41#endif  // CONTENT_PUBLIC_BROWSER_STREAM_HANDLE_H_
42