Upstream version 11.40.271.0
[platform/framework/web/crosswalk.git] / src / content / public / browser / stream_info.h
1 // Copyright 2014 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_INFO_H_
6 #define CONTENT_PUBLIC_BROWSER_STREAM_INFO_H_
7
8 #include "base/macros.h"
9 #include "base/memory/ref_counted.h"
10 #include "base/memory/scoped_ptr.h"
11 #include "content/common/content_export.h"
12 #include "url/gurl.h"
13
14 namespace net {
15 class HttpResponseHeaders;
16 }
17
18 namespace content {
19
20 class StreamHandle;
21
22 // A convenience structure for passing around both a StreamHandle and associated
23 // metadata. The intent is so, when passing the stream's URL to a child process,
24 // the handle can be retained as long as it is needed while the rest of the
25 // StreamInfo is released.
26 struct CONTENT_EXPORT StreamInfo {
27   StreamInfo();
28   ~StreamInfo();
29
30   // The handle to the stream itself.
31   scoped_ptr<StreamHandle> handle;
32
33   // The original URL being redirected to this stream.
34   GURL original_url;
35
36   // The MIME type associated with this stream.
37   std::string mime_type;
38
39   // The HTTP response headers associated with this stream.
40   scoped_refptr<net::HttpResponseHeaders> response_headers;
41
42   DISALLOW_COPY_AND_ASSIGN(StreamInfo);
43 };
44
45 }  // namespace content
46
47 #endif  // CONTENT_PUBLIC_BROWSER_STREAM_INFO_H_