nl:: Inet:: IPEndPointBasis
#include <src/inet/IPEndPointBasis.h>
이 클래스의 객체는 인스턴스화할 수 없는 IP 프로토콜 엔드포인트를 나타냅니다.
요약
상속
상속 대상: nl::Inet::EndPointBasisDirect Known Subclasses:
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
|
엔드포인트가 초기화되었지만 열려 있지 않습니다. |
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)
수신 오류 이벤트 처리 함수의 유형입니다.
이 유형의 함수를 OnReceiveError
위임 멤버에 제공하여 endPoint
에서 수신 오류 이벤트를 처리합니다. err
인수는 오류 유형에 관한 구체적인 세부정보를 제공합니다.
세부정보 | |||||
---|---|---|---|---|---|
매개변수 |
|
공개 속성
mState
enum nl::Inet::IPEndPointBasis::@8 mState
기본 엔드포인트의 기본 동적 상태입니다.
객체는 '준비됨' 상태로 초기화되고 로컬 인터페이스 주소에 바인딩된 후 '바인딩된' 상태로 진행된 후 ICMP 메시지 수신을 위한 이벤트 처리를 위해 연속이 등록된 경우 '수신 대기' 상태로 진행됩니다.
참고: 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 패킷에서만 발생해야 합니다.