nl :: Inet :: InterfaceIterator
#include <src/inet/InetInterface.h>
Trình lặp lại cho danh sách các giao diện mạng hệ thống.
Tóm lược
Sử dụng các đối tượng của lớp này để lặp lại danh sách các giao diện mạng hệ thống.
Phương pháp trên một thể hiện cá nhân của lớp này không phải là thread-safe; tuy nhiên các trường hợp riêng biệt có thể được sử dụng đồng thời bởi nhiều luồng.
Trên các hệ thống LwIP đa luồng, các cá thể là luồng an toàn so với các luồng khác truy cập trạng thái LwIP chung với điều kiện là các luồng khác giữ khóa lõi LwIP trong khi thay đổi danh sách các netif và bản thân đối tượng netif đó không bao giờ bị phá hủy.
Trên các hệ thống dựa trên ổ cắm, sự lặp lại luôn ổn định khi đối mặt với những thay đổi đối với các giao diện của hệ thống cơ bản.
Trên các hệ thống LwIP, quá trình lặp là ổn định ngoại trừ trường hợp giao diện đang được chọn bị xóa khỏi danh sách, trong trường hợp này, quá trình lặp kết thúc ngay lập tức.
Người xây dựng và Người phá hủy | |
---|---|
InterfaceIterator (void) Xây dựng một InterfaceIterator đối tượng. | |
~InterfaceIterator (void) Phá hủy một InterfaceIterator đối tượng. |
Thuộc tính được bảo vệ | |
---|---|
mCurIntf | size_t |
mCurNetif | struct netif * |
mIntfArray | struct if_nameindex * |
mIntfFlags | short |
mIntfFlagsCached | bool |
Chức năng công cộng | |
---|---|
GetInterface (void) | InterfaceId Alias phản đối cho GetInterfaceId(void) |
GetInterfaceId (void) | InterfaceId Trả về id giao diện mạng tại vị trí trình vòng 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ề giao diện mạng hiện tại có địa chỉ quảng bá hay không. |
HasCurrent (void) | bool Kiểm tra xem trình lặp có được định vị trên một giao diện hay không. |
IsUp (void) | bool Trả về giao diện mạng hiện tại có được bật hay không. |
Next (void) | bool Chuyển trình lặp tới giao diện mạng tiếp theo. |
SupportsMulticast (void) | bool Trả về giao diện mạng hiện tại có hỗ trợ phát đa hướng hay không. |
Các chức năng đượ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
Chức năng công cộng
GetInterfaceId
InterfaceId GetInterfaceId( void )
Trả về id giao diện mạng tại vị trí trình vòng lặp hiện tại.
Chi tiết | |||||
---|---|---|---|---|---|
Giá trị trả lại |
|
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.
Chi tiết | |||||||||
---|---|---|---|---|---|---|---|---|---|
Thông số |
| ||||||||
Giá trị trả lại |
|
HasBroadcastAddress
bool HasBroadcastAddress( void )
Trả về giao diện mạng hiện tại có địa chỉ quảng bá hay không.
Chi tiết | |
---|---|
Lợi nhuận | true nếu giao diện mạng hiện nay có một địa chỉ quảng bá, false nếu không, hoặc nếu iterator nằm phía ngoài vào cuối danh sách. |
HasCurrent
bool HasCurrent( void )
Kiểm tra xem trình lặp có được định vị trên một giao diện hay không.
Kiểm tra xem trình lặp có được định vị trên một địa chỉ giao diện hay không.
Chi tiết | |
---|---|
Lợi nhuận | true nếu iterator được bố trí trên một giao diện; false nếu nằm phía ngoài vào cuối danh sách giao diện. |
Lợi nhuận | true nếu iterator được bố trí trên một địa chỉ giao diện; false nếu nằm phía ngoài phần cuối của danh sách địa chỉ. |
InterfaceIterator
InterfaceIterator( void )
Xây dựng một InterfaceIterator đối tượng.
Khởi động trình lặp ở giao diện mạng đầu tiên. Trên một số nền tảng, hàm tạo này có thể phân bổ tài nguyên được tái chế bởi trình hủy.
Lên
bool IsUp( void )
Trả về giao diện mạng hiện tại có được bật hay không.
Chi tiết | |
---|---|
Lợi nhuận | true nếu giao diện mạng hiện nay đang gia tăng, false nếu không muốn nói hoặc nếu iterator nằm phía ngoài vào cuối danh sách. |
Kế tiếp
bool Next( void )
Chuyển trình lặp tới 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.
Chi tiết | |
---|---|
Lợi nhuận | false nếu tiến xa hơn Cuối cùng, nếu không true . |
Hỗ trợ
bool SupportsMulticast( void )
Trả về giao diện mạng hiện tại có hỗ trợ phát đa hướng hay không.
Chi tiết | |
---|---|
Lợi nhuận | true nếu giao diện mạng hiện tại hỗ trợ multicast, false nếu không, hoặc nếu iterator nằm phía ngoài vào cuối danh sách. |
~ InterfaceIterator
~InterfaceIterator( void )
Phá hủy một InterfaceIterator đối tượng.
Tái chế bất kỳ tài nguyên nào được phân bổ bởi phương thức khởi tạo.
Các chức năng được bảo vệ
GetFlags
short GetFlags( void )
Trả về giá trị ifr_flags cho giao diện hiện tại.