nl:: इंटरनेट:: InetLayer
#include <src/inet/InetLayer.h>
इससे एक थ्रेड के लिए टाइमर, डोमेन नेम सिस्टम (डीएनएस) रिज़ॉल्यूशन, टीसीपी नेटवर्क ट्रांसपोर्ट, यूडीपी नेटवर्क ट्रांसपोर्ट, और रॉ नेटवर्क ट्रांसपोर्ट समेत इंटरनेट सेवाओं का ऐक्सेस मिलता है.
खास जानकारी
BSD/POSIX सॉकेट के लिए, इवेंट की तैयारी से जुड़ी सूचना को फ़ाइल डिस्क्रिप्टर के ज़रिए और एक परंपरागत पोल / प्लैटफ़ॉर्म के मुताबिक बनाने में चुनिंदा तरीकों से लागू किया जाता है.
LwIP के लिए, इवेंट रेडीनेस सूचना को इवेंट / मैसेज और प्लैटफ़ॉर्म के आधार पर मैनेज किया जाता है. साथ ही, इसे इवेंट / मैसेज सिस्टम के लिए खास हुक से भी मैनेज किया जाता है.
कंस्ट्रक्टर और कंस्ट्रक्टर |
|
---|---|
InetLayer(void)
यह InetLayer डिफ़ॉल्ट कंस्ट्रक्टर है.
|
सार्वजनिक प्रकार |
|
---|---|
@5{
|
enum InetLayer ऑब्जेक्ट की मौजूदा स्थिति. |
DNSResolveCompleteFunct
|
टाइपडेफ़DNSResolver::OnResolveCompleteFunct
|
सार्वजनिक विशेषताएं |
|
---|---|
State
|
enum nl::Inet::InetLayer::@5
InetLayer ऑब्जेक्ट की मौजूदा स्थिति.
|
सार्वजनिक स्टैटिक विशेषताएं |
|
---|---|
sInetEventHandlerDelegate
|
सार्वजनिक फ़ंक्शन |
|
---|---|
CanEnqueueDroppableEvent(void)
|
bool
|
CancelResolveHostAddress(DNSResolveCompleteFunct onComplete, void *appState)
|
void
चालू हो सकने वाली किसी भी कॉलबैक क्वेरी और ऐप्लिकेशन स्थिति के लिए, कोई भी बकाया डीएनएस क्वेरी रद्द करें.
|
DroppableEventDequeued(void)
|
void
|
GetInterfaceFromAddr(const IPAddress & addr, InterfaceId & intfId)
|
दिए गए आईपी पते के लिए इंटरफ़ेस पहचानकर्ता पाएं.
|
GetLinkLocalAddr(InterfaceId link, IPAddress *llAddr)
|
किसी खास लिंक या इंटरफ़ेस के लिए लिंक स्थानीय IPv6 पता पाएं.
|
GetPlatformData(void)
|
void *
यह इंस्टेंस को असाइन किया गया सभी क्लाइंट का खास प्लैटफ़ॉर्म डेटा दिखाता है, अगर यह पहले से सेट किया गया हो.
|
HandleSelectResult(int selectRes, fd_set *readfds, fd_set *writefds, fd_set *exceptfds)
|
void
चुने गए कॉल से I/O को हैंडल करें.
|
Init(Weave::System::Layer & aSystemLayer, void *aContext)
|
यह InetLayer एक्सप्लिसिट शुरुआती है.
|
InitQueueLimiter(void)
|
|
MatchLocalIPv6Subnet(const IPAddress & addr)
|
bool
देखें कि तय किए गए IPv6 पते और स्थानीय रूप से कॉन्फ़िगर किए गए IPv6 पतों के बीच कोई प्रीफ़िक्स मैच हो या नहीं.
|
NewRawEndPoint(IPVersion ipVer, IPProtocol ipProto, RawEndPoint **retEndPoint)
|
किसी खास आईपी वर्शन और प्रोटोकॉल के लिए, एक नया RawEndPoint ऑब्जेक्ट बनाता है.
|
NewTCPEndPoint(TCPEndPoint **retEndPoint)
|
नया TCPEndPoint ऑब्जेक्ट बनाता है.
|
NewTunEndPoint(TunEndPoint **retEndPoint)
|
नया TunEndPoint ऑब्जेक्ट बनाता है.
|
NewUDPEndPoint(UDPEndPoint **retEndPoint)
|
नया UDPEndPoint ऑब्जेक्ट बनाता है.
|
PrepareSelect(int & nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval & sleepTime)
|
void
select() के साथ काम करने के लिए फ़ाइल डिस्क्रिप्टर के सेट तैयार करें. |
ResolveHostAddress(const char *hostName, uint16_t hostNameLen, uint8_t options, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
|
किसी तय होस्टनेम का आईपी पता समाधान करें.
|
ResolveHostAddress(const char *hostName, uint16_t hostNameLen, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
|
किसी तय होस्टनेम का आईपी पता समाधान करें.
|
ResolveHostAddress(const char *hostName, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
|
किसी तय होस्टनेम का आईपी पता समाधान करें.
|
SetPlatformData(void *aPlatformData)
|
void
यह, क्लाइंट के हिसाब से प्लैटफ़ॉर्म का खास डेटा सेट करता है, ताकि क्लाइंट प्लैटफ़ॉर्म के ज़रिए बाद में उसे वापस पाया जा सके.
|
Shutdown(void)
|
|
SystemLayer(void) const
|
सार्वजनिक स्थिर फ़ंक्शन |
|
---|---|
HandleInetLayerEvent(Weave::System::Object & aTarget, Weave::System::EventType aEventType, uintptr_t aArgument)
|
Weave::System::Error
|
IsDroppableEvent(Weave::System::EventType aType)
|
bool
|
UpdateSnapshot(nl::Weave::System::Stats::Snapshot & aSnapshot)
|
void
|
सार्वजनिक प्रकार
@5
@5
InetLayer ऑब्जेक्ट की मौजूदा स्थिति.
प्रॉपर्टी | |
---|---|
kState_Initialized
|
शुरू होने की स्थिति. |
kState_NotInitialized
|
शुरू नहीं होने की स्थिति. |
kState_ShutdownInProgress
|
वह स्थिति जहां शट डाउन ट्रिगर किया गया है. |
डीएनएस रिज़ॉल्यूशन पूरा करें
DNSResolver::OnResolveCompleteFunct DNSResolveCompleteFunct
सार्वजनिक विशेषताएं
राज्य
enum nl::Inet::InetLayer::@5 State
InetLayer ऑब्जेक्ट की मौजूदा स्थिति.
[रीड-ओनली] मौजूदा स्थिति.
सार्वजनिक स्टैटिक विशेषताएं
sInetEventHandlerDelegate
Weave::System::LwIPEventHandlerDelegate sInetEventHandlerDelegate
सार्वजनिक फ़ंक्शन
CanEnqueuedroppableEvent
bool CanEnqueueDroppableEvent( void )
समाधान समाधान होस्ट पता रद्द करें
void CancelResolveHostAddress( DNSResolveCompleteFunct onComplete, void *appState )
चालू हो सकने वाली किसी भी कॉलबैक क्वेरी और ऐप्लिकेशन स्थिति के लिए, कोई भी बकाया डीएनएस क्वेरी रद्द करें.
ब्यौरा | |||||
---|---|---|---|---|---|
पैरामीटर |
|
ड्रॉप किया जा सकने वाला इवेंट चुना गया
void DroppableEventDequeued( void )
GetInterfaceFromAddr
INET_ERROR GetInterfaceFromAddr( const IPAddress & addr, InterfaceId & intfId )
दिए गए आईपी पते के लिए इंटरफ़ेस पहचानकर्ता पाएं.
अगर इंटरफ़ेस पहचानकर्ता लिया नहीं जा सकता है, तो इसे INET_NULL_INTERLOGOID पर सेट किया जाता है.
ब्यौरा | |||||
---|---|---|---|---|---|
पैरामीटर |
|
||||
लौटाए गए सामान |
बिना किसी शर्त के INET_NO_ERROR.
|
GetLinkLocalAddr
INET_ERROR GetLinkLocalAddr( InterfaceId link, IPAddress *llAddr )
किसी खास लिंक या इंटरफ़ेस के लिए लिंक स्थानीय IPv6 पता पाएं.
ब्यौरा | |||||||||
---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||
सामान लौटाने की वैल्यू |
|
GetPlatformData
void * GetPlatformData( void )
यह इंस्टेंस को असाइन किया गया सभी क्लाइंट का खास प्लैटफ़ॉर्म डेटा दिखाता है, अगर यह पहले से सेट किया गया हो.
ब्यौरा | |
---|---|
लौटाए गए सामान |
क्लाइंट का खास प्लैटफ़ॉर्म डेटा, अगर उसे पहले से सेट किया गया हो; अगर ऐसा नहीं है, तो शून्य है.
|
नतीजे को हैंडल करना
void HandleSelectResult( int selectRes, fd_set *readfds, fd_set *writefds, fd_set *exceptfds )
चुने गए कॉल से I/O को हैंडल करें.
यह तरीका हर चालू एंडपॉइंट में रुके हुए I/O इवेंट को रजिस्टर करता है और फिर उन एंडपॉइंट के लिए संबंधित I/O हैंडलिंग फ़ंक्शन को शुरू करता है.
ब्यौरा | |||||||||
---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
इनेटलेयर
InetLayer( void )
यह InetLayer डिफ़ॉल्ट कंस्ट्रक्टर है.
यह कुछ बुनियादी डेटा सदस्य शुरू करता है; हालांकि, InetLayer एक साफ़ तौर पर शुरुआती डिज़ाइन पैटर्न को फ़ॉलो करता है. इसलिए, ऑब्जेक्ट का इस्तेमाल करने से पहले, InetLayer::Init मेथड को कॉल करना ज़रूरी है.
इनिट
INET_ERROR Init( Weave::System::Layer & aSystemLayer, void *aContext )
यह InetLayer एक्सप्लिसिट शुरुआती है.
इसे InetLayer का इस्तेमाल करने से पहले, कॉल किया जाना और पूरा करना ज़रूरी है.
कॉल करने वाला व्यक्ति एक वैकल्पिक कॉन्टेक्स्ट आर्ग्युमेंट दे सकता है, जिसे किसी भी प्लैटफ़ॉर्म के लिए हुक फ़ंक्शन के ज़रिए वापस पास किया जाएगा. LwIP पर आधारित ऑप्टिमाइज़ेशन के लिए, आम तौर पर यह InetLayer इंस्टेंस से जुड़े इवेंट की सूची की ओर इशारा करेगा.
प्लैटफ़ॉर्म, खास तौर पर उनके प्लैटफ़ॉर्म के कॉन्फ़िगरेशन वाले हेडर में INET_CONFIG_WITH_OVERRIDE_PLATFORM_XTOR_FUNCS पर दावा कर सकते हैं और प्लैटफ़ॉर्म::InetLayer::WiInit और प्लैटफ़ॉर्म::InetLayer::didInit हुक की मदद से, प्लैटफ़ॉर्म के हिसाब से बनाए गए ऑप्टिमाइज़ेशन या डेटा एक्सटेंशन को InetLayer पर चालू कर सकते हैं.
ब्यौरा | |||||||||
---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||
सामान लौटाने की वैल्यू |
|
InitQueuelimiter
INET_ERROR InitQueueLimiter( void )
MatchLocalIPv6सबनेट
bool MatchLocalIPv6Subnet( const IPAddress & addr )
देखें कि तय किए गए IPv6 पते और स्थानीय रूप से कॉन्फ़िगर किए गए IPv6 पतों के बीच कोई प्रीफ़िक्स मैच हो या नहीं.
ब्यौरा | |||
---|---|---|---|
पैरामीटर |
|
||
लौटाए गए सामान |
अगर सही मेल मिलता है, तो सही है, नहीं तो गलत है.
|
न्यूआरपॉइंट
INET_ERROR NewRawEndPoint( IPVersion ipVer, IPProtocol ipProto, RawEndPoint **retEndPoint )
किसी खास आईपी वर्शन और प्रोटोकॉल के लिए, एक नया RawEndPoint ऑब्जेक्ट बनाता है.
ब्यौरा | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||
सामान लौटाने की वैल्यू |
|
न्यूटीसीपी एंडपॉइंट
INET_ERROR NewTCPEndPoint( TCPEndPoint **retEndPoint )
नया TCPEndPoint ऑब्जेक्ट बनाता है.
ब्यौरा | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||
सामान लौटाने की वैल्यू |
|
न्यूटन एंडपॉइंट
INET_ERROR NewTunEndPoint( TunEndPoint **retEndPoint )
नया TunEndPoint ऑब्जेक्ट बनाता है.
ब्यौरा | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||
सामान लौटाने की वैल्यू |
|
न्यूयूडीपीएंडपॉइंट
INET_ERROR NewUDPEndPoint( UDPEndPoint **retEndPoint )
नया UDPEndPoint ऑब्जेक्ट बनाता है.
ब्यौरा | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||
सामान लौटाने की वैल्यू |
|
तैयार करें
void PrepareSelect( int & nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval & sleepTime )
select()
के साथ काम करने के लिए फ़ाइल डिस्क्रिप्टर के सेट तैयार करें.
ब्यौरा | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
SolveHost का पता
INET_ERROR ResolveHostAddress( const char *hostName, uint16_t hostNameLen, uint8_t options, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState )
किसी तय होस्टनेम का आईपी पता समाधान करें.
ब्यौरा | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||||||||||
सामान लौटाने की वैल्यू |
|
SolveHost का पता
INET_ERROR ResolveHostAddress( const char *hostName, uint16_t hostNameLen, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState )
किसी तय होस्टनेम का आईपी पता समाधान करें.
ब्यौरा | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||||||||||
सामान लौटाने की वैल्यू |
|
SolveHost का पता
INET_ERROR ResolveHostAddress( const char *hostName, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState )
किसी तय होस्टनेम का आईपी पता समाधान करें.
ब्यौरा | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||||||||||
सामान लौटाने की वैल्यू |
|
setPlatformData
void SetPlatformData( void *aPlatformData )
यह, क्लाइंट के हिसाब से प्लैटफ़ॉर्म का खास डेटा सेट करता है, ताकि क्लाइंट प्लैटफ़ॉर्म के ज़रिए बाद में उसे वापस पाया जा सके.
ब्यौरा | |||
---|---|---|---|
पैरामीटर |
|
शटडाउन
INET_ERROR Shutdown( void )
यह InetLayer एक्सप्लिसिट शुरुआती है. इसे इंस्टैंशिएट किए गए InetLayer इंस्टेंस को नष्ट करने से पहले कॉल किया जाना चाहिए.
प्लैटफ़ॉर्म, खास तौर पर उनके प्लैटफ़ॉर्म के कॉन्फ़िगरेशन कॉन्फ़िगरेशन में INET_CONFIG_WITH_OVERRIDE_PLATFORM_XTOR_FUNCS का दावा कर सकते हैं और प्लैटफ़ॉर्म::InetLayer::WiShutdown और प्लैटफ़ॉर्म::InetLayer::DShutdown हुक की मदद से प्लैटफ़ॉर्म के खास कस्टमाइज़ेशन या डेटा एक्सटेंशन को InetLayer पर चालू कर सकते हैं.
ब्यौरा | |
---|---|
लौटाए गए सामान |
पूरा होने में INET_NO_ERROR; नहीं तो, एक खास गड़बड़ी है जो बंद करने की वजह बताती है.
|
सिस्टम लेयर
Weave::System::Layer * SystemLayer( void ) const
सार्वजनिक स्थिर फ़ंक्शन
HandleInetLayerEvent
Weave::System::Error HandleInetLayerEvent( Weave::System::Object & aTarget, Weave::System::EventType aEventType, uintptr_t aArgument )
क्या ड्रॉपडाउन का इवेंट
bool IsDroppableEvent( Weave::System::EventType aType )