nl:: Inet:: InterfaceIterator
#include <src/inet/InetInterface.h>
Biến lặp cho danh sách 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 giao diện mạng 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 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 chung, miễn là các luồng khác giữ khoá lõi LwIP trong khi thay đổi danh sách netifs và 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 của hệ thống cơ bản.
Trên các hệ thống LwIP, vòng lặp là ổn định, ngoại trừ trường hợp giao diện đang được chọn bị xoá khỏi danh sách, trong trường hợp đó, việc lặp lại sẽ kết thúc ngay lập tức.
Hàm khởi tạo và phá huỷ |
|
---|---|
InterfaceIterator(void)
Tạo một đối tượng InterfaceIterator.
|
|
~InterfaceIterator(void)
Huỷ bỏ đối tượng InterfaceIterator.
|
Thuộc tính được bảo vệ |
|
---|---|
mCurIntf
|
size_t
|
mCurNetif
|
struct netif *
|
mIntfArray
|
struct if_nameindex *
|
mIntfFlags
|
short
|
mIntfFlagsCached
|
bool
|
Hàm công khai |
|
---|---|
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 tại vị trí biến lặp hiện tại.
|
GetInterfaceName(char *nameBuf, size_t nameBufSize)
|
Lấy tên của giao diện mạng hiện tại.
|
HasBroadcastAddress(void)
|
bool
Trả về việc giao diện mạng hiện tại có địa chỉ truyền tin hay không.
|
HasCurrent(void)
|
bool
Kiểm tra xem trình lặp lại có được định vị trên một giao diện hay không.
|
IsUp(void)
|
bool
Trả về xem giao diện mạng hiện tại có hoạt động hay không.
|
Next(void)
|
bool
Chuyển trình lặp sang giao diện mạng tiếp theo.
|
SupportsMulticast(void)
|
bool
Trả về xem giao diện mạng hiện tại có hỗ trợ phát đa hướng hay không.
|
Hàm được bảo vệ |
|
---|---|
GetFlags(void)
|
short
Trả về giá trị ifr_flags cho giao diện hiện tại.
|
Thuộc tính được bảo vệ
mCurIntf
size_t mCurIntf
mCurNetif
struct netif * mCurNetif
mIntfArray
struct if_nameindex * mIntfArray
mIntfFlags
short mIntfFlags
mIntfFlagsCached
bool mIntfFlagsCached
Hàm công khai
GetInterfaceId
InterfaceId GetInterfaceId( void )
Trả về mã giao diện mạng tại vị trí biến lặp hiện tại.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Giá trị trả về |
|
GetInterfaceName
INET_ERROR GetInterfaceName( char *nameBuf, size_t nameBufSize )
Lấy tên của giao diện mạng hiện tại.
Writes the name of the network interface as \c NUL terminated text string at \c nameBuf.
Thông tin chi tiết | |||||||||
---|---|---|---|---|---|---|---|---|---|
Tham số |
|
||||||||
Giá trị trả về |
|
HasBroadcastAddress
bool HasBroadcastAddress( void )
Trả về việc giao diện mạng hiện tại có địa chỉ truyền tin hay không.
Thông tin chi tiết | |
---|---|
Trả về |
true nếu giao diện mạng hiện tại có địa chỉ truyền tin, false nếu không có hoặc nếu trình lặp được đặt ở ngoài cuối danh sách. |
HasCurrent
bool HasCurrent( void )
Kiểm tra xem trình lặp lại có được định vị trên một giao diện hay không.
Kiểm tra xem trình lặp lại có được định vị trên một địa chỉ giao diện hay không.
Thông tin chi tiết | |
---|---|
Trả về |
true nếu trình lặp được đặt trên một giao diện; false nếu được đặt ở bên ngoài cuối danh sách giao diện. |
Trả về |
true nếu biến lặp được đặt trên một địa chỉ giao diện; false nếu được đặt ở bên ngoài cuối danh sách địa chỉ. |
InterfaceIterator
InterfaceIterator( void )
Tạo một đối tượng InterfaceIterator.
Khởi động trình lặp trên giao diện 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ề xem giao diện mạng hiện tại có hoạt động hay không.
Thông tin 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 được đặt ở cuối danh sách. |
Tiếp theo
bool Next( void )
Chuyển trình lặp sang giao diện mạng tiếp theo.
Advances the internal iterator to the next network interface or to a position beyond the end of the interface list. On multi-threaded LwIP systems, this method is thread-safe relative to other threads accessing the global LwIP state provided that: 1) the other threads hold the LwIP core lock while mutating the list of netifs; and 2) netif objects themselves are never destroyed. Iteration is stable in the face of changes to the underlying system's interfaces, *except* in the case of LwIP systems when the currently selected interface is removed from the list, which causes iteration to end immediately.
Thông tin 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 hiện tại có hỗ trợ phát đa hướng hay không.
Thông tin chi tiết | |
---|---|
Trả về |
Là giá trị
true nếu giao diện mạng hiện tại hỗ trợ phát đa hướng, false nếu không hỗ trợ hoặc nếu trình lặp được đặt ở ngoài cuối danh sách. |
~InterfaceIterator
~InterfaceIterator( void )
Huỷ bỏ đối tượng InterfaceIterator.
Tái chế mọi tài nguyên do hàm khởi tạo phân bổ.
Hàm được bảo vệ
GetFlags
short GetFlags( void )
Trả về giá trị ifr_flags cho giao diện hiện tại.