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)
|
지정된 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)
|
특정 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)
|
지정된 호스트 이름의 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
공개 속성
공개 정적 속성
sInetEventHandlerDelegate
Weave::System::LwIPEventHandlerDelegate sInetEventHandlerDelegate
공개 함수
CanEnqueueDroppableEvent
bool CanEnqueueDroppableEvent( void )
CancelResolveHostAddress
void CancelResolveHostAddress( DNSResolveCompleteFunct onComplete, void *appState )
아직 활성 상태일 수 있는 대기 중인 DNS 쿼리 (일치하는 완료 콜백 및 애플리케이션 상태)를 취소합니다.
세부정보 | |||||
---|---|---|---|---|---|
매개변수 |
|
DroppableEventDequeued
void DroppableEventDequeued( void )
GetInterfaceFromAddr
INET_ERROR GetInterfaceFromAddr( const IPAddress & addr, InterfaceId & intfId )
지정된 IP 주소의 인터페이스 식별자를 가져옵니다.
인터페이스 식별자를 파생할 수 없는 경우 INET_NULL_INTERFACEID로 설정됩니다.
세부정보 | |||||
---|---|---|---|---|---|
매개변수 |
|
||||
반환 |
INET_NO_ERROR를 무조건적으로 반환합니다.
|
GetLinkLocalAddr
INET_ERROR GetLinkLocalAddr( InterfaceId link, IPAddress *llAddr )
지정된 링크 또는 인터페이스의 링크-로컬 IPv6 주소를 가져옵니다.
세부정보 | |||||||||
---|---|---|---|---|---|---|---|---|---|
매개변수 |
|
||||||||
반환 값 |
|
GetPlatformData
void * GetPlatformData( void )
인스턴스에 할당된 클라이언트별 플랫폼 데이터가 이전에 설정된 경우 이를 반환합니다.
세부정보 | |
---|---|
반환 |
클라이언트별 플랫폼 데이터(이전에 설정된 경우) 그렇지 않으면 NULL입니다.
|
HandleSelectResult
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 메서드는 객체를 사용하기 전에 성공적으로 호출되어야 합니다.
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 )
MatchLocalIPv6Subnet
bool MatchLocalIPv6Subnet( const IPAddress & addr )
지정된 IPv6 주소와 로컬에서 구성된 IPv6 주소 간에 접두사가 일치하는지 확인합니다.
세부정보 | |||
---|---|---|---|
매개변수 |
|
||
반환 |
일치하는 항목이 있으면 true를, 그렇지 않으면 false를 반환합니다.
|
NewRawEndPoint
INET_ERROR NewRawEndPoint( IPVersion ipVer, IPProtocol ipProto, RawEndPoint **retEndPoint )
특정 IP 버전 및 프로토콜에 대한 새 RawEndPoint 객체를 만듭니다.
세부정보 | |||||||
---|---|---|---|---|---|---|---|
매개변수 |
|
||||||
반환 값 |
|
NewTCPEndPoint
INET_ERROR NewTCPEndPoint( TCPEndPoint **retEndPoint )
새 TCPEndPoint 객체를 만듭니다.
세부정보 | |||||||
---|---|---|---|---|---|---|---|
매개변수 |
|
||||||
반환 값 |
|
NewTunEndPoint
INET_ERROR NewTunEndPoint( TunEndPoint **retEndPoint )
새 TunEndPoint 객체를 만듭니다.
세부정보 | |||||||
---|---|---|---|---|---|---|---|
매개변수 |
|
||||||
반환 값 |
|
NewUDPEndPoint
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 )
지정된 호스트 이름의 IP 주소 확인을 수행합니다.
세부정보 | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
매개변수 |
|
||||||||||||||||
반환 값 |
|
ResolveHostAddress
INET_ERROR ResolveHostAddress( const char *hostName, uint16_t hostNameLen, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState )
지정된 호스트 이름의 IP 주소 확인을 수행합니다.
세부정보 | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
매개변수 |
|
||||||||||||||||
반환 값 |
|
ResolveHostAddress
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, 그렇지 않으면 종료 실패 이유를 나타내는 특정 오류가 발생합니다.
|
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 )