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
기본 엔드포인트의 기본 동적 상태입니다.
객체는 '준비됨' 상태에서 초기화됩니다. '바운드' 상태가 된 다음 '수신 대기' 상태를 유지합니다.
참고: 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
기본 엔드포인트의 기본 동적 상태입니다.
객체는 '준비됨' 상태에서 초기화됩니다. '바운드' 상태가 된 다음 '수신 대기' 상태를 유지합니다.
참고: kBasisState_Closed
상태 열거형은 이전 바이너리 호환성을 위해 kState_Ready
에 매핑됩니다. 기존 kState_Closed
는 '아직 열지 않음'의 차이를 별도로 식별하기 위해 존재합니다. '이전에 열어본 문서
종료" 이전에 kState_Ready
및 kState_Closed
상태에 있던 상태
보호된 속성
mBoundIntfId
InterfaceId mBoundIntfId
공개 함수
JoinMulticastGroup
INET_ERROR JoinMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
IP 멀티캐스트 그룹에 참여합니다.
엔드포인트를 지정된 인터페이스의 제공된 멀티캐스트 그룹에 조인합니다.
세부정보 | |||||||||
---|---|---|---|---|---|---|---|---|---|
매개변수 |
|
||||||||
반환 값 |
|
LeaveMulticastGroup
INET_ERROR LeaveMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
IP 멀티캐스트 그룹에서 탈퇴합니다.
지정된 인터페이스의 제공된 멀티캐스트 그룹에서 엔드포인트를 삭제합니다.
세부정보 | |||||||||
---|---|---|---|---|---|---|---|---|---|
매개변수 |
|
||||||||
반환 값 |
|
SetMulticastLoopback
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 )
HandleDataReceived
void HandleDataReceived( Weave::System::PacketBuffer *aBuffer )
HandlePendingIO
void HandlePendingIO( uint16_t aPort )
Init
void Init( InetLayer *aInetLayer )
PrepareIO
SocketEvents PrepareIO( void )
SendMsg
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 사용 시 패킷에 대한 정보가 '숨김'됩니다. 패킷 버퍼의 데이터가 시작되기 전에 예약된 공간에 있을 것입니다. 이는 시스템 레이어 이벤트에 인수가 두 개만 있기 때문에 필요합니다. 이 경우 인수는 종료 지점에 대한 포인터와 버퍼에 대한 포인터를 전달하는 데 사용됩니다.
세부정보 | |||
---|---|---|---|
매개변수 |
|
||
반환 |
성공 시 주소 정보에 대한 포인터 그렇지 않은 경우, 주소 정보를 위한 패킷에 공간이 충분하지 않은 경우 NULL입니다.
|
대부분의 경우 데이터가 작동하기 전에 정보를 저장하는 이러한 트릭은 LwIP IP 메시지의 첫 번째 버퍼에 이더넷/IP/UDP 헤더에 사용된 공간이 포함되어 있기 때문입니다. 하지만 IPPacketInfo 구조의 현재 크기 (40바이트)를 고려할 때 단일 패킷 버퍼에 페이로드와 함께 구조를 저장할 공간이 충분하지 않을 수 있습니다. 실제로 이는 이더넷 헤더 없이 도착하는 매우 큰 IPv4 패킷에서만 발생합니다.