nl:: Inet:: IPEndPointBasis
#include <src/inet/IPEndPointBasis.h>
이 클래스의 객체는 인스턴스화할 수 없는 IP 프로토콜 엔드포인트를 나타냅니다.
요약
상속
상속: nl::Inet::EndPointBasis직접 알려진 서브클래스:
nl::Inet::RawEndPoint
nl::Inet::UDPEndPoint
공개 유형 |
|
---|---|
@8{
|
enum 기본 엔드포인트의 기본 동적 상태입니다. |
@9{
|
enumSendMsg 메서드의 옵션 플래그를 전송합니다. |
OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)
|
typedefvoid(*
메시지 수신 수신 이벤트 처리 함수의 유형입니다. |
OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)
|
typedefvoid(*
수신 오류 이벤트 처리 함수의 유형입니다. |
공개 속성 |
|
---|---|
OnMessageReceived
|
엔드포인트의 메시지 수신 이벤트 처리 함수 대리자
|
OnReceiveError
|
엔드포인트에서 함수 이벤트 함수 대리자 위임을 수신합니다.
|
mState
|
enum nl::Inet::IPEndPointBasis::@8
기본 엔드포인트의 기본 동적 상태입니다.
|
보호된 속성 |
|
---|---|
mBoundIntfId
|
InterfaceId
|
공개 함수 |
|
---|---|
JoinMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
|
IP 멀티캐스트 그룹에 가입합니다.
|
LeaveMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
|
IP 멀티캐스트 그룹에서 탈퇴합니다.
|
SetMulticastLoopback(IPVersion aIPVersion, bool aLoopback)
|
IP 멀티캐스트 트래픽을 루프백해야 하는지 설정합니다.
|
보호된 함수 |
|
---|---|
Bind(IPAddressType aAddressType, IPAddress aAddress, uint16_t aPort, InterfaceId aInterfaceId)
|
|
BindInterface(IPAddressType aAddressType, InterfaceId aInterfaceId)
|
|
GetSocket(IPAddressType aAddressType, int aType, int aProtocol)
|
|
HandleDataReceived(Weave::System::PacketBuffer *aBuffer)
|
void
|
HandlePendingIO(uint16_t aPort)
|
void
|
Init(InetLayer *aInetLayer)
|
void
|
PrepareIO(void)
|
|
SendMsg(const IPPacketInfo *aPktInfo, Weave::System::PacketBuffer *aBuffer, uint16_t aSendFlags)
|
공개 정적 함수 |
|
---|---|
FindNetifFromInterfaceId(InterfaceId aInterfaceId)
|
struct netif *
|
보호된 정적 함수 |
|
---|---|
GetPacketInfo(Weave::System::PacketBuffer *buf)
|
LwIP IP 레이어 소스 및 대상 주소 정보를 가져옵니다.
|
공개 유형
@8
@8
기본 엔드포인트의 기본 동적 상태입니다.
객체는 '준비' 상태에서 초기화되며, 로컬 인터페이스 주소에 바인딩한 후 "바인딩' 상태로 진행한 다음 ICMP 메시지 수신을 위해 이벤트를 계속 처리하기 위해 등록된 상태가 계속됩니다.
참고: 이전 바이너리 호환성 이유로 kBasisState_Closed
상태 열거는 kState_Ready
에 매핑됩니다. 기존 kState_Closed
은 이전에 kState_Ready
및 kState_Closed
상태에 있던 '아직 열리지 않음' 및 '이전에 닫힘'을 구분하기 위해 존재합니다.
속성 | |
---|---|
kState_Bound
|
엔드포인트에 귀속되지만 수신 대기하지 않음 |
kState_Closed
|
엔드포인트가 닫혔으며 출시 준비되었습니다. |
kState_Listening
|
데이터그램 수신 엔드포인트입니다. |
kState_Ready
|
엔드포인트가 초기화되었지만 열리지 않았습니다. |
@9
@9
SendMsg
메서드의 옵션 플래그를 전송합니다.
속성 | |
---|---|
kSendFlag_RetainBuffer
|
파괴적인 메시지를 직접 대기열에 추가하지 마세요. 사본을 큐에 추가합니다. |
OnMessageReceivedFunct
void(* OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)
메시지 수신 수신 이벤트 처리 함수의 유형입니다.
OnMessageReceived
대리자 구성원에게 이 유형의 함수를 제공하여 endPoint
의 메시지 수신 이벤트를 처리합니다. 여기에서 msg
는 senderAddr
의 발신자에게서 받은 메시지 텍스트입니다.
세부정보 | |||||||
---|---|---|---|---|---|---|---|
매개변수 |
|
OnReceiveErrorFunct
void(* OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)
수신 오류 이벤트 처리 함수의 유형입니다.
endPoint
에서 수신 오류 이벤트를 처리하도록 OnReceiveError
대리자에 이 유형의 함수를 제공합니다. err
인수는 오류 유형에 관한 구체적인 세부정보를 제공합니다.
세부정보 | |||||
---|---|---|---|---|---|
매개변수 |
|
공개 속성
mState
enum nl::Inet::IPEndPointBasis::@8 mState
기본 엔드포인트의 기본 동적 상태입니다.
객체는 '준비' 상태에서 초기화되며, 로컬 인터페이스 주소에 바인딩한 후 "바인딩' 상태로 진행한 다음 ICMP 메시지 수신을 위해 이벤트를 계속 처리하기 위해 등록된 상태가 계속됩니다.
참고: 이전 바이너리 호환성 이유로 kBasisState_Closed
상태 열거는 kState_Ready
에 매핑됩니다. 기존 kState_Closed
은 이전에 kState_Ready
및 kState_Closed
상태에 있던 '아직 열리지 않음' 및 '이전에 닫힘'을 구분하기 위해 존재합니다.
보호된 속성
mBoundIntfId
InterfaceId mBoundIntfId
공개 함수
조인MulticastGroup
INET_ERROR JoinMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
IP 멀티캐스트 그룹에 가입합니다.
엔드포인트를 지정된 인터페이스에서 제공된 멀티캐스트 그룹에 연결합니다.
세부정보 | |||||||||
---|---|---|---|---|---|---|---|---|---|
매개변수 |
|
||||||||
반환 값 |
|
LeaveMulticastGroup
INET_ERROR LeaveMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
IP 멀티캐스트 그룹에서 탈퇴합니다.
지정된 인터페이스의 제공된 멀티캐스트 그룹에서 엔드포인트를 삭제합니다.
세부정보 | |||||||||
---|---|---|---|---|---|---|---|---|---|
매개변수 |
|
||||||||
반환 값 |
|
멀티캐스트 루프백
INET_ERROR SetMulticastLoopback( IPVersion aIPVersion, bool aLoopback )
IP 멀티캐스트 트래픽을 루프백해야 하는지 설정합니다.
IP 멀티캐스트 트래픽을 이 엔드포인트로 다시 루프 재생할지 여부를 설정합니다.
세부정보 | |||||
---|---|---|---|---|---|
매개변수 |
|
||||
반환 값 |
|
보호된 함수
결합
INET_ERROR Bind( IPAddressType aAddressType, IPAddress aAddress, uint16_t aPort, InterfaceId aInterfaceId )
BindInterface
INET_ERROR BindInterface( IPAddressType aAddressType, InterfaceId aInterfaceId )
GetSocket
INET_ERROR GetSocket( IPAddressType aAddressType, int aType, int aProtocol )
핸들 데이터 수신
void HandleDataReceived( Weave::System::PacketBuffer *aBuffer )
처리 대기 중
void HandlePendingIO( uint16_t aPort )
Init
void Init( InetLayer *aInetLayer )
준비
SocketEvents PrepareIO( void )
메시지 전송
INET_ERROR SendMsg( const IPPacketInfo *aPktInfo, Weave::System::PacketBuffer *aBuffer, uint16_t aSendFlags )
공개 정적 함수
FindNetifFromInterfaceId
struct netif * FindNetifFromInterfaceId( InterfaceId aInterfaceId )
보호된 정적 함수
GetPacketInfo
IPPacketInfo * GetPacketInfo( Weave::System::PacketBuffer *buf )
LwIP IP 레이어 소스 및 대상 주소 정보를 가져옵니다.
패킷에 관한 LwIP 정보 사용은 패킷 버퍼에서 데이터가 시작되기 전에 예약된 공간에 ''hidden''입니다. 이는 시스템 레이어 이벤트에는 두 개의 인수만 포함하는데, 이 경우에는 인수를 종료 지점에 대한 버퍼와 버퍼에 대한 포인터를 전달하는 데 사용되기 때문에 필요합니다.
세부정보 | |||
---|---|---|---|
매개변수 |
|
||
반환 |
성공 시 주소 정보를 가리키는 포인터 또는 주소 정보를 위한 패킷의 공간이 충분하지 않은 경우 NULL
|
대부분의 경우 데이터 전에 정보를 저장하는 기법은 LwIP IP 메시지의 첫 번째 버퍼에 이더넷/IP/UDP 헤더에 사용되는 공간이 포함되어 있기 때문입니다. 하지만 현재 IPPacketInfo 구조 (40바이트)의 크기를 고려했을 때 단일 패킷 버퍼에 페이로드와 함께 구조를 저장할 공간이 충분하지 않을 수도 있습니다. 실제로는 이더넷 헤더 없이 도착하는 초대형 IPv4 패킷에만 발생합니다.