nl:: Inet:: InetLayer
#include <src/inet/InetLayer.h>
এটি একটি একক থ্রেডের জন্য টাইমার, ডোমেন নেম সিস্টেম (DNS) রেজোলিউশন, TCP নেটওয়ার্ক পরিবহন, UDP নেটওয়ার্ক পরিবহন এবং কাঁচা নেটওয়ার্ক পরিবহন সহ ইন্টারনেট পরিষেবাগুলিতে অ্যাক্সেস সরবরাহ করে।
সারাংশ
BSD/POSIX সকেটের জন্য, ইভেন্ট প্রস্তুতির বিজ্ঞপ্তি ফাইল বর্ণনাকারীর মাধ্যমে পরিচালনা করা হয় এবং প্ল্যাটফর্ম অভিযোজনে একটি ঐতিহ্যগত পোল/নির্বাচন বাস্তবায়ন।
LwIP-এর জন্য, ইভেন্ট/বার্তা এবং প্ল্যাটফর্ম- এবং ইভেন্ট/বার্তা সিস্টেমের জন্য সিস্টেম-নির্দিষ্ট হুকগুলির মাধ্যমে ইভেন্ট প্রস্তুতির বিজ্ঞপ্তিটি পরিচালনা করা হয়।
কনস্ট্রাক্টর এবং ডেস্ট্রাক্টর | |
---|---|
InetLayer (void) এটি হল InetLayer ডিফল্ট কনস্ট্রাক্টর। |
পাবলিক প্রকার | |
---|---|
@5 { | enum InetLayer অবজেক্টের বর্তমান অবস্থা। |
DNSResolveCompleteFunct | typedefDNSResolver::OnResolveCompleteFunct |
পাবলিক বৈশিষ্ট্য | |
---|---|
State | enum nl::Inet::InetLayer::@5 InetLayer অবজেক্টের বর্তমান অবস্থা। |
পাবলিক স্ট্যাটিক বৈশিষ্ট্য | |
---|---|
sInetEventHandlerDelegate |
পাবলিক ফাংশন | |
---|---|
CanEnqueueDroppableEvent (void) | bool |
CancelResolveHostAddress (DNSResolveCompleteFunct onComplete, void *appState) | void এখনও সক্রিয় থাকতে পারে এমন কোনও অসামান্য DNS ক্যোয়ারী বাতিল করুন (একটি মিলে যাওয়া কলব্যাক এবং অ্যাপ্লিকেশন অবস্থার জন্য)। |
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) | একটি নির্দিষ্ট IP সংস্করণ এবং প্রোটোকলের জন্য একটি নতুন 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 | রাজ্য যেখানে শাটডাউন ট্রিগার করা হয়েছে৷ |
DNSResolveCompleteFunct
DNSResolver::OnResolveCompleteFunct DNSResolveCompleteFunct
পাবলিক বৈশিষ্ট্য
রাজ্য
enum nl::Inet::InetLayer::@5 State
InetLayer অবজেক্টের বর্তমান অবস্থা।
[শুধু পড়ার জন্য] বর্তমান অবস্থা।
পাবলিক স্ট্যাটিক বৈশিষ্ট্য
sInetEventHandlerDelegate
Weave::System::LwIPEventHandlerDelegate sInetEventHandlerDelegate
পাবলিক ফাংশন
CanEnqueueDroppable ইভেন্ট
bool CanEnqueueDroppableEvent( void )
CancelResolveHostAddress
void CancelResolveHostAddress( DNSResolveCompleteFunct onComplete, void *appState )
এখনও সক্রিয় থাকতে পারে এমন কোনও অসামান্য DNS ক্যোয়ারী বাতিল করুন (একটি মিলে যাওয়া কলব্যাক এবং অ্যাপ্লিকেশন অবস্থার জন্য)।
বিস্তারিত | |||||
---|---|---|---|---|---|
পরামিতি |
|
DroppableEventDequeued
void DroppableEventDequeued( void )
GetInterfaceFromAddr
INET_ERROR GetInterfaceFromAddr( const IPAddress & addr, InterfaceId & intfId )
নির্দিষ্ট আইপি ঠিকানার জন্য ইন্টারফেস শনাক্তকারী পান।
যদি ইন্টারফেস শনাক্তকারী প্রাপ্ত করা না যায় তবে এটি INET_NULL_INTERFACEID এ সেট করা হয়।
বিস্তারিত | |||||
---|---|---|---|---|---|
পরামিতি |
| ||||
রিটার্নস | INET_NO_ERROR নিঃশর্তভাবে। |
GetLinkLocalAddr
INET_ERROR GetLinkLocalAddr( InterfaceId link, IPAddress *llAddr )
একটি নির্দিষ্ট লিঙ্ক বা ইন্টারফেসের জন্য লিঙ্ক স্থানীয় IPv6 ঠিকানা পান।
বিস্তারিত | |||||||||
---|---|---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||||
রিটার্ন মান |
|
GetPlatformData
void * GetPlatformData( void )
এটি কোনো ক্লায়েন্ট-নির্দিষ্ট প্ল্যাটফর্ম তথ্য প্রদান করে, যদি এটি পূর্বে সেট করা থাকে।
বিস্তারিত | |
---|---|
রিটার্নস | ক্লায়েন্ট-নির্দিষ্ট প্ল্যাটফর্ম ডেটা, যদি আগে সেট করা থাকে; অন্যথায়, NULL. |
হ্যান্ডেল সিলেক্ট রেজাল্ট
void HandleSelectResult( int selectRes, fd_set *readfds, fd_set *writefds, fd_set *exceptfds )
একটি নির্বাচিত কল থেকে I/O হ্যান্ডেল করুন।
এই পদ্ধতিটি প্রতিটি সক্রিয় এন্ডপয়েন্টে মুলতুবি I/O ইভেন্ট নিবন্ধন করে এবং তারপর সেই শেষ পয়েন্টগুলির জন্য সংশ্লিষ্ট I/O হ্যান্ডলিং ফাংশনগুলিকে আহ্বান করে।
বিস্তারিত | |||||||||
---|---|---|---|---|---|---|---|---|---|
পরামিতি |
|
InetLayer
InetLayer( void )
এটি হল InetLayer ডিফল্ট কনস্ট্রাক্টর।
এটি কিছু মৌলিক ডেটা সদস্য প্রাথমিককরণ সঞ্চালন করে; যাইহোক, যেহেতু InetLayer একটি সুস্পষ্ট ইনিশিয়ালাইজার ডিজাইন প্যাটার্ন অনুসরণ করে, তাই অবজেক্ট ব্যবহার করার আগে InetLayer::Init পদ্ধতিটি সফলভাবে কল করা আবশ্যক।
ইনিট
INET_ERROR Init( Weave::System::Layer & aSystemLayer, void *aContext )
এটি হল InetLayer স্পষ্ট ইনিশিয়ালাইজার।
InetLayer ব্যবহার করার আগে এটিকে অবশ্যই কল করতে হবে এবং সফলভাবে সম্পূর্ণ করতে হবে।
কলকারী একটি ঐচ্ছিক প্রসঙ্গ যুক্তি প্রদান করতে পারে যা যেকোনো প্ল্যাটফর্ম-নির্দিষ্ট হুক ফাংশনের মাধ্যমে ফেরত পাঠানো হবে। LwIP-ভিত্তিক অভিযোজনগুলির জন্য, এটি সাধারণত InetLayer উদাহরণের সাথে যুক্ত ইভেন্ট সারির একটি নির্দেশক হবে।
প্ল্যাটফর্মগুলি তাদের প্ল্যাটফর্ম-নির্দিষ্ট কনফিগারেশন শিরোনামে INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS জাহির করতে এবং প্ল্যাটফর্ম::InetLayer::WillInit এবং Platform::InetLayer::DidInit হুকগুলিকে প্ল্যাটফর্ম-নির্দিষ্ট ডেটা লেয়ারে কাস্টমাইজেশন বা কাস্টমাইজেশনকে প্রভাবিত করতে সক্ষম করতে বেছে নিতে পারে।
বিস্তারিত | |||||||||
---|---|---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||||
রিটার্ন মান |
|
InitQueueLimeter
INET_ERROR InitQueueLimiter( void )
MatchLocalIPv6Subnet
bool MatchLocalIPv6Subnet( const IPAddress & addr )
নির্দিষ্ট IPv6 ঠিকানা এবং স্থানীয়ভাবে কনফিগার করা IPv6 ঠিকানাগুলির মধ্যে একটি উপসর্গ মিল আছে কিনা তা পরীক্ষা করুন৷
বিস্তারিত | |||
---|---|---|---|
পরামিতি |
| ||
রিটার্নস | সত্য যদি একটি সফল মিল পাওয়া যায়, অন্যথায় মিথ্যা। |
NewRawEndPoint
INET_ERROR NewRawEndPoint( IPVersion ipVer, IPProtocol ipProto, RawEndPoint **retEndPoint )
একটি নির্দিষ্ট IP সংস্করণ এবং প্রোটোকলের জন্য একটি নতুন RawEndPoint অবজেক্ট তৈরি করে।
বিস্তারিত | |||||||
---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||
রিটার্ন মান |
|
নিউটিসিপিএন্ডপয়েন্ট
INET_ERROR NewTCPEndPoint( TCPEndPoint **retEndPoint )
একটি নতুন TCPEndPoint অবজেক্ট তৈরি করে।
বিস্তারিত | |||||||
---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||
রিটার্ন মান |
|
নিউটিউনএন্ডপয়েন্ট
INET_ERROR NewTunEndPoint( TunEndPoint **retEndPoint )
একটি নতুন TunEndPoint অবজেক্ট তৈরি করে।
বিস্তারিত | |||||||
---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||
রিটার্ন মান |
|
নিউইউডিপিএন্ডপয়েন্ট
INET_ERROR NewUDPEndPoint( UDPEndPoint **retEndPoint )
একটি নতুন UDPEndPoint অবজেক্ট তৈরি করে।
বিস্তারিত | |||||||
---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||
রিটার্ন মান |
|
PrepareSelect
void PrepareSelect( int & nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval & sleepTime )
select()
এর সাথে কাজ করার জন্য ফাইল বর্ণনাকারীর সেট প্রস্তুত করুন।
বিস্তারিত | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
পরামিতি |
|
ResolveHostAddress
INET_ERROR ResolveHostAddress( const char *hostName, uint16_t hostNameLen, uint8_t options, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState )
একটি নির্দিষ্ট হোস্টনামের একটি আইপি ঠিকানা রেজোলিউশন সম্পাদন করুন।
বিস্তারিত | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||||||||||||
রিটার্ন মান |
|
ResolveHostAddress
INET_ERROR ResolveHostAddress( const char *hostName, uint16_t hostNameLen, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState )
একটি নির্দিষ্ট হোস্টনামের একটি আইপি ঠিকানা রেজোলিউশন সম্পাদন করুন।
বিস্তারিত | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||||||||||||
রিটার্ন মান |
|
ResolveHostAddress
INET_ERROR ResolveHostAddress( const char *hostName, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState )
একটি নির্দিষ্ট হোস্টনামের একটি আইপি ঠিকানা রেজোলিউশন সম্পাদন করুন।
বিস্তারিত | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||||||||||||
রিটার্ন মান |
|
প্ল্যাটফর্ম ডেটা সেট করুন
void SetPlatformData( void *aPlatformData )
এটি নির্দিষ্ট ক্লায়েন্ট-নির্দিষ্ট প্ল্যাটফর্ম ডেটাকে ক্লায়েন্ট প্ল্যাটফর্ম দ্বারা পরবর্তী পুনরুদ্ধারের উদাহরণে সেট করে।
বিস্তারিত | |||
---|---|---|---|
পরামিতি |
|
শাটডাউন
INET_ERROR Shutdown( void )
এটি হল InetLayer সুস্পষ্ট deinitializer এবং একটি তাত্ক্ষণিক InetLayer উদাহরণ নিষ্পত্তি করার আগে কল করা উচিত৷
প্ল্যাটফর্মগুলি তাদের প্ল্যাটফর্ম-নির্দিষ্ট কনফিগারেশন শিরোনামে INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS জাহির করতে এবং প্ল্যাটফর্ম::InetLayer::WillShutdown এবং Platform::InetLayer::DidShutdown হুকগুলিকে সক্ষম করতে বেছে নিতে পারে যাতে প্ল্যাটফর্ম-এর কাস্টম-আপ ক্লিন-আপ প্ল্যাটফর্ম ক্লিন-আপ-কে প্রভাবিত করতে পারে ।
বিস্তারিত | |
---|---|
রিটার্নস | সাফল্যে 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 )
IsDroppableEvent
bool IsDroppableEvent( Weave::System::EventType aType )
আপডেট স্ন্যাপশট
void UpdateSnapshot( nl::Weave::System::Stats::Snapshot & aSnapshot )