nl::Inet::InetLayer

#include <src/inet/InetLayer.h>

Zapewnia to dostęp do usług internetowych, w tym liczników czasu, rozpoznawania nazw DNS, transportu sieciowego TCP, transportu w sieci UDP oraz transportu sieciowego (surowego) w jednym wątku.

Podsumowanie

W przypadku gniazd BSD/POSIX powiadomienia o gotowości zdarzenia są obsługiwane za pomocą deskryptorów plików i tradycyjnej ankiety / wybranej implementacji w ramach adaptacji platformy.

W przypadku LwIP powiadomienie o gotowości zdarzenia jest obsługiwane przez zdarzenia/wiadomości oraz właściwe dla platformy i systemu punkty zaczepienia systemu zdarzeń lub wiadomości.

Konstruktorzy i niszczyciele

InetLayer(void)
Jest to domyślny konstruktor InetLayer.

Typy publiczne

@5{
  kState_NotInitialized = 0,
  kState_Initialized = 1,
  kState_ShutdownInProgress = 2
}
enum | typ wyliczeniowy
Bieżący stan obiektu InetLayer.
DNSResolveCompleteFunct typedef
DNSResolver::OnResolveCompleteFunct

Atrybuty publiczne

State
enum nl::Inet::InetLayer::@5
Bieżący stan obiektu InetLayer.

Publiczne atrybuty statyczne

sInetEventHandlerDelegate

Funkcje publiczne

CanEnqueueDroppableEvent(void)
bool
CancelResolveHostAddress(DNSResolveCompleteFunct onComplete, void *appState)
void
Anuluj wszystkie oczekujące zapytania DNS (na potrzeby pasującego wywołania zwrotnego i stanu aplikacji), które mogą być nadal aktywne.
DroppableEventDequeued(void)
void
GetInterfaceFromAddr(const IPAddress & addr, InterfaceId & intfId)
Pobierz identyfikator interfejsu dla określonego adresu IP.
GetLinkLocalAddr(InterfaceId link, IPAddress *llAddr)
Pobierz lokalny adres IPv6 połączenia dla określonego linku lub interfejsu.
GetPlatformData(void)
void *
Spowoduje to zwrócenie wszystkich przypisanych do instancji danych platformy specyficznych dla klienta, jeśli została wcześniej ustawiona.
HandleSelectResult(int selectRes, fd_set *readfds, fd_set *writefds, fd_set *exceptfds)
void
Obsługa wejścia/wyjścia z wybranego wywołania.
Init(Weave::System::Layer & aSystemLayer, void *aContext)
Jest to jawny inicjator InetLayer.
InitQueueLimiter(void)
MatchLocalIPv6Subnet(const IPAddress & addr)
bool
Sprawdź, czy między podanym adresem IPv6 a którymikolwiek z lokalnie skonfigurowanych adresów IPv6 występuje dopasowanie prefiksu.
NewRawEndPoint(IPVersion ipVer, IPProtocol ipProto, RawEndPoint **retEndPoint)
Tworzy nowy obiekt RawEndPoint dla określonej wersji adresu IP i protokołu.
NewTCPEndPoint(TCPEndPoint **retEndPoint)
Tworzy nowy obiekt TCPEndPoint.
NewTunEndPoint(TunEndPoint **retEndPoint)
Tworzy nowy obiekt TunEndPoint.
NewUDPEndPoint(UDPEndPoint **retEndPoint)
Tworzy nowy obiekt UDPEndPoint.
PrepareSelect(int & nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval & sleepTime)
void
Przygotuj zestawy deskryptorów plików, z którymi będzie pracować select().
ResolveHostAddress(const char *hostName, uint16_t hostNameLen, uint8_t options, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
Rozpoznawanie adresu IP określonej nazwy hosta.
ResolveHostAddress(const char *hostName, uint16_t hostNameLen, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
Rozpoznawanie adresu IP określonej nazwy hosta.
ResolveHostAddress(const char *hostName, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
Rozpoznawanie adresu IP określonej nazwy hosta.
SetPlatformData(void *aPlatformData)
void
Spowoduje to ustawienie instancji danych platformy specyficznych dla klienta, aby mogły je później pobrać przez platformę klienta.
Shutdown(void)
Jest to jawny deinicjator InetLayer, który należy wywołać przed usunięciem utworzonej instancji InetLayer.
SystemLayer(void) const

Publiczne funkcje statyczne

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

Typy publiczne

@5

 @5

Bieżący stan obiektu InetLayer.

Właściwości
kState_Initialized

Stan zainicjowany.

kState_NotInitialized

Nie zainicjowano.

kState_ShutdownInProgress

Stan, w którym zostało aktywowane wyłączenie.

DNSResolveCompleteFunct

DNSResolver::OnResolveCompleteFunct DNSResolveCompleteFunct

Atrybuty publiczne

Stan

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

Bieżący stan obiektu InetLayer.

[TYLKO DO ODCZYTU] Bieżący stan.

Publiczne atrybuty statyczne

sInetEventHandlerDelegate

Weave::System::LwIPEventHandlerDelegate sInetEventHandlerDelegate

Funkcje publiczne

CanEnqueueDroppableEvent

bool CanEnqueueDroppableEvent(
  void
)

CancelResolveHostAddress

void CancelResolveHostAddress(
  DNSResolveCompleteFunct onComplete,
  void *appState
)

Anuluj wszystkie oczekujące zapytania DNS (na potrzeby pasującego wywołania zwrotnego i stanu aplikacji), które mogą być nadal aktywne.

Szczegóły
Parametry
[in] onComplete
Wskaźnik do funkcji wywołania zwrotnego po zakończeniu żądania DNS.
[in] appState
Wskaźnik do obiektu stanu aplikacji, który ma być przekazany do funkcji wywołania zwrotnego jako argument.

DroppableEventDequeued

void DroppableEventDequeued(
  void
)

GetInterfaceFromAddr

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

Pobierz identyfikator interfejsu dla określonego adresu IP.

Jeśli nie można wywnioskować identyfikatora interfejsu, jest on ustawiany na wartość INET_NULL_INTERFACEID.

Szczegóły
Parametry
[in] addr
Odwołanie do obiektu IPAddress.
[out] intfId
Odwołanie do obiektu InterfaceId.
Zwroty
INET_NO_ERROR bezwarunkowo.

GetLinkLocalAddr

INET_ERROR GetLinkLocalAddr(
  InterfaceId link,
  IPAddress *llAddr
)

Pobierz lokalny adres IPv6 połączenia dla określonego linku lub interfejsu.

Szczegóły
Parametry
[in] link
Interfejs, dla którego poszukuje się lokalnego adresu IPv6 połączenia.
[out] llAddr
Adres IPv6 połączenia lokalnego.
Zwracane wartości
INET_ERROR_NOT_IMPLEMENTED
Jeśli protokół IPv6 nie jest obsługiwany.
INET_ERROR_BAD_ARGS
Jeśli adres lokalny linku ma wartość NULL.
INET_ERROR_ADDRESS_NOT_FOUND
Jeśli link nie ma skonfigurowanego żadnego adresu.
INET_NO_ERROR
Na sukces.

GetPlatformData

void * GetPlatformData(
  void
)

Spowoduje to zwrócenie wszystkich przypisanych do instancji danych platformy specyficznych dla klienta, jeśli została wcześniej ustawiona.

Szczegóły
Zwroty
Dane platformy dotyczące klienta, jeśli zostały wcześniej ustawione. W przeciwnym razie zawiera wartość NULL.

HandleSelectResult

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

Obsługa wejścia/wyjścia z wybranego wywołania.

Ta metoda rejestruje oczekujące zdarzenie wejścia-wyjścia w każdym aktywnym punkcie końcowym, a następnie wywołuje odpowiednie funkcje obsługi wejścia-wyjścia dla tych punktów końcowych.

Szczegóły
Parametry
[in] selectRes
Zwracana wartość wybranego wywołania.
[in] readfds
Wskaźnik do zbioru deskryptorów plików do odczytu.
[in] writefds
Wskaźnik do zbioru deskryptorów plików zapisu.
[in] exceptfds
Wskaźnik do zbioru deskryptorów plików z błędami.

InetLayer

 InetLayer(
  void
)

Jest to domyślny konstruktor InetLayer.

Inicjuje on podstawowe dane użytkownika. Jednak ponieważ metoda InetLayer jest zgodna ze wzorcem projektowania inicjatora, metoda InetLayer::Init musi zostać wywołana przed użyciem obiektu.

Zainicjuj

INET_ERROR Init(
  Weave::System::Layer & aSystemLayer,
  void *aContext
)

Jest to jawny inicjator InetLayer.

Aby można było używać właściwości InetLayer, należy je wywołać i wykonać.

Element wywołujący może zawierać opcjonalny argument kontekstu, który będzie zwracany przez dowolne funkcje hooka związane z daną platformą. W przypadku adaptacji opartych na LwIP będzie to zwykle wskaźnik do kolejki zdarzeń powiązanej z instancją InetLayer.

Platformy mogą określić parametr INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS w nagłówku konfiguracji na potrzeby konkretnej platformy i włączyć elementy Platform::InetLayer::WillInit oraz Platform::InetLayer::DidInit, aby zastosować modyfikacje i rozszerzenia danych związane z daną platformą do InetLayer.

Szczegóły
Parametry
[in] aSystemLayer
Wymagana instancja warstwy systemowej Weave została już zainicjowana.
[in] aContext
Opcjonalny argument kontekstu, który będzie zwracany do elementu wywołującego za pomocą dowolnej funkcji zaczepienia odpowiedniej platformy.
Zwracane wartości
INET_ERROR_INCORRECT_STATE
Jeśli InetLayer ma nieprawidłowy stan.
INET_ERROR_NO_MEMORY
Jeśli w ramach InetLayer zabraknie zasobów na potrzeby tego żądania nowego licznika czasu.
other
Błędy związane z platformą wskazujące przyczynę błędu inicjowania.
INET_NO_ERROR
Na sukces.

InitQueueLimiter

INET_ERROR InitQueueLimiter(
  void
)

MatchLocalIPv6Subnet

bool MatchLocalIPv6Subnet(
  const IPAddress & addr
)

Sprawdź, czy między podanym adresem IPv6 a którymikolwiek z lokalnie skonfigurowanych adresów IPv6 występuje dopasowanie prefiksu.

Szczegóły
Parametry
[in] addr
Adres IPv6 pod kątem zgodności prefiksu.
Zwroty
Jeśli uda się znaleźć dopasowanie, wartość to „prawda”, w przeciwnym razie „fałsz”.

NewRawEndPoint

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

Tworzy nowy obiekt RawEndPoint dla określonej wersji adresu IP i protokołu.

Szczegóły
Parametry
[in] ipVer
IPv4 lub IPv6.
[in] ipProto
Protokół w grupie adresów IP (np. ICMPv4 lub ICMPv6).
[in,out] retEndPoint
Wskaźnik do obiektu RawEndPoint, który jest parametrem zwracanym po zakończeniu tworzenia obiektu. *retEndPoint ma wartość NULL, jeśli tworzenie się nie powiedzie.
Zwracane wartości
INET_ERROR_INCORRECT_STATE
Jeśli obiekt InetLayer nie został zainicjowany.
INET_ERROR_NO_ENDPOINTS
Jeśli pula InetLayerRawEndPoint jest pełna i nie można tworzyć nowych punktów końcowych,
INET_NO_ERROR
Na sukces.

NewTCPEndPoint

INET_ERROR NewTCPEndPoint(
  TCPEndPoint **retEndPoint
)

Tworzy nowy obiekt TCPEndPoint.

Szczegóły
Parametry
[in,out] retEndPoint
Wskaźnik do obiektu TCPEndPoint, który jest parametrem zwracanym po zakończeniu tworzenia obiektu. *retEndPoint ma wartość NULL, jeśli tworzenie się nie powiedzie.
Zwracane wartości
INET_ERROR_INCORRECT_STATE
Jeśli obiekt InetLayer nie został zainicjowany.
INET_ERROR_NO_ENDPOINTS
Jeśli pula InetLayerTCPEndPoint jest pełna i nie można tworzyć nowych punktów końcowych.
INET_NO_ERROR
Na sukces.

NewTunEndPoint

INET_ERROR NewTunEndPoint(
  TunEndPoint **retEndPoint
)

Tworzy nowy obiekt TunEndPoint.

Szczegóły
Parametry
[in,out] retEndPoint
Wskaźnik do obiektu TunEndPoint, który jest parametrem zwracanym po zakończeniu tworzenia obiektu. *retEndPoint ma wartość NULL, jeśli tworzenie się nie powiedzie.
Zwracane wartości
INET_ERROR_INCORRECT_STATE
Jeśli obiekt InetLayer nie został zainicjowany.
INET_ERROR_NO_ENDPOINTS
Jeśli pula InetLayerTunEndPoint jest pełna i nie można utworzyć nowych.
INET_NO_ERROR
Na sukces.

NewUDPEndPoint

INET_ERROR NewUDPEndPoint(
  UDPEndPoint **retEndPoint
)

Tworzy nowy obiekt UDPEndPoint.

Szczegóły
Parametry
[in,out] retEndPoint
Wskaźnik do obiektu UDPEndPoint, który jest parametrem zwracanym po zakończeniu tworzenia obiektu. *retEndPoint ma wartość NULL, jeśli tworzenie się nie powiedzie.
Zwracane wartości
INET_ERROR_INCORRECT_STATE
Jeśli obiekt InetLayer nie został zainicjowany.
INET_ERROR_NO_ENDPOINTS
Jeśli pula InetLayerUDPEndPoint jest pełna i nie można tworzyć nowych punktów końcowych.
INET_NO_ERROR
Na sukces.

PrepareSelect

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

Przygotuj zestawy deskryptorów plików, z którymi będzie pracować select().

Szczegóły
Parametry
[out] nfds
Zakres deskryptorów plików w zestawie deskryptorów plików.
[in] readfds
Wskaźnik do zbioru czytelnych deskryptorów plików.
[in] writefds
Wskaźnik do zbioru deskryptorów plików dostępnych do zapisu.
[in] exceptfds
Wskaźnik do zbioru deskryptorów plików z błędami.
[in] sleepTimeTV
Wskaźnik do struktury określający, jak długo wybrany element ma przesypiać

ResolveHostAddress

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

Rozpoznawanie adresu IP określonej nazwy hosta.

Szczegóły
Parametry
[in] hostName
Wskaźnik do ciągu znaków C bez wartości NULL, reprezentujący nazwę hosta, którego dotyczy zapytanie.
[in] hostNameLen
Długość ciągu znaków nazwy hosta.
[in] options
Wartość liczby całkowitej określająca sposób rozpoznawania nazwy hosta.
                    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
Maksymalna liczba adresów do przechowywania w tabeli DNS.
[in] addrArray
Wskaźnik do tabeli DNS.
[in] onComplete
Wskaźnik do funkcji wywołania zwrotnego po zakończeniu żądania DNS.
[in] appState
Wskaźnik do stanu aplikacji, który ma zostać przekazany do onComplete po zakończeniu żądania DNS.
Zwracane wartości
INET_NO_ERROR
jeśli żądanie DNS zostanie przetworzone pomyślnie.
INET_ERROR_NO_MEMORY
jeśli pula resolvera w warstwie jest pełna.
INET_ERROR_HOST_NAME_TOO_LONG
jeśli żądana nazwa hosta jest za długa.
INET_ERROR_HOST_NOT_FOUND
jeśli nie można rozpoznać nazwy hosta żądania na adres.
INET_ERROR_DNS_TRY_AGAIN
jeśli serwer nazw zwrócił komunikat o tymczasowej awarii, spróbuj ponownie później.
INET_ERROR_DNS_NO_RECOVERY
jeśli serwer nazw zwrócił nieodwracalny błąd.
INET_ERROR_NOT_IMPLEMENTED
jeśli rozpoznawanie nazw DNS nie jest włączone na platformie.
other
Błąd sieci lub systemu operacyjnego POSIX zwrócony przez podstawową implementację resolvera DNS.

ResolveHostAddress

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

Rozpoznawanie adresu IP określonej nazwy hosta.

Szczegóły
Parametry
[in] hostName
Wskaźnik do ciągu znaków C bez wartości NULL, reprezentujący nazwę hosta, którego dotyczy zapytanie.
[in] hostNameLen
Długość ciągu znaków nazwy hosta.
[in] maxAddrs
Maksymalna liczba adresów do przechowywania w tabeli DNS.
[in] addrArray
Wskaźnik do tabeli DNS.
[in] onComplete
Wskaźnik do funkcji wywołania zwrotnego po zakończeniu żądania DNS.
[in] appState
Wskaźnik do stanu aplikacji, który ma zostać przekazany do onComplete po zakończeniu żądania DNS.
Zwracane wartości
INET_NO_ERROR
jeśli żądanie DNS zostanie przetworzone pomyślnie.
INET_ERROR_NO_MEMORY
jeśli pula resolvera w warstwie jest pełna.
INET_ERROR_HOST_NAME_TOO_LONG
jeśli żądana nazwa hosta jest za długa.
INET_ERROR_HOST_NOT_FOUND
jeśli nie można rozpoznać nazwy hosta żądania na adres.
INET_ERROR_DNS_TRY_AGAIN
jeśli serwer nazw zwrócił komunikat o tymczasowej awarii, spróbuj ponownie później.
INET_ERROR_DNS_NO_RECOVERY
jeśli serwer nazw zwrócił nieodwracalny błąd.
INET_ERROR_NOT_IMPLEMENTED
jeśli rozpoznawanie nazw DNS nie jest włączone na platformie.
other
Błąd sieci lub systemu operacyjnego POSIX zwrócony przez podstawową implementację resolvera DNS.

ResolveHostAddress

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

Rozpoznawanie adresu IP określonej nazwy hosta.

Szczegóły
Parametry
[in] hostName
Wskaźnik do ciągu znaków C z zakończeniem wartości NULL, reprezentujący nazwę hosta, którego dotyczy zapytanie.
[in] maxAddrs
Maksymalna liczba adresów do przechowywania w tabeli DNS.
[in] addrArray
Wskaźnik do tabeli DNS.
[in] onComplete
Wskaźnik do funkcji wywołania zwrotnego po zakończeniu żądania DNS.
[in] appState
Wskaźnik do stanu aplikacji, który ma zostać przekazany do onComplete po zakończeniu żądania DNS.
Zwracane wartości
INET_NO_ERROR
jeśli żądanie DNS zostanie przetworzone pomyślnie.
INET_ERROR_NO_MEMORY
jeśli pula resolvera w warstwie jest pełna.
INET_ERROR_HOST_NAME_TOO_LONG
jeśli żądana nazwa hosta jest za długa.
INET_ERROR_HOST_NOT_FOUND
jeśli nie można rozpoznać nazwy hosta żądania na adres.
INET_ERROR_DNS_TRY_AGAIN
jeśli serwer nazw zwrócił komunikat o tymczasowej awarii, spróbuj ponownie później.
INET_ERROR_DNS_NO_RECOVERY
jeśli serwer nazw zwrócił nieodwracalny błąd.
INET_ERROR_NOT_IMPLEMENTED
jeśli rozpoznawanie nazw DNS nie jest włączone na platformie.
other
Błąd sieci lub systemu operacyjnego POSIX zwrócony przez podstawową implementację resolvera DNS.

SetPlatformData

void SetPlatformData(
  void *aPlatformData
)

Spowoduje to ustawienie instancji danych platformy specyficznych dla klienta, aby mogły je później pobrać przez platformę klienta.

Szczegóły
Parametry
[in] aPlatformData
Dane platformy klienta do ustawienia.

Wyłączono

INET_ERROR Shutdown(
  void
)

Jest to jawny deinicjator InetLayer, który należy wywołać przed usunięciem utworzonej instancji InetLayer.

Platformy mogą określić parametr INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS w nagłówku konfiguracji na danej platformie i włączyć te opcje:InetLayer

Szczegóły
Zwroty
INET_NO_ERROR w przypadku powodzenia; w innym przypadku określony błąd wskazujący przyczynę niepowodzenia wyłączenia.

SystemLayer

Weave::System::Layer * SystemLayer(
  void
) const 

Publiczne funkcje statyczne

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
)