| Index: ppapi/cpp/private/network_list_private.cc
|
| diff --git a/ppapi/cpp/private/network_list_private.cc b/ppapi/cpp/private/network_list_private.cc
|
| index 1297aa3a09c65bc27200022ca2b789c902e08cf2..5a3a5be3d014f13502f6150e717df9d51c88cf46 100644
|
| --- a/ppapi/cpp/private/network_list_private.cc
|
| +++ b/ppapi/cpp/private/network_list_private.cc
|
| @@ -4,15 +4,19 @@
|
|
|
| #include "ppapi/cpp/private/network_list_private.h"
|
|
|
| +#include "ppapi/c/pp_errors.h"
|
| +#include "ppapi/cpp/array_output.h"
|
| +#include "ppapi/cpp/logging.h"
|
| #include "ppapi/cpp/module_impl.h"
|
| +#include "ppapi/cpp/net_address.h"
|
| #include "ppapi/cpp/var.h"
|
|
|
| namespace pp {
|
|
|
| namespace {
|
|
|
| -template <> const char* interface_name<PPB_NetworkList_Private>() {
|
| - return PPB_NETWORKLIST_PRIVATE_INTERFACE;
|
| +template <> const char* interface_name<PPB_NetworkList_Private_0_3>() {
|
| + return PPB_NETWORKLIST_PRIVATE_INTERFACE_0_3;
|
| }
|
|
|
| } // namespace
|
| @@ -26,84 +30,64 @@ NetworkListPrivate::NetworkListPrivate(PassRef, PP_Resource resource)
|
|
|
| // static
|
| bool NetworkListPrivate::IsAvailable() {
|
| - return has_interface<PPB_NetworkList_Private>();
|
| + return has_interface<PPB_NetworkList_Private_0_3>();
|
| }
|
|
|
| uint32_t NetworkListPrivate::GetCount() const {
|
| - if (!has_interface<PPB_NetworkList_Private>())
|
| + if (!has_interface<PPB_NetworkList_Private_0_3>())
|
| return 0;
|
| - return get_interface<PPB_NetworkList_Private>()->GetCount(pp_resource());
|
| + return get_interface<PPB_NetworkList_Private_0_3>()->GetCount(pp_resource());
|
| }
|
|
|
| std::string NetworkListPrivate::GetName(uint32_t index) const {
|
| - if (!has_interface<PPB_NetworkList_Private>())
|
| + if (!has_interface<PPB_NetworkList_Private_0_3>())
|
| return std::string();
|
| Var result(PASS_REF,
|
| - get_interface<PPB_NetworkList_Private>()->GetName(
|
| + get_interface<PPB_NetworkList_Private_0_3>()->GetName(
|
| pp_resource(), index));
|
| return result.is_string() ? result.AsString() : std::string();
|
| }
|
|
|
| PP_NetworkListType_Private NetworkListPrivate::GetType(uint32_t index) const {
|
| - if (!has_interface<PPB_NetworkList_Private>())
|
| + if (!has_interface<PPB_NetworkList_Private_0_3>())
|
| return PP_NETWORKLIST_ETHERNET;
|
| - return get_interface<PPB_NetworkList_Private>()->GetType(
|
| + return get_interface<PPB_NetworkList_Private_0_3>()->GetType(
|
| pp_resource(), index);
|
| }
|
|
|
| PP_NetworkListState_Private NetworkListPrivate::GetState(uint32_t index) const {
|
| - if (!has_interface<PPB_NetworkList_Private>())
|
| + if (!has_interface<PPB_NetworkList_Private_0_3>())
|
| return PP_NETWORKLIST_DOWN;
|
| - return get_interface<PPB_NetworkList_Private>()->GetState(
|
| + return get_interface<PPB_NetworkList_Private_0_3>()->GetState(
|
| pp_resource(), index);
|
| }
|
|
|
| -void NetworkListPrivate::GetIpAddresses(
|
| +int32_t NetworkListPrivate::GetIpAddresses(
|
| uint32_t index,
|
| - std::vector<PP_NetAddress_Private>* addresses) const {
|
| - if (!has_interface<PPB_NetworkList_Private>())
|
| - return;
|
| -
|
| - // Most network interfaces don't have more than 3 network
|
| - // interfaces.
|
| - addresses->resize(3);
|
| -
|
| - int32_t result = get_interface<PPB_NetworkList_Private>()->GetIpAddresses(
|
| - pp_resource(), index, &addresses->front(), addresses->size());
|
| -
|
| - if (result < 0) {
|
| - addresses->resize(0);
|
| - return;
|
| - }
|
| -
|
| - if (result <= static_cast<int32_t>(addresses->size())) {
|
| - addresses->resize(result);
|
| - return;
|
| - }
|
| -
|
| - addresses->resize(result);
|
| - result = get_interface<PPB_NetworkList_Private>()->GetIpAddresses(
|
| - pp_resource(), index, &addresses->front(), addresses->size());
|
| - if (result < 0) {
|
| - addresses->resize(0);
|
| - } else if (result < static_cast<int32_t>(addresses->size())) {
|
| - addresses->resize(result);
|
| - }
|
| + std::vector<NetAddress>* addresses) const {
|
| + if (!has_interface<PPB_NetworkList_Private_0_3>())
|
| + return PP_ERROR_NOINTERFACE;
|
| + if (!addresses)
|
| + return PP_ERROR_BADARGUMENT;
|
| +
|
| + ResourceArrayOutputAdapter<NetAddress> adapter(addresses);
|
| + return get_interface<PPB_NetworkList_Private_0_3>()->GetIpAddresses(
|
| + pp_resource(), index, adapter.pp_array_output());
|
| }
|
|
|
| std::string NetworkListPrivate::GetDisplayName(uint32_t index) const {
|
| - if (!has_interface<PPB_NetworkList_Private>())
|
| + if (!has_interface<PPB_NetworkList_Private_0_3>())
|
| return std::string();
|
| Var result(PASS_REF,
|
| - get_interface<PPB_NetworkList_Private>()->GetDisplayName(
|
| + get_interface<PPB_NetworkList_Private_0_3>()->GetDisplayName(
|
| pp_resource(), index));
|
| return result.is_string() ? result.AsString() : std::string();
|
| }
|
|
|
| uint32_t NetworkListPrivate::GetMTU(uint32_t index) const {
|
| - if (!has_interface<PPB_NetworkList_Private>())
|
| + if (!has_interface<PPB_NetworkList_Private_0_3>())
|
| return 0;
|
| - return get_interface<PPB_NetworkList_Private>()->GetMTU(
|
| + return get_interface<PPB_NetworkList_Private_0_3>()->GetMTU(
|
| pp_resource(), index);
|
| }
|
|
|
|
|