- add third_party src.
[platform/framework/web/crosswalk.git] / src / xwalk / sysapps / raw_socket / tcp_server_socket_object.h
1 // Copyright (c) 2013 Intel Corporation. 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 XWALK_SYSAPPS_RAW_SOCKET_TCP_SERVER_SOCKET_OBJECT_H_
6 #define XWALK_SYSAPPS_RAW_SOCKET_TCP_SERVER_SOCKET_OBJECT_H_
7
8 #include <string>
9 #include "net/socket/tcp_server_socket.h"
10 #include "xwalk/sysapps/common/event_target.h"
11 #include "xwalk/sysapps/raw_socket/raw_socket_extension.h"
12 #include "xwalk/sysapps/raw_socket/raw_socket_object.h"
13
14 namespace xwalk {
15 namespace sysapps {
16
17 class BindingObjectStore;
18
19 class TCPServerSocketObject : public RawSocketObject {
20  public:
21   explicit TCPServerSocketObject(RawSocketInstance* instance);
22   virtual ~TCPServerSocketObject();
23
24  private:
25   void DoAccept();
26
27   // EventTarget implementation.
28   virtual void StartEvent(const std::string& type) OVERRIDE;
29   virtual void StopEvent(const std::string& type) OVERRIDE;
30
31   // JavaScript function handlers.
32   void OnInit(scoped_ptr<XWalkExtensionFunctionInfo> info);
33   void OnClose(scoped_ptr<XWalkExtensionFunctionInfo> info);
34   void OnSuspend(scoped_ptr<XWalkExtensionFunctionInfo> info);
35   void OnResume(scoped_ptr<XWalkExtensionFunctionInfo> info);
36
37   // net::TCPServerSocket callbacks.
38   void OnAccept(int status);
39
40   bool is_suspended_;
41   bool is_accepting_;
42
43   scoped_ptr<net::TCPServerSocket> socket_;
44   scoped_ptr<net::StreamSocket> accepted_socket_;
45
46   RawSocketInstance* instance_;
47 };
48
49 }  // namespace sysapps
50 }  // namespace xwalk
51
52 #endif  // XWALK_SYSAPPS_RAW_SOCKET_TCP_SERVER_SOCKET_OBJECT_H_