| Index: libraries/nacl-mounts/ppapi/c/private/ppb_net_address_private.h
|
| ===================================================================
|
| --- libraries/nacl-mounts/ppapi/c/private/ppb_net_address_private.h (revision 0)
|
| +++ libraries/nacl-mounts/ppapi/c/private/ppb_net_address_private.h (revision 0)
|
| @@ -0,0 +1,187 @@
|
| +/* Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| + * Use of this source code is governed by a BSD-style license that can be
|
| + * found in the LICENSE file.
|
| + */
|
| +
|
| +/* From private/ppb_net_address_private.idl,
|
| + * modified Wed Mar 21 11:10:47 2012.
|
| + */
|
| +
|
| +#ifndef PPAPI_C_PRIVATE_PPB_NET_ADDRESS_PRIVATE_H_
|
| +#define PPAPI_C_PRIVATE_PPB_NET_ADDRESS_PRIVATE_H_
|
| +
|
| +#include "ppapi/c/pp_bool.h"
|
| +#include "ppapi/c/pp_macros.h"
|
| +#include "ppapi/c/pp_module.h"
|
| +#include "ppapi/c/pp_stdint.h"
|
| +#include "ppapi/c/pp_var.h"
|
| +
|
| +#define PPB_NETADDRESS_PRIVATE_INTERFACE_0_1 "PPB_NetAddress_Private;0.1"
|
| +#define PPB_NETADDRESS_PRIVATE_INTERFACE_1_0 "PPB_NetAddress_Private;1.0"
|
| +#define PPB_NETADDRESS_PRIVATE_INTERFACE_1_1 "PPB_NetAddress_Private;1.1"
|
| +#define PPB_NETADDRESS_PRIVATE_INTERFACE PPB_NETADDRESS_PRIVATE_INTERFACE_1_1
|
| +
|
| +/**
|
| + * @file
|
| + * This file defines the <code>PPB_NetAddress_Private</code> interface.
|
| + */
|
| +
|
| +
|
| +/**
|
| + * @addtogroup Enums
|
| + * @{
|
| + */
|
| +typedef enum {
|
| + /**
|
| + * The address family is unspecified.
|
| + */
|
| + PP_NETADDRESSFAMILY_UNSPECIFIED = 0,
|
| + /**
|
| + * The Internet Protocol version 4 (IPv4) address family.
|
| + */
|
| + PP_NETADDRESSFAMILY_IPV4 = 1,
|
| + /**
|
| + * The Internet Protocol version 6 (IPv6) address family.
|
| + */
|
| + PP_NETADDRESSFAMILY_IPV6 = 2
|
| +} PP_NetAddressFamily_Private;
|
| +PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_NetAddressFamily_Private, 4);
|
| +/**
|
| + * @}
|
| + */
|
| +
|
| +/**
|
| + * @addtogroup Structs
|
| + * @{
|
| + */
|
| +/**
|
| + * This is an opaque type holding a network address. Plugins must
|
| + * never access members of this struct directly.
|
| + */
|
| +struct PP_NetAddress_Private {
|
| + uint32_t size;
|
| + char data[128];
|
| +};
|
| +PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_NetAddress_Private, 132);
|
| +/**
|
| + * @}
|
| + */
|
| +
|
| +/**
|
| + * @addtogroup Interfaces
|
| + * @{
|
| + */
|
| +/**
|
| + * The <code>PPB_NetAddress_Private</code> interface provides operations on
|
| + * network addresses.
|
| + */
|
| +struct PPB_NetAddress_Private_1_1 {
|
| + /**
|
| + * Returns PP_TRUE if the two addresses are equal (host and port).
|
| + */
|
| + PP_Bool (*AreEqual)(const struct PP_NetAddress_Private* addr1,
|
| + const struct PP_NetAddress_Private* addr2);
|
| + /**
|
| + * Returns PP_TRUE if the two addresses refer to the same host.
|
| + */
|
| + PP_Bool (*AreHostsEqual)(const struct PP_NetAddress_Private* addr1,
|
| + const struct PP_NetAddress_Private* addr2);
|
| + /**
|
| + * Returns a human-readable description of the network address, optionally
|
| + * including the port (e.g., "192.168.0.1", "192.168.0.1:99", or "[::1]:80"),
|
| + * or an undefined var on failure.
|
| + */
|
| + struct PP_Var (*Describe)(PP_Module module,
|
| + const struct PP_NetAddress_Private* addr,
|
| + PP_Bool include_port);
|
| + /**
|
| + * Replaces the port in the given source address. Returns PP_TRUE on success.
|
| + */
|
| + PP_Bool (*ReplacePort)(const struct PP_NetAddress_Private* src_addr,
|
| + uint16_t port,
|
| + struct PP_NetAddress_Private* addr_out);
|
| + /**
|
| + * Gets the "any" address (for IPv4 or IPv6); for use with UDP Bind.
|
| + */
|
| + void (*GetAnyAddress)(PP_Bool is_ipv6, struct PP_NetAddress_Private* addr);
|
| + /**
|
| + * Gets the address family.
|
| + */
|
| + PP_NetAddressFamily_Private(*GetFamily)(
|
| + const struct PP_NetAddress_Private* addr);
|
| + /**
|
| + * Gets the port. The port is returned in host byte order.
|
| + */
|
| + uint16_t (*GetPort)(const struct PP_NetAddress_Private* addr);
|
| + /**
|
| + * Gets the address. The output, address, must be large enough for the
|
| + * current socket family. The output will be the binary representation of an
|
| + * address for the current socket family. For IPv4 and IPv6 the address is in
|
| + * network byte order. PP_TRUE is returned if the address was successfully
|
| + * retrieved.
|
| + */
|
| + PP_Bool (*GetAddress)(const struct PP_NetAddress_Private* addr,
|
| + void* address,
|
| + uint16_t address_size);
|
| + /**
|
| + * Returns ScopeID for IPv6 addresses or 0 for IPv4.
|
| + */
|
| + uint32_t (*GetScopeID)(const struct PP_NetAddress_Private* addr);
|
| + /**
|
| + * Creates NetAddress with the specified IPv4 address and port
|
| + * number.
|
| + */
|
| + void (*CreateFromIPv4Address)(const uint8_t ip[4],
|
| + uint16_t port,
|
| + struct PP_NetAddress_Private* addr_out);
|
| + /**
|
| + * Creates NetAddress with the specified IPv6 address, scope_id and
|
| + * port number.
|
| + */
|
| + void (*CreateFromIPv6Address)(const uint8_t ip[16],
|
| + uint32_t scope_id,
|
| + uint16_t port,
|
| + struct PP_NetAddress_Private* addr_out);
|
| +};
|
| +
|
| +typedef struct PPB_NetAddress_Private_1_1 PPB_NetAddress_Private;
|
| +
|
| +struct PPB_NetAddress_Private_0_1 {
|
| + PP_Bool (*AreEqual)(const struct PP_NetAddress_Private* addr1,
|
| + const struct PP_NetAddress_Private* addr2);
|
| + PP_Bool (*AreHostsEqual)(const struct PP_NetAddress_Private* addr1,
|
| + const struct PP_NetAddress_Private* addr2);
|
| + struct PP_Var (*Describe)(PP_Module module,
|
| + const struct PP_NetAddress_Private* addr,
|
| + PP_Bool include_port);
|
| + PP_Bool (*ReplacePort)(const struct PP_NetAddress_Private* src_addr,
|
| + uint16_t port,
|
| + struct PP_NetAddress_Private* addr_out);
|
| + void (*GetAnyAddress)(PP_Bool is_ipv6, struct PP_NetAddress_Private* addr);
|
| +};
|
| +
|
| +struct PPB_NetAddress_Private_1_0 {
|
| + PP_Bool (*AreEqual)(const struct PP_NetAddress_Private* addr1,
|
| + const struct PP_NetAddress_Private* addr2);
|
| + PP_Bool (*AreHostsEqual)(const struct PP_NetAddress_Private* addr1,
|
| + const struct PP_NetAddress_Private* addr2);
|
| + struct PP_Var (*Describe)(PP_Module module,
|
| + const struct PP_NetAddress_Private* addr,
|
| + PP_Bool include_port);
|
| + PP_Bool (*ReplacePort)(const struct PP_NetAddress_Private* src_addr,
|
| + uint16_t port,
|
| + struct PP_NetAddress_Private* addr_out);
|
| + void (*GetAnyAddress)(PP_Bool is_ipv6, struct PP_NetAddress_Private* addr);
|
| + PP_NetAddressFamily_Private(*GetFamily)(
|
| + const struct PP_NetAddress_Private* addr);
|
| + uint16_t (*GetPort)(const struct PP_NetAddress_Private* addr);
|
| + PP_Bool (*GetAddress)(const struct PP_NetAddress_Private* addr,
|
| + void* address,
|
| + uint16_t address_size);
|
| +};
|
| +/**
|
| + * @}
|
| + */
|
| +
|
| +#endif /* PPAPI_C_PRIVATE_PPB_NET_ADDRESS_PRIVATE_H_ */
|
| +
|
|
|