nl::Inet::InterfaceAddressIterator

#include <src/inet/InetInterface.h>

सिस्टम नेटवर्क इंटरफ़ेस के आईपी पतों की सूची के लिए इटरेटर.

खास जानकारी

सिस्टम नेटवर्क इंटरफ़ेस इंटरफ़ेस के आईपी पतों की सूची को फिर से दोहराने के लिए, इस क्लास के ऑब्जेक्ट का इस्तेमाल करें.

इस क्लास के किसी इंस्टेंस के तरीके, थ्रेड के लिए सुरक्षित नहीं हैं. हालांकि, एक साथ कई थ्रेड के लिए अलग-अलग इंस्टेंस इस्तेमाल किए जा सकते हैं.

मल्टी-थ्रेड LwIP सिस्टम में, इंस्टेंस, ग्लोबल LwIP स्थिति को ऐक्सेस करने वाले दूसरे थ्रेड के मुकाबले थ्रेड-सुरक्षित होते हैं. हालांकि, इसके लिए ज़रूरी है कि: 1) netif की सूची में बदलाव करते समय, अन्य थ्रेड LwIP कोर लॉक को होल्ड करके रखें; और 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 ऑब्जेक्ट को बंद करता है.

कंस्ट्रक्टर के दिए गए सभी रिसॉर्स को रीसाइकल करता है.