nl:: اینت:: InetLayer

#include <src/inet/InetLayer.h>

این امکان دسترسی به خدمات اینترنت، از جمله تایمر، وضوح سیستم نام دامنه (DNS)، انتقال شبکه TCP، انتقال شبکه UDP و انتقال شبکه خام را برای یک رشته فراهم می‌کند.

خلاصه

برای سوکت‌های BSD/POSIX، اعلان آمادگی رویداد از طریق توصیف‌گرهای فایل و اجرای نظرسنجی/انتخاب سنتی در سازگاری پلت‌فرم انجام می‌شود.

برای LwIP، اعلان آمادگی رویداد از طریق رویدادها/پیام ها و قلاب های مخصوص پلتفرم و سیستم برای سیستم رویداد/پیام انجام می شود.

سازندگان و ویرانگرها

InetLayer (void)
این سازنده پیش فرض InetLayer است.

انواع عمومی

@5 {
kState_NotInitialized = 0,
kState_Initialized = 1,
kState_ShutdownInProgress = 2
}
enum
وضعیت فعلی شیء InetLayer .
DNSResolveCompleteFunct typedef
DNSResolver::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)
شناسه رابط برای آدرس IP مشخص شده را دریافت کنید.
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 جدید برای نسخه و پروتکل IP خاص ایجاد می کند.
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)
رزولوشن آدرس IP یک نام میزبان مشخص شده را انجام دهید.
ResolveHostAddress (const char *hostName, uint16_t hostNameLen, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
رزولوشن آدرس IP یک نام میزبان مشخص شده را انجام دهید.
ResolveHostAddress (const char *hostName, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
رزولوشن آدرس IP یک نام میزبان مشخص شده را انجام دهید.
SetPlatformData (void *aPlatformData)
void
این داده‌های پلتفرم خاص مشتری مشخص شده را برای بازیابی بعدی توسط پلتفرم کلاینت به نمونه تنظیم می‌کند.
Shutdown (void)
این یک InetLayer صریح است و باید قبل از از بین بردن یک نمونه InetLayer نمونه فراخوانی شود.
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

وضعیتی که Shutdown در آن فعال شده است.

DNSResolveCompleteFunct

DNSResolver::OnResolveCompleteFunct DNSResolveCompleteFunct

صفات عمومی

ایالت

enum nl::Inet::InetLayer::@5 State

وضعیت فعلی شیء InetLayer .

[فقط خواندنی] وضعیت فعلی.

صفات استاتیک عمومی

sInetEventHandlerDelegate

Weave::System::LwIPEventHandlerDelegate sInetEventHandlerDelegate

توابع عمومی

CanEnqueueDroppableEvent

bool CanEnqueueDroppableEvent(
  void
)

CancelResolveHostAddress

void CancelResolveHostAddress(
  DNSResolveCompleteFunct onComplete,
  void *appState
)

هرگونه درخواست DNS برجسته (برای پاسخ تماس تکمیل و وضعیت برنامه) که ممکن است همچنان فعال باشد را لغو کنید.

جزئیات
پارامترها
[in] onComplete
هنگامی که یک درخواست DNS تکمیل می شود، یک اشاره گر به عملکرد برگشت به تماس.
[in] appState
یک اشاره گر به یک شیء حالت برنامه کاربردی که به عنوان آرگومان به تابع callback ارسال می شود.

DroppableEventDequeued

void DroppableEventDequeued(
  void
)

GetInterfaceFromAddr

INET_ERROR GetInterfaceFromAddr(
  const IPAddress & addr,
  InterfaceId & intfId
)

شناسه رابط برای آدرس IP مشخص شده را دریافت کنید.

اگر شناسه واسط قابل استخراج نباشد، روی INET_NULL_INTERFACEID تنظیم می شود.

جزئیات
پارامترها
[in] addr
ارجاع به شی IPaddress .
[out] intfId
ارجاع به شی InterfaceId.
برمی گرداند
INET_NO_ERROR بدون قید و شرط.

GetLinkLocalAddr

INET_ERROR GetLinkLocalAddr(
  InterfaceId link,
  IPAddress *llAddr
)

آدرس IPv6 محلی پیوند را برای پیوند یا رابط مشخص شده دریافت کنید.

جزئیات
پارامترها
[in] link
رابطی که پیوند آدرس IPv6 محلی برای آن جستجو می شود.
[out] llAddr
پیوند آدرس IPv6 محلی برای پیوند.
ارزش های بازگشتی
INET_ERROR_NOT_IMPLEMENTED
اگر IPv6 پشتیبانی نمی شود.
INET_ERROR_BAD_ARGS
اگر آدرس محلی پیوند NULL باشد.
INET_ERROR_ADDRESS_NOT_FOUND
اگر لینک هیچ آدرسی پیکربندی نشده باشد.
INET_NO_ERROR
در مورد موفقیت

GetPlatformData

void * GetPlatformData(
  void
)

این هر گونه داده پلتفرم خاص مشتری را که به نمونه اختصاص داده شده است، برمی گرداند، اگر قبلا تنظیم شده باشد.

جزئیات
برمی گرداند
داده‌های پلتفرم خاص مشتری، اگر قبلاً تنظیم شده باشد. در غیر این صورت، NULL.

HandleSelectResult

void HandleSelectResult(
  int selectRes,
  fd_set *readfds,
  fd_set *writefds,
  fd_set *exceptfds
)

I/O را از یک تماس انتخابی کنترل کنید.

این روش رویداد ورودی/خروجی معلق را در هر نقطه پایانی فعال ثبت می‌کند و سپس توابع مدیریت ورودی/خروجی مربوطه را برای آن نقاط پایانی فراخوانی می‌کند.

جزئیات
پارامترها
[in] selectRes
مقدار بازگشتی تماس انتخابی.
[in] readfds
اشاره گر به مجموعه توصیفگرهای فایل خوانده شده.
[in] writefds
اشاره گر به مجموعه توصیف کننده های فایل نوشتن.
[in] exceptfds
اشاره گر به مجموعه توصیفگرهای فایل با خطا.

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 را در هدر پیکربندی مخصوص پلتفرم خود قرار دهند و قلاب‌های Platform::InetLayer::WillInit و Platform::InetLayer::DidInit را برای اعمال سفارشی‌سازی‌های پلتفرم خاص یا پسوندهای داده در InetLa فعال کنند.

جزئیات
پارامترها
[in] aSystemLayer
یک نمونه مورد نیاز از لایه سیستم Weave قبلاً با موفقیت راه اندازی شده است.
[in] aContext
یک آرگومان زمینه اختیاری که از طریق هر توابع قلاب مخصوص پلتفرم به تماس گیرنده بازگردانده می شود.
ارزش های بازگشتی
INET_ERROR_INCORRECT_STATE
اگر InetLayer در وضعیت نادرست باشد.
INET_ERROR_NO_MEMORY
اگر منبع InetLayer برای این درخواست برای یک تایمر جدید تمام شود.
other
خطاهای پلتفرم خاص که دلیل شکست اولیه را نشان می دهد.
INET_NO_ERROR
در مورد موفقیت

InitQueueLimiter

INET_ERROR InitQueueLimiter(
  void
)

MatchLocalIPv6Subnet

bool MatchLocalIPv6Subnet(
  const IPAddress & addr
)

بررسی کنید که آیا پیشوندی بین آدرس IPv6 مشخص شده و هر یک از آدرس‌های IPv6 پیکربندی شده محلی وجود دارد یا خیر.

جزئیات
پارامترها
[in] addr
آدرس IPv6 برای بررسی پیشوند-تطبیق.
برمی گرداند
درست است اگر مطابقت موفقی پیدا شود، در غیر این صورت نادرست است.

NewRawEndPoint

INET_ERROR NewRawEndPoint(
  IPVersion ipVer,
  IPProtocol ipProto,
  RawEndPoint **retEndPoint
)

یک شی RawEndPoint جدید برای نسخه و پروتکل IP خاص ایجاد می کند.

جزئیات
پارامترها
[in] ipVer
IPv4 یا IPv6.
[in] ipProto
یک پروتکل در خانواده IP (به عنوان مثال، ICMPv4 یا ICMPv6).
[in,out] retEndPoint
یک اشاره گر به یک اشاره گر از شی RawEndPoint که یک پارامتر بازگشتی پس از اتمام ایجاد شی است. * retEndPoint اگر ایجاد ناموفق باشد NULL است.
ارزش های بازگشتی
INET_ERROR_INCORRECT_STATE
اگر شی InetLayer مقداردهی اولیه نشده باشد.
INET_ERROR_NO_ENDPOINTS
اگر مخزن InetLayer RawEndPoint پر باشد و هیچ نقطه پایانی جدیدی ایجاد نشود.
INET_NO_ERROR
در مورد موفقیت

NewTCPEndPoint

INET_ERROR NewTCPEndPoint(
  TCPEndPoint **retEndPoint
)

یک شی TCPEndPoint جدید ایجاد می کند.

جزئیات
پارامترها
[in,out] retEndPoint
یک اشاره گر به یک اشاره گر از شی TCPEndPoint که یک پارامتر بازگشتی پس از اتمام ایجاد شی است. * retEndPoint اگر ایجاد ناموفق باشد NULL است.
ارزش های بازگشتی
INET_ERROR_INCORRECT_STATE
اگر شی InetLayer مقداردهی اولیه نشده باشد.
INET_ERROR_NO_ENDPOINTS
اگر مخزن InetLayer TCPEndPoint پر باشد و هیچ نقطه پایانی جدیدی ایجاد نشود.
INET_NO_ERROR
در مورد موفقیت

NewTunEndPoint

INET_ERROR NewTunEndPoint(
  TunEndPoint **retEndPoint
)

یک شی TunEndPoint جدید ایجاد می کند.

جزئیات
پارامترها
[in,out] retEndPoint
یک اشاره گر به یک اشاره گر از شی TunEndPoint که یک پارامتر بازگشتی پس از اتمام ایجاد شی است. * retEndPoint اگر ایجاد ناموفق باشد NULL است.
ارزش های بازگشتی
INET_ERROR_INCORRECT_STATE
اگر شی InetLayer مقداردهی اولیه نشده باشد.
INET_ERROR_NO_ENDPOINTS
اگر مخزن InetLayer TunEndPoint پر باشد و هیچ مورد جدیدی ایجاد نشود.
INET_NO_ERROR
در مورد موفقیت

NewUDPendPoint

INET_ERROR NewUDPEndPoint(
  UDPEndPoint **retEndPoint
)

یک شی UDPEndPoint جدید ایجاد می کند.

جزئیات
پارامترها
[in,out] retEndPoint
یک اشاره گر به یک اشاره گر از شی UDPEndPoint که یک پارامتر بازگشتی پس از اتمام ایجاد شی است. * retEndPoint اگر ایجاد ناموفق باشد NULL است.
ارزش های بازگشتی
INET_ERROR_INCORRECT_STATE
اگر شی InetLayer مقداردهی اولیه نشده باشد.
INET_ERROR_NO_ENDPOINTS
اگر مخزن InetLayer UDPEndPoint پر باشد و هیچ نقطه پایانی جدیدی ایجاد نشود.
INET_NO_ERROR
در مورد موفقیت

PrepareSelect

void PrepareSelect(
  int & nfds,
  fd_set *readfds,
  fd_set *writefds,
  fd_set *exceptfds,
  struct timeval & sleepTime
)

مجموعه ای از توصیفگرهای فایل را برای select() آماده کنید تا با آنها کار کنید.

جزئیات
پارامترها
[out] nfds
محدوده توصیفگرهای فایل در مجموعه توصیفگر فایل.
[in] readfds
اشاره گر به مجموعه توصیفگرهای فایل قابل خواندن.
[in] writefds
اشاره گر به مجموعه توصیفگرهای فایل قابل نوشتن.
[in] exceptfds
اشاره گر به مجموعه توصیفگرهای فایل با خطا.
[in] sleepTimeTV
یک اشاره گر به ساختاری که مشخص می کند انتخاب کننده چقدر باید بخوابد

ResolveHostAddress

INET_ERROR ResolveHostAddress(
  const char *hostName,
  uint16_t hostNameLen,
  uint8_t options,
  uint8_t maxAddrs,
  IPAddress *addrArray,
  DNSResolveCompleteFunct onComplete,
  void *appState
)

رزولوشن آدرس IP یک نام میزبان مشخص شده را انجام دهید.

جزئیات
پارامترها
[in] hostName
یک اشاره گر به یک رشته C غیر NULL که نشان دهنده نام میزبانی است که باید پرس و جو شود.
[in] hostNameLen
طول رشته نام میزبان.
[in] options
یک مقدار صحیح که نحوه انجام وضوح نام میزبان را کنترل می کند.
                    Value should be one of the address family values from the
                    #DNSOptions enumeration:

                    #kDNSOption_AddrFamily_Any
                    #kDNSOption_AddrFamily_IPv4Only
                    #kDNSOption_AddrFamily_IPv6Only
                    #kDNSOption_AddrFamily_IPv4Preferred
                    #kDNSOption_AddrFamily_IPv6Preferred
[in] maxAddrs
حداکثر تعداد آدرس برای ذخیره در جدول DNS.
[in] addrArray
اشاره گر به جدول DNS.
[in] onComplete
هنگامی که یک درخواست DNS تکمیل می شود، یک اشاره گر به عملکرد برگشت به تماس.
[in] appState
یک اشاره گر به وضعیت برنامه برای ارسال به onComplete پس از تکمیل درخواست DNS.
ارزش های بازگشتی
INET_NO_ERROR
اگر درخواست DNS با موفقیت انجام شود.
INET_ERROR_NO_MEMORY
اگر مخزن حل لایه Inet پر باشد.
INET_ERROR_HOST_NAME_TOO_LONG
اگر نام میزبان درخواستی خیلی طولانی باشد.
INET_ERROR_HOST_NOT_FOUND
اگر نام میزبان درخواستی نمی تواند به یک آدرس حل شود.
INET_ERROR_DNS_TRY_AGAIN
اگر یک سرور نام یک نشانه خرابی موقت را برگرداند. بعدا دوباره امتحان کنید
INET_ERROR_DNS_NO_RECOVERY
اگر سرور نام یک خطای غیرقابل بازیابی را برگرداند.
INET_ERROR_NOT_IMPLEMENTED
اگر وضوح DNS در پلتفرم اصلی فعال نباشد.
other
خطای شبکه POSIX یا سیستم عامل توسط پیاده سازی حل کننده DNS زیربنایی برگردانده شده است.

ResolveHostAddress

INET_ERROR ResolveHostAddress(
  const char *hostName,
  uint16_t hostNameLen,
  uint8_t maxAddrs,
  IPAddress *addrArray,
  DNSResolveCompleteFunct onComplete,
  void *appState
)

رزولوشن آدرس IP یک نام میزبان مشخص شده را انجام دهید.

جزئیات
پارامترها
[in] hostName
یک اشاره گر به یک رشته C غیر NULL که نشان دهنده نام میزبانی است که باید پرس و جو شود.
[in] hostNameLen
طول رشته نام میزبان.
[in] maxAddrs
حداکثر تعداد آدرس برای ذخیره در جدول DNS.
[in] addrArray
اشاره گر به جدول DNS.
[in] onComplete
هنگامی که یک درخواست DNS تکمیل می شود، یک اشاره گر به عملکرد برگشت به تماس.
[in] appState
یک اشاره گر به وضعیت برنامه برای ارسال به onComplete پس از تکمیل درخواست DNS.
ارزش های بازگشتی
INET_NO_ERROR
اگر درخواست DNS با موفقیت انجام شود.
INET_ERROR_NO_MEMORY
اگر مخزن حل لایه Inet پر باشد.
INET_ERROR_HOST_NAME_TOO_LONG
اگر نام میزبان درخواستی خیلی طولانی باشد.
INET_ERROR_HOST_NOT_FOUND
اگر نام میزبان درخواستی نمی تواند به یک آدرس حل شود.
INET_ERROR_DNS_TRY_AGAIN
اگر یک سرور نام یک نشانه خرابی موقت را برگرداند. بعدا دوباره امتحان کنید
INET_ERROR_DNS_NO_RECOVERY
اگر سرور نام یک خطای غیرقابل بازیابی را برگرداند.
INET_ERROR_NOT_IMPLEMENTED
اگر وضوح DNS در پلتفرم اصلی فعال نباشد.
other
خطای شبکه POSIX یا سیستم عامل توسط پیاده سازی حل کننده DNS زیربنایی برگردانده شده است.

ResolveHostAddress

INET_ERROR ResolveHostAddress(
  const char *hostName,
  uint8_t maxAddrs,
  IPAddress *addrArray,
  DNSResolveCompleteFunct onComplete,
  void *appState
)

رزولوشن آدرس IP یک نام میزبان مشخص شده را انجام دهید.

جزئیات
پارامترها
[in] hostName
یک اشاره گر به یک رشته C با پایان NULL که نشان دهنده نام میزبانی است که باید پرس و جو شود.
[in] maxAddrs
حداکثر تعداد آدرس برای ذخیره در جدول DNS.
[in] addrArray
اشاره گر به جدول DNS.
[in] onComplete
هنگامی که یک درخواست DNS تکمیل می شود، یک اشاره گر به عملکرد برگشت به تماس.
[in] appState
یک اشاره گر به وضعیت برنامه برای ارسال به onComplete پس از تکمیل درخواست DNS.
ارزش های بازگشتی
INET_NO_ERROR
اگر درخواست DNS با موفقیت انجام شود.
INET_ERROR_NO_MEMORY
اگر مخزن حل لایه Inet پر باشد.
INET_ERROR_HOST_NAME_TOO_LONG
اگر نام میزبان درخواستی خیلی طولانی باشد.
INET_ERROR_HOST_NOT_FOUND
اگر نام میزبان درخواستی نمی تواند به یک آدرس حل شود.
INET_ERROR_DNS_TRY_AGAIN
اگر یک سرور نام یک نشانه خرابی موقت را برگرداند. بعدا دوباره امتحان کنید
INET_ERROR_DNS_NO_RECOVERY
اگر سرور نام یک خطای غیرقابل بازیابی را برگرداند.
INET_ERROR_NOT_IMPLEMENTED
اگر وضوح DNS در پلتفرم اصلی فعال نباشد.
other
خطای شبکه POSIX یا سیستم عامل توسط پیاده سازی حل کننده DNS زیربنایی برگردانده شده است.

SetPlatformData

void SetPlatformData(
  void *aPlatformData
)

این داده‌های پلتفرم خاص مشتری مشخص شده را برای بازیابی بعدی توسط پلتفرم کلاینت به نمونه تنظیم می‌کند.

جزئیات
پارامترها
[in] aPlatformData
داده های پلت فرم مشتری خاص برای تنظیم.

خاموش شدن

INET_ERROR Shutdown(
  void
)

این Deinitializer صریح InetLayer است و باید قبل از از بین بردن یک نمونه InetLayer نمونه فراخوانی شود.

پلتفرم‌ها ممکن است انتخاب کنند که INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS را در هدر پیکربندی مخصوص پلتفرم خود قرار دهند و قلاب‌های Platform::InetLayer::WillShutdown و Platform::InetLayer::DidShutdown را برای پاکسازی سفارشی‌سازی‌های افزونه‌های پلتفرم یا افزونه‌های ویژه پلتفرم فعال کنند.

جزئیات
برمی گرداند
INET_NO_ERROR در موفقیت؛ در غیر این صورت، یک خطای خاص که دلیل خرابی خاموش شدن را نشان می دهد.

SystemLayer

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
)

UpdateSnapshot

void UpdateSnapshot(
  nl::Weave::System::Stats::Snapshot & aSnapshot
)