Google is committed to advancing racial equity for Black communities. See how.

এনএল :: ইনাইট :: IPEndPointBasis

#include <src/inet/IPEndPointBasis.h>

এই শ্রেণীর অবজেক্টগুলি অ-ইনস্ট্যান্টেবল আইপি প্রোটোকল এন্ডপয়েন্টগুলিকে উপস্থাপন করে।

সারসংক্ষেপ

উত্তরাধিকার

থেকে উত্তরাধিকারী nl এর :: Inet :: EndPointBasis
প্রত্যক্ষ জ্ঞাত সাবক্লাস:
  nl :: Inet :: RawEndPoint
  nl :: Inet :: UDPEndPoint

পাবলিক প্রকার

@8 {
kState_Ready = kBasisState_Closed,
kState_Bound = 1,
kState_Listening = 2,
kState_Closed = 3
}
এনাম
অন্তর্নিহিত শেষ পয়েন্টের বেসিক গতিশীল অবস্থা।
@9 {
kSendFlag_RetainBuffer = 0x0040
}
এনাম
জন্য প্রেরণ বিকল্প পতাকা SendMsg পদ্ধতি।
OnMessageReceivedFunct )(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo) টাইপডেফ
void(*
বার্তা পাঠ্যের অভ্যর্থনা ইভেন্ট হ্যান্ডলিং ফাংশনের ধরণ।
OnReceiveErrorFunct )(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo) টাইপডেফ
void(*
অভ্যর্থনা ত্রুটির ইভেন্ট হ্যান্ডলিং ফাংশনের ধরণ।

জনসাধারণের গুণাবলী

OnMessageReceived
শেষ পয়েন্টের বার্তা সংবর্ধনা ইভেন্ট হ্যান্ডলিং ফাংশন প্রতিনিধি।
OnReceiveError
শেষপয়েন্টের প্রাপ্তির ত্রুটি ইভেন্ট পরিচালনা করে ফাংশন প্রতিনিধি।
mState
enum nl::Inet::IPEndPointBasis::@8
অন্তর্নিহিত শেষ পয়েন্টের বেসিক গতিশীল অবস্থা।

সুরক্ষিত গুণাবলী

mBoundIntfId
InterfaceId

পাবলিক ফাংশন

JoinMulticastGroup (InterfaceId aInterfaceId, const IPAddress & aAddress)
একটি আইপি মাল্টিকাস্ট গ্রুপে যোগ দিন।
LeaveMulticastGroup (InterfaceId aInterfaceId, const IPAddress & aAddress)
একটি আইপি মাল্টিকাস্ট গ্রুপ ছেড়ে দিন।
SetMulticastLoopback (IPVersion aIPVersion, bool aLoopback)
আইপি মাল্টিকাস্ট ট্র্যাফিক লুপ করা উচিত কিনা তা সেট করুন।

সুরক্ষিত ফাংশন

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 আইপি স্তর উত্স এবং গন্তব্য ঠিকানা ঠিকানা পান।

পাবলিক প্রকার

@ 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

ধ্বংসাত্মকভাবে বার্তাকে সরাসরি সারি করবেন না।

একটি অনুলিপি সারি করুন।

#MessageReusedFunct

void(* OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)

বার্তা পাঠ্যের অভ্যর্থনা ইভেন্ট হ্যান্ডলিং ফাংশনের ধরণ।

এই ধরনের একটি ফাংশন প্রদান OnMessageReceived উপর প্রক্রিয়া বার্তা পাঠ্য অভ্যর্থনা ঘটনা প্রতিনিধি সদস্য endPoint যেখানে msg এ প্রেরকের কাছ থেকে প্রাপ্ত বার্তার পাঠ্য senderAddr

বিশদ
পরামিতি
[in] endPoint
ইভেন্টের সাথে যুক্ত শেষ পয়েন্ট।
[in] msg
বার্তা পাঠ্য প্রাপ্ত।
[in] senderAddr
প্রেরকের আইপি ঠিকানা।

অনারসিপ এয়াররফান্ট

void(* OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)

অভ্যর্থনা ত্রুটির ইভেন্ট হ্যান্ডলিং ফাংশনের ধরণ।

এই ধরনের একটি ফাংশন প্রদান OnReceiveError উপর প্রক্রিয়া অভ্যর্থনা ত্রুটি ঘটনা প্রতিনিধি সদস্য endPointerr যুক্তি ত্রুটি ধরণ সম্পর্কে সুনির্দিষ্ট বিস্তারিত প্রদান করে।

বিশদ
পরামিতি
[in] endPoint
ইভেন্টের সাথে যুক্ত শেষ পয়েন্ট।
[in] err
ত্রুটির কারণ।

জনসাধারণের গুণাবলী

#MessageReused

OnMessageReceivedFunct OnMessageReceived

শেষ পয়েন্টের বার্তা সংবর্ধনা ইভেন্ট হ্যান্ডলিং ফাংশন প্রতিনিধি।

অনারসিপিআরআর

OnReceiveErrorFunct OnReceiveError

শেষপয়েন্টের প্রাপ্তির ত্রুটি ইভেন্ট পরিচালনা করে ফাংশন প্রতিনিধি।

এমস্টেট

enum nl::Inet::IPEndPointBasis::@8 mState

অন্তর্নিহিত শেষ পয়েন্টের বেসিক গতিশীল অবস্থা।

অবজেক্টগুলি "প্রস্তুত" অবস্থায় প্রবর্তন করা হয়, স্থানীয় ইন্টারফেস ঠিকানার সাথে আবদ্ধ হওয়ার পরে "আবদ্ধ" অবস্থানে এগিয়ে যান, তারপরে আইসিএমপি বার্তাগুলি গ্রহণের জন্য ইভেন্টগুলি পরিচালনা করার জন্য তাদের ধারাবাহিকতা নিবন্ধিত হলে "শ্রবণ" অবস্থানে যান।

নোট: kBasisState_Closed রাষ্ট্র শুমার ম্যাপ করা হয় kState_Ready ঐতিহাসিক বাইনারি-সঙ্গতির কারণে। বিদ্যমান kState_Closed আলাদাভাবে যে পূর্বে অস্তিত্ব মধ্যে "এখনো খোলা হয়নি" এবং "পূর্বে খুলেছেন এখন বন্ধ" পার্থক্য চিহ্নিত করার জন্য বিদ্যমান kState_Ready এবং kState_Closed যুক্তরাষ্ট্র।

সুরক্ষিত গুণাবলী

mBoundIntfId

InterfaceId mBoundIntfId

পাবলিক ফাংশন

যোগমাল্টিকাস্টগ্রুপ

INET_ERROR JoinMulticastGroup(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

একটি আইপি মাল্টিকাস্ট গ্রুপে যোগ দিন।

নির্দিষ্ট ইন্টারফেসে সরবরাহিত মাল্টিকাস্ট গ্রুপে এন্ডপয়েন্টে যোগদান করুন।

বিশদ
পরামিতি
[in] aInterfaceId
মাল্টিকাস্ট গ্রুপে যুক্ত করার জন্য নেটওয়ার্ক ইন্টারফেসের সূচক
[in] aAddress
ইন্টারফেসে যুক্ত করতে মাল্টিকাস্ট গ্রুপ
রিটার্ন মান
INET_NO_ERROR
সাফল্য: মাল্টিকাস্ট গ্রুপ সরানো হয়েছে
INET_ERROR_UNKNOWN_INTERFACE
অজানা নেটওয়ার্ক ইন্টারফেস, aInterfaceId
INET_ERROR_WRONG_ADDRESS_TYPE
aAddress নয় kIPAddressType_IPv4 বা kIPAddressType_IPv6 বা মাল্টিকাস্ট নয়
other
অন্য সিস্টেম বা প্ল্যাটফর্ম ত্রুটি

ছেড়ে দিন মাল্টিকাস্ট গ্রুপ

INET_ERROR LeaveMulticastGroup(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

একটি আইপি মাল্টিকাস্ট গ্রুপ ছেড়ে দিন।

নির্দিষ্ট ইন্টারফেসে সরবরাহিত মাল্টিকাস্ট গ্রুপ থেকে শেষ পয়েন্টটি সরান।

বিশদ
পরামিতি
[in] aInterfaceId
মাল্টিকাস্ট গ্রুপ থেকে অপসারণের জন্য নেটওয়ার্ক ইন্টারফেসের সূচক
[in] aAddress
ইন্টারফেসটি মুছে ফেলার জন্য মাল্টিকাস্ট গ্রুপ
রিটার্ন মান
INET_NO_ERROR
সাফল্য: মাল্টিকাস্ট গ্রুপ সরানো হয়েছে
INET_ERROR_UNKNOWN_INTERFACE
অজানা নেটওয়ার্ক ইন্টারফেস, aInterfaceId
INET_ERROR_WRONG_ADDRESS_TYPE
aAddress নয় kIPAddressType_IPv4 বা kIPAddressType_IPv6 বা মাল্টিকাস্ট নয়
other
অন্য সিস্টেম বা প্ল্যাটফর্ম ত্রুটি

সেটমল্টিকাস্টলুপব্যাক

INET_ERROR SetMulticastLoopback(
  IPVersion aIPVersion,
  bool aLoopback
)

আইপি মাল্টিকাস্ট ট্র্যাফিক লুপ করা উচিত কিনা তা সেট করুন।

আইপি মাল্টিকাস্ট ট্র্যাফিক এই শেষ পয়েন্টে ফিরে লুপ করা উচিত কিনা তা সেট করুন।

বিশদ
পরামিতি
[in] aIPVersion
[in] aLoop
রিটার্ন মান
INET_NO_ERROR
সাফল্য: মাল্টিকাস্ট লুপব্যাক আচরণ সেট
other
অন্য সিস্টেম বা প্ল্যাটফর্ম ত্রুটি

সুরক্ষিত ফাংশন

বাঁধাই করা

INET_ERROR Bind(
  IPAddressType aAddressType,
  IPAddress aAddress,
  uint16_t aPort,
  InterfaceId aInterfaceId
)

BindInterface

INET_ERROR BindInterface(
  IPAddressType aAddressType,
  InterfaceId aInterfaceId
)

গেটসকেট

INET_ERROR GetSocket(
  IPAddressType aAddressType,
  int aType,
  int aProtocol
)

হ্যান্ডেলডেটা প্রাপ্ত হয়েছে

void HandleDataReceived(
  Weave::System::PacketBuffer *aBuffer
)

হ্যান্ডেলপেন্ডিংআইও

void HandlePendingIO(
  uint16_t aPort
)

এটা

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
)

স্ট্যাটিক ফাংশন সুরক্ষিত

গেটপ্যাকেটআইএনফো

IPPacketInfo * GetPacketInfo(
  Weave::System::PacketBuffer *buf
)

LwIP আইপি স্তর উত্স এবং গন্তব্য ঠিকানা ঠিকানা পান।

প্যাকেট সম্পর্কিত LwIP তথ্য ব্যবহার করার সময় প্যাকেট বাফারে ডেটা শুরুর আগে সংরক্ষিত জায়গায় 'লুকানো' থাকে। এটি প্রয়োজনীয় কারণ সিস্টেম স্তর ইভেন্টগুলিতে কেবল দুটি আর্গুমেন্ট থাকে, যা এই ক্ষেত্রে পয়েন্টারটি শেষ বিন্দুতে এবং পয়েন্টারটি বাফারকে বোঝাতে ব্যবহৃত হয়।

বিশদ
পরামিতি
[in] aBuffer
আইপি ম্যাসেজযুক্ত প্যাকেট বাফার
ফিরে আসে
সাফল্যের উপর ঠিকানা তথ্যের একটি পয়েন্টার; অন্যথায়, ঠিকানা তথ্যের জন্য প্যাকেটে পর্যাপ্ত জায়গা না থাকলে NULL।

বেশিরভাগ ক্ষেত্রে ডেটা কাজ করার আগে তথ্য সংরক্ষণের এই কৌশলটি কারণ LwIP আইপি বার্তায় প্রথম বাফারে এমন স্থান থাকে যা ইথারনেট / আইপি / ইউডিপি শিরোলেখগুলির জন্য ব্যবহৃত হয়েছিল। যাইহোক, বর্তমান আকার দেওয়া IPPacketInfo গঠন (40 বাইটস), এটিও সম্ভব হতে পর্যাপ্ত রুমে একটি একক প্যাকেট বাফারে পে লোড সঙ্গে বরাবর গঠন সঞ্চয় করতে হবে না করার জন্য। অনুশীলনে, এটি কেবলমাত্র বড় আইপিভি 4 প্যাকেটের জন্য হওয়া উচিত যা ইথারনেট শিরোনাম ছাড়াই আসে।