nl::Inet::InterfaceIterator

#include <src/inet/InetInterface.h>

Trình lặp cho danh sách giao diện mạng 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 các hệ thống LwIP đa luồng, thực thể an toàn theo luồng so với các luồng khác truy cập vào trạng thái LwIP toàn cục với điều kiện các luồng khác giữ khoá lõi LwIP trong khi thay đổi danh sách netif 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ó 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 này, vòng lặp kết thúc ngay lập tức.

Hàm khởi tạo và hàm phá

InterfaceIterator(void)
Xây dựng 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
Email đại diện không dùng nữa cho GetInterfaceId(void)
GetInterfaceId(void)
InterfaceId
Trả về mã giao diện mạng tại vị trí trình 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 có được định vị trên một giao diện hay không.
IsUp(void)
bool
Trả về việc 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 lại sang giao diện mạng tiếp theo.
SupportsMulticast(void)
bool
Trả về việc 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

GetInterface

InterfaceId GetInterface(
  void
)

Email đại diện không dùng nữa cho GetInterfaceId(void)

GetInterfaceId

InterfaceId GetInterfaceId(
  void
)

Trả về mã giao diện mạng tại vị trí trình lặp hiện tại.

Thông tin chi tiết
Giá trị trả về
INET_NULL_INTERFACEID
nếu vượt quá cuối danh sách.
id
mã giao diện mạng hiện tạ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.

Thông tin chi tiết
Các tham số
[in] nameBuf
vùng bộ nhớ để ghi tên giao diện
[in] nameBufSize
kích thước của khu vực được biểu thị bằng nameBuf
Giá trị trả về
INET_NO_ERROR
kết quả thành công, tên giao diện đã được viết
INET_ERROR_INCORRECT_STATE
biến lặp nằm ngoài vị trí cuối của danh sách
INET_ERROR_NO_MEMORY
tên quá lớn nên không thể ghi vào bộ đệm
other
lỗi hệ thống hoặc nền tảng khác

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 lại nằm ngoài vị trí 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 địa chỉ giao diện hay không.

Thông tin chi tiết
Trả về
true nếu trình lặp lại được định vị trên một giao diện; false nếu nằm ở cuối danh sách giao diện.
Trả về
true nếu trình lặp lại được định vị trên một địa chỉ giao diện; false nếu được đặt ở cuối danh sách địa chỉ.

InterfaceIterator

 InterfaceIterator(
  void
)

Xây dựng một đối tượng InterfaceIterator.

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 khởi tạo này có thể phân bổ các tài nguyên được hàm khởi tạo tái chế.

IsUp

bool IsUp(
  void
)

Trả về việc 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 tăng, false nếu không hoặc nếu trình lặp lại được đặt ngoài cuối danh sách.

Tiếp theo

bool Next(
  void
)

Chuyển trình lặp lại 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á phần cuối, nếu không thì true.

SupportsMulticast

bool SupportsMulticast(
  void
)

Trả về việc 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ề
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 lại nằm ngoài vị trí 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.