nl::Inet::InterfaceIterator

#include <src/inet/InetInterface.h>

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

สรุป

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

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

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

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

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

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

GetFlags

short GetFlags(
  void
)

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