nl:: Inet:: InterfaceAddressIterator
#include <src/inet/InetInterface.h>
Biến lặp cho danh sách địa chỉ IP giao diện mạng của hệ thống.
Tóm tắt
Sử dụng các đối tượng của lớp này để lặp lại danh sách địa chỉ IP giao diện mạng của hệ thống.
Các phương thức trên một thực thể riêng lẻ của lớp này không an toàn cho luồng; tuy nhiên, nhiều luồng có thể sử dụng đồng thời các thực thể riêng biệt.
Trên các hệ thống LwIP đa luồng, các thực thể an toàn cho luồng so với các luồng khác truy cập trạng thái LwIP toàn cầu với điều kiện: 1) các luồng khác chứa khóa lõi LwIP trong khi thay đổi danh sách netifs; và 2) bản thân đối tượng netif không bao giờ bị huỷ bỏ.
Trên các hệ thống dựa trên ổ cắm, vòng lặp luôn ổn định khi có những thay đổi đối với giao diện và/hoặc địa chỉ của hệ thống cơ bản.
Trên các hệ thống LwIP, việc lặp lại ổn định, ngoại trừ trường hợp giao diện được liên kết với địa chỉ hiện tại bị xoá. Trong trường hợp đó, việc lặp lại có thể kết thúc sớm.
Hàm khởi tạo và phá huỷ |
|
---|---|
InterfaceAddressIterator(void)
Tạo một đối tượng InterfaceAddressIterator.
|
|
~InterfaceAddressIterator(void)
Huỷ bỏ đối tượng InterfaceAddressIterator.
|
Hàm công khai |
|
---|---|
GetAddress(void)
|
Lấy địa chỉ giao diện hiện tại.
|
GetAddressWithPrefix(IPPrefix & addrWithPrefix)
|
void
Trả về IPPrefix chứa địa chỉ và độ dài tiền tố cho địa chỉ hiện tại.
|
GetIPv6PrefixLength(void)
|
uint8_t
Bí danh không dùng nữa cho
GetPrefixLength(void) |
GetInterface(void)
|
InterfaceId
Bí danh không dùng nữa cho
GetInterfaceId(void) |
GetInterfaceId(void)
|
InterfaceId
Trả về mã giao diện mạng được liên kết với địa chỉ giao diện hiện tại.
|
GetInterfaceName(char *nameBuf, size_t nameBufSize)
|
Lấy tên của giao diện mạng được liên kết với địa chỉ giao diện hiện tại.
|
GetPrefixLength(void)
|
uint8_t
Lấy tiền tố mạng liên kết với địa chỉ giao diện hiện tại.
|
HasBroadcastAddress(void)
|
bool
Trả về việc giao diện mạng liên kết với địa chỉ giao diện hiện tại có địa chỉ truyền tin IPv4 hay không.
|
HasCurrent(void)
|
bool
|
IsUp(void)
|
bool
Trả về việc liệu giao diện mạng được liên kết với địa chỉ giao diện hiện tại có hoạt động hay không.
|
Next(void)
|
bool
Di chuyển trình lặp đến địa chỉ giao diện tiếp theo.
|
SupportsMulticast(void)
|
bool
Trả về xem giao diện mạng được liên kết với địa chỉ giao diện hiện tại có hỗ trợ phát đa hướng hay không.
|
Hàm công khai
GetAddress
IPAddress GetAddress( void )
Lấy địa chỉ giao diện hiện tại.
Chi tiết | |
---|---|
Trả về |
địa chỉ giao diện hiện tại hoặc
IPAddress::Any nếu biến lặp được đặt ở ngoài cuối danh sách địa chỉ. |
GetAddressWithPrefix
void GetAddressWithPrefix( IPPrefix & addrWithPrefix )
Trả về IPPrefix chứa địa chỉ và độ dài tiền tố cho địa chỉ hiện tại.
GetIPv6PrefixLength
uint8_t GetIPv6PrefixLength( void )
Bí danh không dùng nữa cho GetPrefixLength(void)
GetInterfaceId
InterfaceId GetInterfaceId( void )
Trả về mã giao diện mạng được liên kết với địa chỉ giao diện hiện tại.
Chi tiết | |
---|---|
Trả về |
mã giao diện hoặc
INET_NULL_INTERFACEID nếu biến lặp được đặt ở cuối danh sách địa chỉ. |
GetInterfaceName
INET_ERROR GetInterfaceName( char *nameBuf, size_t nameBufSize )
Lấy tên của giao diện mạng được liên kết với địa chỉ giao diện hiện tại.
Writes the name of the network interface as \c NUL terminated text string at \c nameBuf.
Chi tiết | |||||||||
---|---|---|---|---|---|---|---|---|---|
Tham số |
|
||||||||
Giá trị trả về |
|
GetPrefixLength
uint8_t GetPrefixLength( void )
Lấy tiền tố mạng liên kết với địa chỉ giao diện hiện tại.
On LwIP, this method simply returns the hard-coded constant 64. Note Well: the standard subnet prefix on all links other than PPP links is 64 bits. On PPP links and some non-broadcast multipoint access links, the convention is either 127 bits or 128 bits, but it might be something else. On most platforms, the system's interface address structure can represent arbitrary prefix lengths between 0 and 128.
Chi tiết | |
---|---|
Trả về |
tiền tố mạng (tính bằng bit) hoặc 0 nếu biến lặp được đặt ở ngoài phần cuối của danh sách địa chỉ.
|
HasBroadcastAddress
bool HasBroadcastAddress( void )
Trả về việc giao diện mạng liên kết với địa chỉ giao diện hiện tại có địa chỉ truyền tin IPv4 hay không.
Chi tiết | |
---|---|
Trả về |
true nếu giao diện có địa chỉ truyền tin, false nếu không có hoặc nếu trình lặp không được định vị trên địa chỉ giao diện. |
HasCurrent
bool HasCurrent( void )
InterfaceAddressIterator
InterfaceAddressIterator( void )
Tạo một đối tượng InterfaceAddressIterator.
Bắt đầu trình lặp tại địa chỉ mạng đầu tiên. Trên một số nền tảng, hàm khởi tạo này có thể phân bổ tài nguyên mà hàm khởi tạo tái chế.
IsUp
bool IsUp( void )
Trả về việc liệu giao diện mạng được liên kết với địa chỉ giao diện hiện tại có hoạt động hay không.
Chi tiết | |
---|---|
Trả về |
true nếu giao diện mạng hiện tại không hoạt động, false nếu không có hoặc nếu trình lặp không được định vị trên địa chỉ giao diện. |
Tiếp theo
bool Next( void )
Di chuyển trình lặp đến địa chỉ giao diện tiếp theo.
Advances the iterator to the next interface address or to a position beyond the end of the address list. On LwIP, this method is thread-safe provided that: 1) other threads hold the LwIP core lock while mutating the netif list; and 2) netif objects themselves are never destroyed. Additionally, iteration on LwIP systems will terminate early if the current interface is removed from the list.
Chi tiết | |
---|---|
Trả về |
false nếu đã vượt quá giới hạn kết thúc, nếu không thì true . |
SupportsMulticast
bool SupportsMulticast( void )
Trả về xem giao diện mạng được liên kết với địa chỉ giao diện hiện tại có hỗ trợ phát đa hướng hay không.
Chi tiết | |
---|---|
Trả về |
true nếu phát đa hướng được hỗ trợ, false nếu không được hỗ trợ hoặc nếu biến lặp không được định vị trên một địa chỉ giao diện. |
~InterfaceAddressIterator
~InterfaceAddressIterator( void )
Huỷ bỏ đối tượng InterfaceAddressIterator.
Tái chế mọi tài nguyên do hàm khởi tạo phân bổ.