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 PPAPI_CPP_PRIVATE_UDP_SOCKET_PRIVATE_H_ 6 #define PPAPI_CPP_PRIVATE_UDP_SOCKET_PRIVATE_H_ 7 8 #include "ppapi/c/pp_stdint.h" 9 #include "ppapi/c/private/ppb_udp_socket_private.h" 10 #include "ppapi/cpp/resource.h" 11 12 namespace pp { 13 14 class CompletionCallback; 15 class InstanceHandle; 16 class Var; 17 18 class UDPSocketPrivate : public Resource { 19 public: 20 explicit UDPSocketPrivate(const InstanceHandle& instance); 21 22 // Returns true if the required interface is available. 23 static bool IsAvailable(); 24 25 int32_t SetSocketFeature(PP_UDPSocketFeature_Private name, const Var& value); 26 int32_t Bind(const PP_NetAddress_Private* addr, 27 const CompletionCallback& callback); 28 bool GetBoundAddress(PP_NetAddress_Private* addr); 29 int32_t RecvFrom(char* buffer, 30 int32_t num_bytes, 31 const CompletionCallback& callback); 32 bool GetRecvFromAddress(PP_NetAddress_Private* addr); 33 int32_t SendTo(const char* buffer, 34 int32_t num_bytes, 35 const PP_NetAddress_Private* addr, 36 const CompletionCallback& callback); 37 void Close(); 38 }; 39 40 } // namespace pp 41 42 #endif // PPAPI_CPP_PRIVATE_UDP_SOCKET_PRIVATE_H_ 43