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

GetInterface

InterfaceId GetInterface(
  void
)

Bí danh 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í biến 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
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 ghi
INET_ERROR_INCORRECT_STATE
biến lặp được đặt ở phía ngoài cuối danh sách
INET_ERROR_NO_MEMORY
tên quá lớn nên không thể viết 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 đượ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.