stream_handle_impl.h revision 5d1f7b1de12d16ceb2c938c56701a3e8bfa558f7
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_BROWSER_STREAMS_STREAM_HANDLE_IMPL_H_
6#define CONTENT_BROWSER_STREAMS_STREAM_HANDLE_IMPL_H_
7
8#include "base/memory/weak_ptr.h"
9#include "base/synchronization/lock.h"
10#include "content/public/browser/stream_handle.h"
11
12namespace base {
13class MessageLoopProxy;
14}
15
16namespace content {
17
18class Stream;
19
20class StreamHandleImpl : public StreamHandle {
21 public:
22  StreamHandleImpl(const base::WeakPtr<Stream>& stream,
23                   const GURL& original_url,
24                   const std::string& mime_type);
25  virtual ~StreamHandleImpl();
26
27 private:
28  // StreamHandle overrides
29  virtual const GURL& GetURL() OVERRIDE;
30  virtual const GURL& GetOriginalURL() OVERRIDE;
31  virtual const std::string& GetMimeType() OVERRIDE;
32
33  base::WeakPtr<Stream> stream_;
34  GURL url_;
35  GURL original_url_;
36  std::string mime_type_;
37  base::MessageLoopProxy* stream_message_loop_;
38};
39
40}  // namespace content
41
42#endif  // CONTENT_BROWSER_STREAMS_STREAM_HANDLE_IMPL_H_
43
44