nl::Inet::InterfaceIterator

#include <src/inet/InetInterface.h>

ตัววนซ้ำสำหรับรายการอินเทอร์เฟซเครือข่ายของระบบ

สรุป

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

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

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

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

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

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

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

แอตทริบิวต์ที่มีการป้องกัน

mCurIntf
size_t
mCurNetif
struct netif *
mIntfArray
struct if_nameindex *
mIntfFlags
short
mIntfFlagsCached
bool

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

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

ฟังก์ชันที่มีการป้องกัน

GetFlags(void)
short
แสดงผลค่า ifr_flags สำหรับอินเทอร์เฟซปัจจุบัน

แอตทริบิวต์ที่มีการป้องกัน

mCurIntf

size_t mCurIntf

mCurNetif

struct netif * mCurNetif

mIntfArray

struct if_nameindex * mIntfArray

mIntfFlags

short mIntfFlags

mIntfFlagsCached

bool mIntfFlagsCached

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

GetInterface

InterfaceId GetInterface(
  void
)

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

GetInterfaceId

InterfaceId GetInterfaceId(
  void
)

แสดงผลรหัสอินเทอร์เฟซเครือข่ายที่ตำแหน่งตัววนซ้ำปัจจุบัน

รายละเอียด
ผลลัพธ์
INET_NULL_INTERFACEID
หากไม่ได้อยู่ในรายการสุดท้าย
id
รหัสอินเทอร์เฟซเครือข่ายปัจจุบัน

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_INCORRECT_STATE
ตัววนซ้ำอยู่ในตำแหน่งท้ายรายการ
INET_ERROR_NO_MEMORY
ชื่อมีขนาดใหญ่เกินกว่าที่จะเขียนในบัฟเฟอร์
other
ข้อผิดพลาดของระบบหรือแพลตฟอร์มอื่น

HasBroadcastAddress

bool HasBroadcastAddress(
  void
)

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

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

HasCurrent

bool HasCurrent(
  void
)

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

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

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

InterfaceIterator

 InterfaceIterator(
  void
)

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

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

IsUp

bool IsUp(
  void
)

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

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

ถัดไป

bool Next(
  void
)

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

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.

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

SupportsMulticast

bool SupportsMulticast(
  void
)

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

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

~InterfaceIterator

 ~InterfaceIterator(
  void
)

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

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

ฟังก์ชันที่มีการป้องกัน

GetFlags

short GetFlags(
  void
)

แสดงผลค่า ifr_flags สำหรับอินเทอร์เฟซปัจจุบัน