ไม่มี:: ไอเน็ต:: InterfaceIterator

#include <src/inet/InetInterface.h>

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

สรุป

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

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

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

mIntfFlagsแคช

bool mIntfFlagsCached

งานสาธารณะ

รับอินเทอร์เฟซ

InterfaceId GetInterface(
  void
)

นามแฝงเลิกสำหรับ GetInterfaceId(void)

GetInterfaceId

InterfaceId GetInterfaceId(
  void
)

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

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

HasBroadcastAddress

bool HasBroadcastAddress(
  void
)

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

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

HasCurrent

bool HasCurrent(
  void
)

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

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

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

InterfaceIterator

 InterfaceIterator(
  void
)

โครงสร้าง InterfaceIterator วัตถุ

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

IsUp

bool IsUp(
  void
)

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

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

ต่อไป

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

รองรับมัลติคาสต์

bool SupportsMulticast(
  void
)

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

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

~InterfaceIterator

 ~InterfaceIterator(
  void
)

ทำลาย InterfaceIterator วัตถุ

รีไซเคิลทรัพยากรใดๆ ที่คอนสตรัคเตอร์จัดสรร

ฟังก์ชันที่ได้รับการป้องกัน

GetFlags

short GetFlags(
  void
)

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