nsINetAddr.idl (2545B)
1 /* vim: et ts=4 sw=4 tw=80 2 */ 3 /* This Source Code Form is subject to the terms of the Mozilla Public 4 * License, v. 2.0. If a copy of the MPL was not distributed with this 5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 6 7 #include "nsISupports.idl" 8 9 %{ C++ 10 namespace mozilla { 11 namespace net { 12 union NetAddr; 13 } 14 } 15 %} 16 native NetAddr(mozilla::net::NetAddr); 17 18 /** 19 * nsINetAddr 20 * 21 * This interface represents a native NetAddr struct in a readonly 22 * interface. 23 */ 24 [scriptable, builtinclass, uuid(652B9EC5-D159-45D7-9127-50BB559486CD)] 25 interface nsINetAddr : nsISupports 26 { 27 /** 28 * @return the address family of the network address, which corresponds to 29 * one of the FAMILY_ constants. 30 */ 31 readonly attribute unsigned short family; 32 33 /** 34 * @return Either the IP address (FAMILY_INET, FAMILY_INET6) or the path 35 * (FAMILY_LOCAL) in string form. IP addresses are in the format produced by 36 * mozilla::net::NetAddr::ToStringBuffer. 37 * 38 * Note: Paths for FAMILY_LOCAL may have length limitations which are 39 * implementation dependent and not documented as part of this interface. 40 */ 41 readonly attribute AUTF8String address; 42 43 /** 44 * @return the port number for a FAMILY_INET or FAMILY_INET6 address. 45 * 46 * @throws NS_ERROR_NOT_AVAILABLE if the address family is not FAMILY_INET or 47 * FAMILY_INET6. 48 */ 49 readonly attribute unsigned short port; 50 51 /** 52 * @return the flow label for a FAMILY_INET6 address. 53 * 54 * @see http://www.ietf.org/rfc/rfc3697.txt 55 * 56 * @throws NS_ERROR_NOT_AVAILABLE if the address family is not FAMILY_INET6 57 */ 58 readonly attribute unsigned long flow; 59 60 /** 61 * @return the address scope of a FAMILY_INET6 address. 62 * 63 * @see http://tools.ietf.org/html/rfc4007 64 * 65 * @throws NS_ERROR_NOT_AVAILABLE if the address family is not FAMILY_INET6 66 */ 67 readonly attribute unsigned long scope; 68 69 /** 70 * @return whether a FAMILY_INET6 address is mapped from FAMILY_INET. 71 * 72 * @throws NS_ERROR_NOT_AVAILABLE if the address family is not FAMILY_INET6 73 */ 74 readonly attribute boolean isV4Mapped; 75 76 /** 77 * Network address families. These correspond to all the network address 78 * families supported by the NetAddr struct. 79 */ 80 const unsigned long FAMILY_INET = 1; 81 const unsigned long FAMILY_INET6 = 2; 82 const unsigned long FAMILY_LOCAL = 3; 83 84 /** 85 * @return the underlying NetAddr struct. 86 */ 87 [noscript] NetAddr getNetAddr(); 88 };