nl::Inet::InterfaceAddressIterator

#include <src/inet/InetInterface.h>

Iterator สำหรับรายการที่อยู่ IP ของอินเทอร์เฟซเครือข่ายระบบ

สรุป

ใช้ออบเจ็กต์ของคลาสนี้เพื่อทำซ้ำรายการที่อยู่ IP ของอินเทอร์เฟซเครือข่ายระบบ

เมธอดในอินสแตนซ์แต่ละรายการของคลาสนี้ไม่ปลอดภัยของเทรด แต่เทรดหลายรายการอาจใช้อินสแตนซ์แยกกันพร้อมกันได้

ในระบบ LwIP แบบหลายเทรด อินสแตนซ์จะปลอดภัยเทรดเมื่อเทียบกับเทรดอื่นๆ ที่เข้าถึงสถานะ LwIP ส่วนกลาง โดยมีเงื่อนไขดังนี้ 1) เทรดอื่นจะมีล็อกหลัก LwIP ขณะเปลี่ยนแปลงรายการ Netifs และ 2) ตัววัตถุ netif จะไม่ถูกทำลาย

ในระบบที่ใช้ซ็อกเก็ต การทำซ้ำจะมีความเสถียรเสมอเมื่อมีการเปลี่ยนแปลงอินเทอร์เฟซและ/หรือที่อยู่ของระบบพื้นฐาน

การทำซ้ำนั้นเสถียรในระบบ LwIP ยกเว้นในกรณีที่อินเทอร์เฟซที่เชื่อมโยงกับที่อยู่ปัจจุบันถูกนำออก ซึ่งในกรณีนี้การทำซ้ำอาจสิ้นสุดก่อนกำหนด

ผู้ผลิตและผู้ทำลาย

InterfaceAddressIterator(void)
สร้างออบเจ็กต์ InterfaceAddressIterator
~InterfaceAddressIterator(void)
ทำลายออบเจ็กต์ InterfaceAddressIterator

ฟังก์ชันสาธารณะ

GetAddress(void)
รับที่อยู่อินเทอร์เฟซปัจจุบัน
GetAddressWithPrefix(IPPrefix & addrWithPrefix)
void
แสดงผล IPPrefix ซึ่งประกอบด้วยที่อยู่และความยาวของคํานําหน้าสําหรับที่อยู่ปัจจุบัน
GetIPv6PrefixLength(void)
uint8_t
เลิกใช้งานชื่อแทนสำหรับ GetPrefixLength(void) แล้ว
GetInterface(void)
InterfaceId
เลิกใช้งานชื่อแทนสำหรับ GetInterfaceId(void) แล้ว
GetInterfaceId(void)
InterfaceId
แสดงผลรหัสอินเทอร์เฟซเครือข่ายที่เชื่อมโยงกับที่อยู่อินเทอร์เฟซปัจจุบัน
GetInterfaceName(char *nameBuf, size_t nameBufSize)
รับชื่ออินเทอร์เฟซเครือข่ายที่เชื่อมโยงกับที่อยู่อินเทอร์เฟซปัจจุบัน
GetPrefixLength(void)
uint8_t
รับคำนำหน้าเครือข่ายที่เชื่อมโยงกับที่อยู่อินเทอร์เฟซปัจจุบัน
HasBroadcastAddress(void)
bool
แสดงผลว่าอินเทอร์เฟซเครือข่ายที่เชื่อมโยงกับที่อยู่อินเทอร์เฟซปัจจุบันมีที่อยู่การออกอากาศ IPv4 หรือไม่
HasCurrent(void)
bool
IsUp(void)
bool
แสดงผลว่าอินเทอร์เฟซเครือข่ายที่เชื่อมโยงกับที่อยู่อินเทอร์เฟซปัจจุบันทำงานอยู่หรือไม่
Next(void)
bool
เลื่อนตัววนซ้ำไปยังที่อยู่ของอินเทอร์เฟซถัดไป
SupportsMulticast(void)
bool
แสดงผลว่าอินเทอร์เฟซเครือข่ายที่เชื่อมโยงกับที่อยู่อินเทอร์เฟซปัจจุบันรองรับมัลติแคสต์หรือไม่

ฟังก์ชันสาธารณะ

GetAddress

IPAddress GetAddress(
  void
)

รับที่อยู่อินเทอร์เฟซปัจจุบัน

รายละเอียด
การคืนสินค้า
ที่อยู่อินเทอร์เฟซปัจจุบันหรือ IPAddress::Any หากตัววนซ้ำอยู่ในตำแหน่งท้ายรายการที่อยู่

GetAddressWithPrefix

void GetAddressWithPrefix(
  IPPrefix & addrWithPrefix
)

แสดงผล IPPrefix ซึ่งประกอบด้วยที่อยู่และความยาวของคํานําหน้าสําหรับที่อยู่ปัจจุบัน

GetIPv6PrefixLength

uint8_t GetIPv6PrefixLength(
  void
)

เลิกใช้งานชื่อแทนสำหรับ GetPrefixLength(void) แล้ว

GetInterface

InterfaceId GetInterface(
  void
)

เลิกใช้งานชื่อแทนสำหรับ GetInterfaceId(void) แล้ว

GetInterfaceId

InterfaceId GetInterfaceId(
  void
)

แสดงผลรหัสอินเทอร์เฟซเครือข่ายที่เชื่อมโยงกับที่อยู่อินเทอร์เฟซปัจจุบัน

รายละเอียด
การคืนสินค้า
รหัสอินเทอร์เฟซหรือ INET_NULL_INTERFACEID หากตัววนซ้ำอยู่ในตำแหน่งเกินส่วนท้ายของรายการที่อยู่

GetInterfaceName

INET_ERROR GetInterfaceName(
  char *nameBuf,
  size_t nameBufSize
)

รับชื่ออินเทอร์เฟซเครือข่ายที่เชื่อมโยงกับที่อยู่อินเทอร์เฟซปัจจุบัน

Writes the name of the network interface as \c NUL terminated text string
at \c nameBuf.

รายละเอียด
พารามิเตอร์
[in] nameBuf
ภูมิภาคของหน่วยความจำที่จะเขียนชื่ออินเทอร์เฟซ
[in] nameBufSize
ขนาดของภูมิภาคที่ระบุโดย nameBuf
ผลลัพธ์
INET_NO_ERROR
ผลลัพธ์ที่ประสบความสำเร็จ ชื่ออินเทอร์เฟซที่เขียน
INET_ERROR_NO_MEMORY
ชื่อมีขนาดใหญ่เกินกว่าที่จะเขียนในบัฟเฟอร์
INET_ERROR_INCORRECT_STATE
ตัวซ้ำไม่มีตำแหน่งอยู่บนที่อยู่อินเทอร์เฟซในขณะนี้
other
ข้อผิดพลาดของระบบหรือแพลตฟอร์มอื่น

GetPrefixLength

uint8_t GetPrefixLength(
  void
)

รับคำนำหน้าเครือข่ายที่เชื่อมโยงกับที่อยู่อินเทอร์เฟซปัจจุบัน

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.

รายละเอียด
การคืนสินค้า
คำนำหน้าเครือข่าย (เป็นบิต) หรือ 0 หากตัวซ้ำอยู่ในตำแหน่งเกินจุดสิ้นสุดของรายการที่อยู่

HasBroadcastAddress

bool HasBroadcastAddress(
  void
)

แสดงผลว่าอินเทอร์เฟซเครือข่ายที่เชื่อมโยงกับที่อยู่อินเทอร์เฟซปัจจุบันมีที่อยู่การออกอากาศ IPv4 หรือไม่

รายละเอียด
การคืนสินค้า
true หากอินเทอร์เฟซมีที่อยู่สำหรับบรอดแคสต์ false หากไม่มี หรือตัวดำเนินการไม่อยู่ในตำแหน่งอินเทอร์เฟซ

HasCurrent

bool HasCurrent(
  void
)

InterfaceAddressIterator

 InterfaceAddressIterator(
  void
)

สร้างออบเจ็กต์ InterfaceAddressIterator

เริ่มตัวทำซ้ำในที่อยู่เครือข่ายแรก ในบางแพลตฟอร์ม ตัวสร้างนี้อาจจัดสรรทรัพยากรที่ผู้ทำลายรีไซเคิลกลับมาใช้ใหม่

IsUp

bool IsUp(
  void
)

แสดงผลว่าอินเทอร์เฟซเครือข่ายที่เชื่อมโยงกับที่อยู่อินเทอร์เฟซปัจจุบันทำงานอยู่หรือไม่

รายละเอียด
การคืนสินค้า
true หากอินเทอร์เฟซเครือข่ายปัจจุบันพร้อมใช้งาน falseหากไม่มี หรือตัววนซ้ำไม่ได้อยู่ในที่อยู่ของอินเทอร์เฟซ

ถัดไป

bool Next(
  void
)

เลื่อนตัววนซ้ำไปยังที่อยู่ของอินเทอร์เฟซถัดไป

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.

รายละเอียด
การคืนสินค้า
false หากเกินเกณฑ์, อื่นๆ true

SupportsMulticast

bool SupportsMulticast(
  void
)

แสดงผลว่าอินเทอร์เฟซเครือข่ายที่เชื่อมโยงกับที่อยู่อินเทอร์เฟซปัจจุบันรองรับมัลติแคสต์หรือไม่

รายละเอียด
การคืนสินค้า
true หากรองรับมัลติแคสต์ false หากไม่รองรับ หรือหากตัวทำซ้ำไม่ได้อยู่ในที่อยู่ของอินเทอร์เฟซ

~InterfaceAddressIterator

 ~InterfaceAddressIterator(
  void
)

ทำลายออบเจ็กต์ InterfaceAddressIterator

นำทรัพยากรที่เครื่องมือสร้างจัดสรรกลับมาใช้ใหม่