- add sources.
[platform/framework/web/crosswalk.git] / src / content / common / socket_stream_handle_data.h
1 // Copyright (c) 2012 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_RENDERER_SOCKET_STREAM_HANDLE_DATA_H_
6 #define CONTENT_RENDERER_SOCKET_STREAM_HANDLE_DATA_H_
7
8 #include "base/supports_user_data.h"
9 #include "content_export.h"
10
11 namespace WebKit {
12 class WebSocketStreamHandle;
13 }
14
15 namespace content {
16
17 // User data stored in each WebSocketStreamHandleImpl.
18 class SocketStreamHandleData : public base::SupportsUserData::Data {
19  public:
20   virtual ~SocketStreamHandleData() {}
21
22   int render_view_id() const { return render_view_id_; }
23
24   // Creates SocketStreamHandleData object with |render_view_id| and store it
25   // to |handle|.
26   static void AddToHandle(
27       WebKit::WebSocketStreamHandle* handle, int render_view_id);
28
29   // Retrieves the stored user data from WebKit::WebSocketStreamHandle object.
30   // |handle| must actually be a WebSocketStreamHandleImpl object.
31   CONTENT_EXPORT static const SocketStreamHandleData* ForHandle(
32       WebKit::WebSocketStreamHandle* handle);
33
34  private:
35   explicit SocketStreamHandleData(int render_view_id)
36       : render_view_id_(render_view_id) {
37   }
38
39   int render_view_id_;
40
41   DISALLOW_COPY_AND_ASSIGN(SocketStreamHandleData);
42 };
43
44 }  // namespace content
45
46 #endif  // CONTENT_RENDERER_SOCKET_STREAM_HANDLE_DATA_H_