нл:: Инет:: ИнетЛайер
#include <src/inet/InetLayer.h>
Это обеспечивает доступ к службам Интернета, включая таймеры, разрешение системы доменных имен (DNS), сетевой транспорт TCP, сетевой транспорт UDP и необработанный сетевой транспорт, для одного потока.
Краткое содержание
Для сокетов BSD/POSIX уведомление о готовности события обрабатывается с помощью файловых дескрипторов и традиционной реализации опроса/выбора в адаптации платформы.
Для LwIP уведомление о готовности события обрабатывается через события/сообщения и специфичные для платформы и системы перехватчики для системы событий/сообщений.
Конструкторы и деструкторы | |
---|---|
InetLayer (void) Это конструктор InetLayer по умолчанию. |
Публичные типы | |
---|---|
@5 { | перечисление Текущее состояние объекта InetLayer . |
DNSResolveCompleteFunct | определение типа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 Обработка ввода-вывода из выбранного вызова. |
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) | |
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
Общественные функции
CanEnqueueDroppableEvent
bool CanEnqueueDroppableEvent( void )
ОтменаРесолвоХостАдресс
void CancelResolveHostAddress( DNSResolveCompleteFunct onComplete, void *appState )
Отмените любой ожидающий DNS-запрос (для соответствующего обратного вызова завершения и состояния приложения), который все еще может быть активным.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
|
DroppableEventDequeued
void DroppableEventDequeued( void )
ПолучитьИнтерфейсФромАддр
INET_ERROR GetInterfaceFromAddr( const IPAddress & addr, InterfaceId & intfId )
Получите идентификатор интерфейса для указанного IP-адреса.
Если идентификатор интерфейса не может быть получен, ему присваивается значение INET_NULL_INTERFACEID .
Подробности | |||||
---|---|---|---|---|---|
Параметры |
| ||||
Возврат | INET_NO_ERROR безусловно. |
GetLinkLocalAddr
INET_ERROR GetLinkLocalAddr( InterfaceId link, IPAddress *llAddr )
Получите локальный IPv6-адрес ссылки для указанной ссылки или интерфейса.
Подробности | |||||||||
---|---|---|---|---|---|---|---|---|---|
Параметры |
| ||||||||
Возвращаемые значения |
|
Получить данные платформы
void * GetPlatformData( void )
Это возвращает любые данные платформы, специфичные для клиента, назначенные экземпляру, если они были установлены ранее.
Подробности | |
---|---|
Возврат | Данные платформы, специфичные для клиента, если они были установлены ранее; в противном случае НУЛЬ. |
HandleSelectResult
void HandleSelectResult( int selectRes, fd_set *readfds, fd_set *writefds, fd_set *exceptfds )
Обработка ввода-вывода из выбранного вызова.
Этот метод регистрирует ожидающее событие ввода-вывода в каждой активной конечной точке, а затем вызывает соответствующие функции обработки ввода-вывода для этих конечных точек.
Подробности | |||||||||
---|---|---|---|---|---|---|---|---|---|
Параметры |
|
ИнетЛайер
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 для выполнения специфичных для платформы настроек или расширений данных для InetLayer .
Подробности | |||||||||
---|---|---|---|---|---|---|---|---|---|
Параметры |
| ||||||||
Возвращаемые значения |
|
InitQueueLimiter
INET_ERROR InitQueueLimiter( void )
СопоставлениелокальныйIPv6Подсеть
bool MatchLocalIPv6Subnet( const IPAddress & addr )
Проверьте, совпадает ли префикс между указанным адресом IPv6 и любым из локально настроенных адресов IPv6.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возврат | true, если найдено успешное совпадение, в противном случае — false. |
НовыйRawEndPoint
INET_ERROR NewRawEndPoint( IPVersion ipVer, IPProtocol ipProto, RawEndPoint **retEndPoint )
Создает новый объект RawEndPoint для определенной версии IP и протокола.
Подробности | |||||||
---|---|---|---|---|---|---|---|
Параметры |
| ||||||
Возвращаемые значения |
|
НьюTCPEndPoint
INET_ERROR NewTCPEndPoint( TCPEndPoint **retEndPoint )
Создает новый объект TCPEndPoint .
Подробности | |||||||
---|---|---|---|---|---|---|---|
Параметры |
| ||||||
Возвращаемые значения |
|
NewTunEndPoint
INET_ERROR NewTunEndPoint( TunEndPoint **retEndPoint )
Создает новый объект TunEndPoint .
Подробности | |||||||
---|---|---|---|---|---|---|---|
Параметры |
| ||||||
Возвращаемые значения |
|
НоваяUDPEndPoint
INET_ERROR NewUDPEndPoint( UDPEndPoint **retEndPoint )
Создает новый объект UDPEndPoint .
Подробности | |||||||
---|---|---|---|---|---|---|---|
Параметры |
| ||||||
Возвращаемые значения |
|
ПодготовитьВыбрать
void PrepareSelect( int & nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval & sleepTime )
Подготовьте наборы файловых дескрипторов для работы select()
.
Подробности | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Параметры |
|
Ресолвохостадрес
INET_ERROR ResolveHostAddress( const char *hostName, uint16_t hostNameLen, uint8_t options, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState )
Выполните разрешение IP-адреса указанного имени хоста.
Подробности | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Параметры |
| ||||||||||||||||
Возвращаемые значения |
|
Ресолвохостадрес
INET_ERROR ResolveHostAddress( const char *hostName, uint16_t hostNameLen, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState )
Выполните разрешение IP-адреса указанного имени хоста.
Подробности | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Параметры |
| ||||||||||||||||
Возвращаемые значения |
|
Резолвхостадрес
INET_ERROR ResolveHostAddress( const char *hostName, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState )
Выполните разрешение IP-адреса указанного имени хоста.
Подробности | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Параметры |
| ||||||||||||||||
Возвращаемые значения |
|
SetPlatformData
void SetPlatformData( void *aPlatformData )
При этом указанные данные платформы, специфичные для клиента, устанавливаются в экземпляр для последующего извлечения клиентской платформой.
Подробности | |||
---|---|---|---|
Параметры |
|
Неисправность
INET_ERROR Shutdown( void )
Это явный деинициализатор InetLayer , который следует вызывать перед удалением созданного экземпляра InetLayer .
Платформы могут указать INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS в своем заголовке конфигурации для конкретной платформы и включить перехватчики Platform::InetLayer::WillShutdown и Platform::InetLayer::DidShutdown для очистки специфичных для платформы настроек или расширений данных в 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 )
IsDroppableEvent
bool IsDroppableEvent( Weave::System::EventType aType )
Обновить снимок
void UpdateSnapshot( nl::Weave::System::Stats::Snapshot & aSnapshot )