nl::Inet::InterfaceAddressIterator

#include <src/inet/InetInterface.h>

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

खास जानकारी

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

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

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

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