Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / devtools / device / android_device_manager.h
index fbc00cd..ec65e03 100644 (file)
@@ -53,6 +53,7 @@ class AndroidDeviceManager
   };
 
   typedef base::Callback<void(const DeviceInfo&)> DeviceInfoCallback;
+  class Device;
 
   class AndroidWebSocket {
    public:
@@ -66,9 +67,29 @@ class AndroidDeviceManager
       virtual ~Delegate() {}
     };
 
-    virtual ~AndroidWebSocket() {}
+    ~AndroidWebSocket();
 
-    virtual void SendFrame(const std::string& message) = 0;
+    void SendFrame(const std::string& message);
+
+   private:
+    friend class Device;
+    class WebSocketImpl;
+
+    AndroidWebSocket(
+        scoped_refptr<Device> device,
+        const std::string& socket_name,
+        const std::string& url,
+        AndroidWebSocket::Delegate* delegate);
+    void Connected(int result, scoped_ptr<net::StreamSocket> socket);
+    void OnFrameRead(const std::string& message);
+    void OnSocketClosed();
+    void Terminate();
+
+    Device* device_;
+    WebSocketImpl* socket_impl_;
+    Delegate* delegate_;
+    base::WeakPtrFactory<AndroidWebSocket> weak_factory_;
+    DISALLOW_COPY_AND_ASSIGN(AndroidWebSocket);
   };
 
   class DeviceProvider;
@@ -76,10 +97,6 @@ class AndroidDeviceManager
   class Device : public base::RefCountedThreadSafe<Device>,
                  public base::NonThreadSafe {
    public:
-    typedef AndroidDeviceManager::DeviceInfoCallback DeviceInfoCallback;
-    typedef AndroidDeviceManager::CommandCallback CommandCallback;
-    typedef AndroidDeviceManager::SocketCallback SocketCallback;
-
     void QueryDeviceInfo(const DeviceInfoCallback& callback);
 
     void OpenSocket(const std::string& socket_name,
@@ -92,7 +109,6 @@ class AndroidDeviceManager
     void HttpUpgrade(const std::string& socket_name,
                      const std::string& url,
                      const SocketCallback& callback);
-
     AndroidWebSocket* CreateWebSocket(
         const std::string& socket_name,
         const std::string& url,
@@ -101,17 +117,20 @@ class AndroidDeviceManager
     std::string serial() { return serial_; }
 
    private:
+    friend class base::RefCountedThreadSafe<Device>;
     friend class AndroidDeviceManager;
+    friend class AndroidWebSocket;
+
     Device(scoped_refptr<base::MessageLoopProxy> device_message_loop,
            scoped_refptr<DeviceProvider> provider,
            const std::string& serial);
 
-    friend class base::RefCountedThreadSafe<Device>;
     virtual ~Device();
 
-    scoped_refptr<base::MessageLoopProxy> device_message_loop_;
+    scoped_refptr<base::MessageLoopProxy> message_loop_proxy_;
     scoped_refptr<DeviceProvider> provider_;
     std::string serial_;
+    std::set<AndroidWebSocket*> sockets_;
     base::WeakPtrFactory<Device> weak_factory_;
 
     DISALLOW_COPY_AND_ASSIGN(Device);