| Index: ppapi/cpp/tcp_socket.cc
|
| diff --git a/ppapi/cpp/tcp_socket.cc b/ppapi/cpp/tcp_socket.cc
|
| index ab08ff3626c66b36da23094ca5305ed286468177..900d2ad4959e78bf84ac180ac703ff10cb64dd97 100644
|
| --- a/ppapi/cpp/tcp_socket.cc
|
| +++ b/ppapi/cpp/tcp_socket.cc
|
| @@ -21,13 +21,20 @@ template <> const char* interface_name<PPB_TCPSocket_1_1>() {
|
| return PPB_TCPSOCKET_INTERFACE_1_1;
|
| }
|
|
|
| +template <> const char* interface_name<PPB_TCPSocket_1_2>() {
|
| + return PPB_TCPSOCKET_INTERFACE_1_2;
|
| +}
|
| +
|
| } // namespace
|
|
|
| TCPSocket::TCPSocket() {
|
| }
|
|
|
| TCPSocket::TCPSocket(const InstanceHandle& instance) {
|
| - if (has_interface<PPB_TCPSocket_1_1>()) {
|
| + if (has_interface<PPB_TCPSocket_1_2>()) {
|
| + PassRefFromConstructor(get_interface<PPB_TCPSocket_1_2>()->Create(
|
| + instance.pp_instance()));
|
| + } else if (has_interface<PPB_TCPSocket_1_1>()) {
|
| PassRefFromConstructor(get_interface<PPB_TCPSocket_1_1>()->Create(
|
| instance.pp_instance()));
|
| } else if (has_interface<PPB_TCPSocket_1_0>()) {
|
| @@ -53,12 +60,17 @@ TCPSocket& TCPSocket::operator=(const TCPSocket& other) {
|
|
|
| // static
|
| bool TCPSocket::IsAvailable() {
|
| - return has_interface<PPB_TCPSocket_1_1>() ||
|
| + return has_interface<PPB_TCPSocket_1_2>() ||
|
| + has_interface<PPB_TCPSocket_1_1>() ||
|
| has_interface<PPB_TCPSocket_1_0>();
|
| }
|
|
|
| int32_t TCPSocket::Bind(const NetAddress& addr,
|
| const CompletionCallback& callback) {
|
| + if (has_interface<PPB_TCPSocket_1_2>()) {
|
| + return get_interface<PPB_TCPSocket_1_2>()->Bind(
|
| + pp_resource(), addr.pp_resource(), callback.pp_completion_callback());
|
| + }
|
| if (has_interface<PPB_TCPSocket_1_1>()) {
|
| return get_interface<PPB_TCPSocket_1_1>()->Bind(
|
| pp_resource(), addr.pp_resource(), callback.pp_completion_callback());
|
| @@ -68,6 +80,10 @@ int32_t TCPSocket::Bind(const NetAddress& addr,
|
|
|
| int32_t TCPSocket::Connect(const NetAddress& addr,
|
| const CompletionCallback& callback) {
|
| + if (has_interface<PPB_TCPSocket_1_2>()) {
|
| + return get_interface<PPB_TCPSocket_1_2>()->Connect(
|
| + pp_resource(), addr.pp_resource(), callback.pp_completion_callback());
|
| + }
|
| if (has_interface<PPB_TCPSocket_1_1>()) {
|
| return get_interface<PPB_TCPSocket_1_1>()->Connect(
|
| pp_resource(), addr.pp_resource(), callback.pp_completion_callback());
|
| @@ -80,6 +96,11 @@ int32_t TCPSocket::Connect(const NetAddress& addr,
|
| }
|
|
|
| NetAddress TCPSocket::GetLocalAddress() const {
|
| + if (has_interface<PPB_TCPSocket_1_2>()) {
|
| + return NetAddress(
|
| + PASS_REF,
|
| + get_interface<PPB_TCPSocket_1_2>()->GetLocalAddress(pp_resource()));
|
| + }
|
| if (has_interface<PPB_TCPSocket_1_1>()) {
|
| return NetAddress(
|
| PASS_REF,
|
| @@ -94,6 +115,11 @@ NetAddress TCPSocket::GetLocalAddress() const {
|
| }
|
|
|
| NetAddress TCPSocket::GetRemoteAddress() const {
|
| + if (has_interface<PPB_TCPSocket_1_2>()) {
|
| + return NetAddress(
|
| + PASS_REF,
|
| + get_interface<PPB_TCPSocket_1_2>()->GetRemoteAddress(pp_resource()));
|
| + }
|
| if (has_interface<PPB_TCPSocket_1_1>()) {
|
| return NetAddress(
|
| PASS_REF,
|
| @@ -110,6 +136,11 @@ NetAddress TCPSocket::GetRemoteAddress() const {
|
| int32_t TCPSocket::Read(char* buffer,
|
| int32_t bytes_to_read,
|
| const CompletionCallback& callback) {
|
| + if (has_interface<PPB_TCPSocket_1_2>()) {
|
| + return get_interface<PPB_TCPSocket_1_2>()->Read(
|
| + pp_resource(), buffer, bytes_to_read,
|
| + callback.pp_completion_callback());
|
| + }
|
| if (has_interface<PPB_TCPSocket_1_1>()) {
|
| return get_interface<PPB_TCPSocket_1_1>()->Read(
|
| pp_resource(), buffer, bytes_to_read,
|
| @@ -126,6 +157,11 @@ int32_t TCPSocket::Read(char* buffer,
|
| int32_t TCPSocket::Write(const char* buffer,
|
| int32_t bytes_to_write,
|
| const CompletionCallback& callback) {
|
| + if (has_interface<PPB_TCPSocket_1_2>()) {
|
| + return get_interface<PPB_TCPSocket_1_2>()->Write(
|
| + pp_resource(), buffer, bytes_to_write,
|
| + callback.pp_completion_callback());
|
| + }
|
| if (has_interface<PPB_TCPSocket_1_1>()) {
|
| return get_interface<PPB_TCPSocket_1_1>()->Write(
|
| pp_resource(), buffer, bytes_to_write,
|
| @@ -141,6 +177,10 @@ int32_t TCPSocket::Write(const char* buffer,
|
|
|
| int32_t TCPSocket::Listen(int32_t backlog,
|
| const CompletionCallback& callback) {
|
| + if (has_interface<PPB_TCPSocket_1_2>()) {
|
| + return get_interface<PPB_TCPSocket_1_2>()->Listen(
|
| + pp_resource(), backlog, callback.pp_completion_callback());
|
| + }
|
| if (has_interface<PPB_TCPSocket_1_1>()) {
|
| return get_interface<PPB_TCPSocket_1_1>()->Listen(
|
| pp_resource(), backlog, callback.pp_completion_callback());
|
| @@ -150,6 +190,10 @@ int32_t TCPSocket::Listen(int32_t backlog,
|
|
|
| int32_t TCPSocket::Accept(
|
| const CompletionCallbackWithOutput<TCPSocket>& callback) {
|
| + if (has_interface<PPB_TCPSocket_1_2>()) {
|
| + return get_interface<PPB_TCPSocket_1_2>()->Accept(
|
| + pp_resource(), callback.output(), callback.pp_completion_callback());
|
| + }
|
| if (has_interface<PPB_TCPSocket_1_1>()) {
|
| return get_interface<PPB_TCPSocket_1_1>()->Accept(
|
| pp_resource(), callback.output(), callback.pp_completion_callback());
|
| @@ -158,7 +202,9 @@ int32_t TCPSocket::Accept(
|
| }
|
|
|
| void TCPSocket::Close() {
|
| - if (has_interface<PPB_TCPSocket_1_1>()) {
|
| + if (has_interface<PPB_TCPSocket_1_2>()) {
|
| + get_interface<PPB_TCPSocket_1_2>()->Close(pp_resource());
|
| + } else if (has_interface<PPB_TCPSocket_1_1>()) {
|
| get_interface<PPB_TCPSocket_1_1>()->Close(pp_resource());
|
| } else if (has_interface<PPB_TCPSocket_1_0>()) {
|
| get_interface<PPB_TCPSocket_1_0>()->Close(pp_resource());
|
| @@ -168,6 +214,10 @@ void TCPSocket::Close() {
|
| int32_t TCPSocket::SetOption(PP_TCPSocket_Option name,
|
| const Var& value,
|
| const CompletionCallback& callback) {
|
| + if (has_interface<PPB_TCPSocket_1_2>()) {
|
| + return get_interface<PPB_TCPSocket_1_2>()->SetOption(
|
| + pp_resource(), name, value.pp_var(), callback.pp_completion_callback());
|
| + }
|
| if (has_interface<PPB_TCPSocket_1_1>()) {
|
| return get_interface<PPB_TCPSocket_1_1>()->SetOption(
|
| pp_resource(), name, value.pp_var(), callback.pp_completion_callback());
|
|
|