Pepper_31_C++_interfaces
socket_dev.h
Go to the documentation of this file.
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 PPAPI_CPP_EXTENSIONS_DEV_SOCKET_DEV_H_
6 #define PPAPI_CPP_EXTENSIONS_DEV_SOCKET_DEV_H_
7 
8 #include <string>
9 #include <vector>
10 
11 #include "ppapi/c/extensions/dev/ppb_ext_socket_dev.h"
12 #include "ppapi/cpp/extensions/dict_field.h"
13 #include "ppapi/cpp/extensions/ext_output_traits.h"
14 #include "ppapi/cpp/instance_handle.h"
15 #include "ppapi/cpp/var.h"
16 #include "ppapi/cpp/var_array_buffer.h"
17 #include "ppapi/cpp/var_dictionary.h"
18 
19 namespace pp {
20 namespace ext {
21 
22 template <class T>
23 class ExtCompletionCallbackWithOutput;
24 
25 template <class T>
26 class Optional;
27 
28 namespace socket {
29 
30 // Data types ------------------------------------------------------------------
32  public:
33  enum ValueType {
35  TCP,
37  };
38 
40  SocketType_Dev(ValueType in_value);
42 
43  bool Populate(const PP_Var& var_value);
44 
45  Var CreateVar() const;
46 
48 
49  static const char* const kTcp;
50  static const char* const kUdp;
51 };
52 
54 
56  public:
59 
60  bool Populate(const PP_Ext_Socket_CreateInfo_Dev& value);
61 
62  Var CreateVar() const;
63 
64  static const char* const kSocketId;
65 
67 };
68 
70  public:
73 
74  bool Populate(const PP_Ext_Socket_AcceptInfo_Dev& value);
75 
76  Var CreateVar() const;
77 
78  static const char* const kResultCode;
79  static const char* const kSocketId;
80 
83 };
84 
85 class ReadInfo_Dev {
86  public:
87  ReadInfo_Dev();
88  ~ReadInfo_Dev();
89 
90  bool Populate(const PP_Ext_Socket_ReadInfo_Dev& value);
91 
92  Var CreateVar() const;
93 
94  static const char* const kResultCode;
95  static const char* const kData;
96 
99 };
100 
102  public:
103  WriteInfo_Dev();
104  ~WriteInfo_Dev();
105 
106  bool Populate(const PP_Ext_Socket_WriteInfo_Dev& value);
107 
108  Var CreateVar() const;
109 
110  static const char* const kBytesWritten;
111 
113 };
114 
116  public:
119 
120  bool Populate(const PP_Ext_Socket_RecvFromInfo_Dev& value);
121 
122  Var CreateVar() const;
123 
124  static const char* const kResultCode;
125  static const char* const kData;
126  static const char* const kAddress;
127  static const char* const kPort;
128 
133 };
134 
136  public:
137  SocketInfo_Dev();
138  ~SocketInfo_Dev();
139 
140  bool Populate(const PP_Ext_Socket_SocketInfo_Dev& value);
141 
142  Var CreateVar() const;
143 
144  static const char* const kSocketType;
145  static const char* const kConnected;
146  static const char* const kPeerAddress;
147  static const char* const kPeerPort;
148  static const char* const kLocalAddress;
149  static const char* const kLocalPort;
150 
157 };
158 
160  public:
163 
164  bool Populate(const PP_Ext_Socket_NetworkInterface_Dev& value);
165 
166  Var CreateVar() const;
167 
168  static const char* const kName;
169  static const char* const kAddress;
170 
173 };
174 
175 // Functions -------------------------------------------------------------------
176 class Socket_Dev {
177  public:
178  explicit Socket_Dev(const InstanceHandle& instance);
179  ~Socket_Dev();
180 
182  int32_t Create(const SocketType_Dev& type,
183  const Optional<CreateOptions_Dev>& options,
184  const CreateCallback& callback);
185 
186  void Destroy(int32_t socket_id);
187 
189  int32_t Connect(int32_t socket_id,
190  const std::string& hostname,
191  int32_t port,
192  const ConnectCallback& callback);
193 
195  int32_t Bind(int32_t socket_id,
196  const std::string& address,
197  int32_t port,
198  const BindCallback& callback);
199 
200  void Disconnect(int32_t socket_id);
201 
203  int32_t Read(int32_t socket_id,
204  const Optional<int32_t>& buffer_size,
205  const ReadCallback& callback);
206 
208  int32_t Write(int32_t socket_id,
209  const VarArrayBuffer& data,
210  const WriteCallback& callback);
211 
213  int32_t RecvFrom(int32_t socket_id,
214  const Optional<int32_t>& buffer_size,
215  const RecvFromCallback& callback);
216 
218  int32_t SendTo(int32_t socket_id,
219  const VarArrayBuffer& data,
220  const std::string& address,
221  int32_t port,
222  const SendToCallback& callback);
223 
225  int32_t Listen(int32_t socket_id,
226  const std::string& address,
227  int32_t port,
228  const Optional<int32_t>& backlog,
229  const ListenCallback& callback);
230 
232  int32_t Accept(int32_t socket_id, const AcceptCallback& callback);
233 
235  int32_t SetKeepAlive(int32_t socket_id,
236  bool enable,
237  const Optional<int32_t>& delay,
238  const SetKeepAliveCallback& callback);
239 
241  int32_t SetNoDelay(int32_t socket_id,
242  bool no_delay,
243  const SetNoDelayCallback& callback);
244 
246  int32_t GetInfo(int32_t socket_id,
247  const GetInfoCallback& callback);
248 
252 
254  int32_t JoinGroup(int32_t socket_id,
255  const std::string& address,
256  const JoinGroupCallback& callback);
257 
259  int32_t LeaveGroup(int32_t socket_id,
260  const std::string& address,
261  const LeaveGroupCallback& callback);
262 
266  int32_t socket_id,
267  int32_t ttl,
268  const SetMulticastTimeToLiveCallback& callback);
269 
273  int32_t socket_id,
274  bool enabled,
275  const SetMulticastLoopbackModeCallback& callback);
276 
279  int32_t GetJoinedGroups(int32_t socket_id,
280  const GetJoinedGroupsCallback& callback);
281 
282  private:
283  InstanceHandle instance_;
284 };
285 
286 } // namespace socket
287 } // namespace ext
288 } // namespace pp
289 
290 #endif // PPAPI_CPP_EXTENSIONS_DEV_SOCKET_DEV_H_
DictField< bool > connected
Definition: socket_dev.h:152
DictField< std::string > address
Definition: socket_dev.h:131
bool Populate(const PP_Ext_Socket_CreateInfo_Dev &value)
static const char *const kName
Definition: socket_dev.h:168
ExtCompletionCallbackWithOutput< WriteInfo_Dev > SendToCallback
Definition: socket_dev.h:217
static const char *const kBytesWritten
Definition: socket_dev.h:110
DictField< int32_t > result_code
Definition: socket_dev.h:81
void Destroy(int32_t socket_id)
Socket_Dev(const InstanceHandle &instance)
int32_t Create(const SocketType_Dev &type, const Optional< CreateOptions_Dev > &options, const CreateCallback &callback)
int32_t SetKeepAlive(int32_t socket_id, bool enable, const Optional< int32_t > &delay, const SetKeepAliveCallback &callback)
static const char *const kData
Definition: socket_dev.h:95
ExtCompletionCallbackWithOutput< int32_t > ConnectCallback
Definition: socket_dev.h:188
OptionalDictField< std::string > local_address
Definition: socket_dev.h:155
static const char *const kResultCode
Definition: socket_dev.h:78
static const char *const kLocalPort
Definition: socket_dev.h:149
DictField< int32_t > port
Definition: socket_dev.h:132
static const char *const kSocketType
Definition: socket_dev.h:144
static const char *const kSocketId
Definition: socket_dev.h:64
static const char *const kUdp
Definition: socket_dev.h:50
ExtCompletionCallbackWithOutput< RecvFromInfo_Dev > RecvFromCallback
Definition: socket_dev.h:212
ExtCompletionCallbackWithOutput< SocketInfo_Dev > GetInfoCallback
Definition: socket_dev.h:245
DictField< int32_t > socket_id
Definition: socket_dev.h:66
ExtCompletionCallbackWithOutput< int32_t > SetMulticastLoopbackModeCallback
Definition: socket_dev.h:271
DictField< int32_t > result_code
Definition: socket_dev.h:97
ExtCompletionCallbackWithOutput< ReadInfo_Dev > ReadCallback
Definition: socket_dev.h:202
bool Populate(const PP_Ext_Socket_RecvFromInfo_Dev &value)
int32_t JoinGroup(int32_t socket_id, const std::string &address, const JoinGroupCallback &callback)
bool Populate(const PP_Ext_Socket_NetworkInterface_Dev &value)
int32_t Accept(int32_t socket_id, const AcceptCallback &callback)
DictField< VarArrayBuffer > data
Definition: socket_dev.h:98
ExtCompletionCallbackWithOutput< int32_t > SetMulticastTimeToLiveCallback
Definition: socket_dev.h:264
static const char *const kLocalAddress
Definition: socket_dev.h:148
OptionalDictField< std::string > peer_address
Definition: socket_dev.h:153
static const char *const kResultCode
Definition: socket_dev.h:124
int32_t GetNetworkList(const GetNetworkListCallback &callback)
static const char *const kSocketId
Definition: socket_dev.h:79
int32_t Connect(int32_t socket_id, const std::string &hostname, int32_t port, const ConnectCallback &callback)
void Disconnect(int32_t socket_id)
static const char *const kConnected
Definition: socket_dev.h:145
static const char *const kData
Definition: socket_dev.h:125
ExtCompletionCallbackWithOutput< std::vector< NetworkInterface_Dev > > GetNetworkListCallback
Definition: socket_dev.h:250
bool Populate(const PP_Ext_Socket_AcceptInfo_Dev &value)
int32_t Bind(int32_t socket_id, const std::string &address, int32_t port, const BindCallback &callback)
static const char *const kResultCode
Definition: socket_dev.h:94
int32_t RecvFrom(int32_t socket_id, const Optional< int32_t > &buffer_size, const RecvFromCallback &callback)
DictField< VarArrayBuffer > data
Definition: socket_dev.h:130
int32_t GetJoinedGroups(int32_t socket_id, const GetJoinedGroupsCallback &callback)
ExtCompletionCallbackWithOutput< int32_t > LeaveGroupCallback
Definition: socket_dev.h:258
ExtCompletionCallbackWithOutput< int32_t > BindCallback
Definition: socket_dev.h:194
DictField< std::string > name
Definition: socket_dev.h:171
ExtCompletionCallbackWithOutput< AcceptInfo_Dev > AcceptCallback
Definition: socket_dev.h:231
bool Populate(const PP_Ext_Socket_SocketInfo_Dev &value)
VarDictionary CreateOptions_Dev
Definition: socket_dev.h:53
int32_t GetInfo(int32_t socket_id, const GetInfoCallback &callback)
DictField< std::string > address
Definition: socket_dev.h:172
int32_t SetNoDelay(int32_t socket_id, bool no_delay, const SetNoDelayCallback &callback)
bool Populate(const PP_Ext_Socket_ReadInfo_Dev &value)
ExtCompletionCallbackWithOutput< int32_t > JoinGroupCallback
Definition: socket_dev.h:253
int32_t Read(int32_t socket_id, const Optional< int32_t > &buffer_size, const ReadCallback &callback)
static const char *const kAddress
Definition: socket_dev.h:126
static const char *const kAddress
Definition: socket_dev.h:169
ExtCompletionCallbackWithOutput< CreateInfo_Dev > CreateCallback
Definition: socket_dev.h:181
int32_t SetMulticastTimeToLive(int32_t socket_id, int32_t ttl, const SetMulticastTimeToLiveCallback &callback)
static const char *const kTcp
Definition: socket_dev.h:49
OptionalDictField< int32_t > socket_id
Definition: socket_dev.h:82
static const char *const kPort
Definition: socket_dev.h:127
ExtCompletionCallbackWithOutput< WriteInfo_Dev > WriteCallback
Definition: socket_dev.h:207
DictField< SocketType_Dev > socket_type
Definition: socket_dev.h:151
OptionalDictField< int32_t > local_port
Definition: socket_dev.h:156
A generic type used for passing data types between the module and the page.
Definition: var.h:20
bool Populate(const PP_Var &var_value)
DictField< int32_t > result_code
Definition: socket_dev.h:129
static const char *const kPeerPort
Definition: socket_dev.h:147
ExtCompletionCallbackWithOutput< bool > SetKeepAliveCallback
Definition: socket_dev.h:234
static const char *const kPeerAddress
Definition: socket_dev.h:146
DictField< int32_t > bytes_written
Definition: socket_dev.h:112
int32_t LeaveGroup(int32_t socket_id, const std::string &address, const LeaveGroupCallback &callback)
OptionalDictField< int32_t > peer_port
Definition: socket_dev.h:154
int32_t Listen(int32_t socket_id, const std::string &address, int32_t port, const Optional< int32_t > &backlog, const ListenCallback &callback)
int32_t SetMulticastLoopbackMode(int32_t socket_id, bool enabled, const SetMulticastLoopbackModeCallback &callback)
int32_t Write(int32_t socket_id, const VarArrayBuffer &data, const WriteCallback &callback)
ExtCompletionCallbackWithOutput< std::vector< std::string > > GetJoinedGroupsCallback
Definition: socket_dev.h:278
ExtCompletionCallbackWithOutput< bool > SetNoDelayCallback
Definition: socket_dev.h:240
bool Populate(const PP_Ext_Socket_WriteInfo_Dev &value)
ExtCompletionCallbackWithOutput< int32_t > ListenCallback
Definition: socket_dev.h:224
int32_t SendTo(int32_t socket_id, const VarArrayBuffer &data, const std::string &address, int32_t port, const SendToCallback &callback)