nl::Inet::InterfaceAddressIterator

#include <src/inet/InetInterface.h>

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

สรุป

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

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

ในระบบ LwIP แบบหลายเทรด อินสแตนซ์จะปลอดภัยของเทรดเมื่อเทียบกับเทรดอื่นๆ ที่เข้าถึงสถานะ LwIP ส่วนกลาง โดยมีเงื่อนไขว่า 1) เทรดอื่นๆ จะล็อกแกน LwIP ไว้ขณะเปลี่ยนแปลงรายการ netif และ 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

รีไซเคิลทรัพยากรที่ผู้สร้างจัดสรร