17d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 27d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 37d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// found in the LICENSE file. 47d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 57d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#ifndef PPAPI_THUNK_PPB_TCP_SOCKET_API_H_ 67d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#define PPAPI_THUNK_PPB_TCP_SOCKET_API_H_ 77d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 87d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "base/memory/ref_counted.h" 9eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "ppapi/c/ppb_tcp_socket.h" 107d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "ppapi/thunk/ppapi_thunk_export.h" 117d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 127d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)namespace ppapi { 137d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 147d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)class TrackedCallback; 157d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 167d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)namespace thunk { 177d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 187d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)class PPAPI_THUNK_EXPORT PPB_TCPSocket_API { 197d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) public: 207d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) virtual ~PPB_TCPSocket_API() {} 217d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 2268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) virtual int32_t Bind(PP_Resource addr, 2368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) scoped_refptr<TrackedCallback> callback) = 0; 247d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) virtual int32_t Connect(PP_Resource addr, 257d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) scoped_refptr<TrackedCallback> callback) = 0; 267d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) virtual PP_Resource GetLocalAddress() = 0; 277d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) virtual PP_Resource GetRemoteAddress() = 0; 287d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) virtual int32_t Read(char* buffer, 297d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) int32_t bytes_to_read, 307d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) scoped_refptr<TrackedCallback> callback) = 0; 317d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) virtual int32_t Write(const char* buffer, 327d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) int32_t bytes_to_write, 337d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) scoped_refptr<TrackedCallback> callback) = 0; 3468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) virtual int32_t Listen(int32_t backlog, 3568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) scoped_refptr<TrackedCallback> callback) = 0; 3668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) virtual int32_t Accept(PP_Resource* accepted_tcp_socket, 3768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) scoped_refptr<TrackedCallback> callback) = 0; 387d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) virtual void Close() = 0; 39eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch virtual int32_t SetOption(PP_TCPSocket_Option name, 407d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) const PP_Var& value, 417d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) scoped_refptr<TrackedCallback> callback) = 0; 427d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)}; 437d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 447d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)} // namespace thunk 457d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)} // namespace ppapi 467d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 477d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#endif // PPAPI_THUNK_PPB_TCP_SOCKET_API_H_ 48