nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager

#include <src/lib/profiles/service-directory/ServiceDirectory.h>

ออบเจ็กต์เครื่องมือจัดการสำหรับไดเรกทอรีบริการ Weave

สรุป

เครื่องมือจัดการบริการ Weave เป็นอินเทอร์เฟซหลักสำหรับแอปพลิเคชันไปยังบริการไดเรกทอรี ด้วยเหตุนี้ เครื่องมือนี้จะซ่อนข้อมูลแทรกที่มีอยู่ในการค้นหารายการไดเรกทอรีที่เชื่อมโยงกับปลายทางของบริการ ทำการค้นหา DNS กับชื่อโฮสต์ที่พบในชื่อดังกล่าวอย่างน้อย 1 ชื่อ พยายามเชื่อมต่อ ทำให้การเชื่อมต่อปลอดภัย และอื่นๆ นอกจากนี้ยังอาจจัดการแคชของข้อมูลไดเรกทอรีบริการ

ผู้ผลิตและผู้ทำลาย

WeaveServiceManager(void)
เมธอดนี้จะเริ่มต้นอินสแตนซ์ WeaveServiceManager
~WeaveServiceManager(void)
เมธอดนี้จะทำลายอินสแตนซ์ WeaveServiceManager

ประเภทสาธารณะ

@303{
  kWeave_DefaultSendTimeout = 15000
}
enum
OnConnectBegin)(struct ServiceConnectBeginArgs &args) nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::OnConnectBegin
void(*
การเรียกกลับของแอปพลิเคชันที่ดำเนินการทันทีก่อนดำเนินการเชื่อมต่อ
OnServiceEndpointQueryBegin)(void) nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::OnServiceEndpointQueryBegin
void(*
การเรียกกลับของแอปพลิเคชันเพื่อระบุเวลาของการค้นหาไดเรกทอรีบริการขาออก
OnServiceEndpointQueryEndWithTimeInfo)(uint64_t timeQueryReceiptMsec, uint32_t timeProcessMsec) nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::OnServiceEndpointQueryEndWithTimeInfo
void(*
Callback ของแอปพลิเคชันเพื่อส่งค่าเวลาจากการตอบสนองของ Service Directory
RootDirectoryAccessor)(uint8_t *aDirectory, uint16_t aLength) nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::RootDirectoryAccessor
ฟังก์ชันตัวเข้าถึงสำหรับข้อมูลไดเรกทอรีราก
StatusHandler)(void *anAppState, WEAVE_ERROR anError, StatusReport *aStatusReport) nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::StatusHandler
void(*
ตัวจัดการสำหรับเงื่อนไขข้อผิดพลาดและสถานะ

ฟังก์ชันสาธารณะ

SetConnectBeginCallback(OnConnectBegin aConnectBegin)
void
ตั้งค่าให้เรียกใช้ฟังก์ชัน Callback ทันทีก่อนที่จะสร้างการเชื่อมต่อ
cancel(uint64_t aServiceEp, void *aAppState)
void
วิธีนี้จะยกเลิกคำขอเชื่อมต่อ
clearCache(void)
void
วิธีนี้จะล้างสถานะและแคชของเครื่องมือจัดการหากสถานะอยู่ในสถานะ kServiceMgrState_Resolved ซึ่งหมายความว่าได้รับการตอบสนองจากปลายทางของ Service Directory แล้ว
connect(uint64_t aServiceEp, WeaveAuthMode aAuthMode, void *aAppState, StatusHandler aStatusHandler, WeaveConnection::ConnectionCompleteFunct aConnectionCompleteHandler, const uint32_t aConnectTimeoutMsecs, const InterfaceId aConnectIntf)
เมธอดนี้จะส่งคำขอเชื่อมต่อกับบริการ Weave
init(WeaveExchangeManager *aExchangeMgr, uint8_t *aCache, uint16_t aCacheLen, RootDirectoryAccessor aAccessor, WeaveAuthMode aDirAuthMode, OnServiceEndpointQueryBegin aServiceEndpointQueryBegin, OnServiceEndpointQueryEndWithTimeInfo aServiceEndpointQueryEndWithTimeInfo, OnConnectBegin aConnectBegin)
เมธอดนี้จะเริ่มต้นออบเจ็กต์เครื่องมือจัดการบริการ
lookup(uint64_t aServiceEp, HostPortList *outHostPortList)
วิธีนี้จะค้นหาข้อมูลไดเรกทอรีสำหรับปลายทางบริการ
lookup(uint64_t aServiceEp, uint8_t *aControlByte, uint8_t **aDirectoryEntry)
วิธีนี้จะค้นหาข้อมูลไดเรกทอรีสำหรับปลายทางบริการ
onConnectionClosed(WEAVE_ERROR aError)
void
วิธีนี้จะจัดการเหตุการณ์ปิดการเชื่อมต่อที่รายงานโดยบริบทของ Weave Exchange ที่เกี่ยวข้อง
onConnectionComplete(WEAVE_ERROR aError)
void
วิธีนี้จะจัดการเหตุการณ์การเชื่อมต่อที่เสร็จสมบูรณ์แล้วสำหรับธุรกรรมการค้นหาปลายทางบริการ
onResponseReceived(uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aMsg)
void
วิธีนี้จะจัดการข้อความตอบกลับทั้งหมดในการสนทนาด้วยบริการไดเรกทอรี
onResponseTimeout(void)
void
วิธีนี้จะจัดการกับเหตุการณ์การหมดเวลาซึ่งไม่ได้รับคำตอบจากบริการไดเรกทอรี
relocate(WEAVE_ERROR aError)
void
เมธอดนี้จะย้ายแคชของไดเรกทอรีบริการ
relocate(void)
void
เมธอดนี้จะย้ายแคชของไดเรกทอรีบริการ
replaceOrAddCacheEntry(uint16_t port, const char *hostName, uint8_t hostLen, uint64_t serviceEndpointId)
เพิ่มรายการไดเรกทอรีการลบล้างของชื่อโฮสต์และรหัสพอร์ตที่ตอนต้นของรายการไดเรกทอรี
reset(WEAVE_ERROR aError)
void
เมธอดนี้จะรีเซ็ตตัวจัดการบริการกลับสู่สถานะเริ่มต้น
reset(void)
void
เมธอดนี้จะรีเซ็ตตัวจัดการบริการกลับสู่สถานะเริ่มต้น
unresolve(WEAVE_ERROR aError)
void
วิธีการนี้จะทำให้แคช Service Directory ใช้งานไม่ได้
unresolve(void)
void
วิธีการนี้จะทำให้แคช Service Directory ใช้งานไม่ได้

ชั้นเรียน

nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::ConnectRequest

คลาสนี้แสดงถึงธุรกรรมเดียวที่จัดการโดยผู้จัดการบริการ

ประเภทสาธารณะ

@303

 @303
พร็อพเพอร์ตี้
kWeave_DefaultSendTimeout

จำนวนมิลลิวินาทีที่ต้องมีการตอบกลับสำหรับการค้นหาไดเรกทอรีก่อนที่บริบทของ Exchange จะหมดเวลา

OnConnectBegin

void(* OnConnectBegin)(struct ServiceConnectBeginArgs &args)

การเรียกกลับของแอปพลิเคชันที่ดำเนินการทันทีก่อนดำเนินการเชื่อมต่อ

แอปพลิเคชันสามารถใช้ Callback นี้เพื่อสังเกตการณ์และเปลี่ยนอาร์กิวเมนต์ที่ส่งผ่านไปยัง #WeaveConnection::Connect() ระหว่างการสร้างการเชื่อมต่อบริการ ระบบจะเรียกใช้ Callback นี้ทั้งสำหรับการเชื่อมต่อกับปลายทางบริการเป้าหมายและการเชื่อมต่อกับปลายทางของ Service Directory ในกรณีที่ต้องมีการค้นหาไดเรกทอรี

OnServiceEndpointQueryBegin

void(* OnServiceEndpointQueryBegin)(void)

Callback ของแอปพลิเคชันเพื่อระบุเวลาของการค้นหาไดเรกทอรีบริการขาออก

ซึ่งเรียกว่าเมื่อเรากำลังจะส่งคำขอการค้นหาปลายทางของบริการ ซึ่งจะใช้จับคู่กับ OnServiceEndpointQueryEnd เพื่อชดเชยเวลาแสดงของข้อความ

OnServiceEndpointQueryEndWithTimeInfo

void(* OnServiceEndpointQueryEndWithTimeInfo)(uint64_t timeQueryReceiptMsec, uint32_t timeProcessMsec)

Callback ของแอปพลิเคชันเพื่อส่งค่าเวลาจากการตอบสนองของ Service Directory

การเรียกกลับนี้จะเกิดขึ้นเมื่อเราได้รับข้อมูลเวลาจากการตอบกลับการค้นหาไดเรกทอรีบริการ โปรดทราบว่าการเรียกกลับนี้จะเกิดขึ้นเฉพาะในกรณีที่มีการแยกวิเคราะห์การตอบกลับสำเร็จและรวมข้อมูลเวลาไว้ด้วย

รายละเอียด
พารามิเตอร์
[in] timeQueryReceiptMsec
จำนวนมิลลิวินาทีตั้งแต่ POSIX Epoch เมื่อได้รับการค้นหาที่ฝั่งเซิร์ฟเวอร์
[in] timeProcessMsec
จำนวนมิลลิวินาทีที่ใช้ในการประมวลผลการค้นหานี้

RootDirectoryAccessor

WEAVE_ERROR(* RootDirectoryAccessor)(uint8_t *aDirectory, uint16_t aLength)

ฟังก์ชันตัวเข้าถึงสำหรับข้อมูลไดเรกทอรีราก

คุณจะต้องเริ่มต้นจากที่ไหนสักแห่ง และด้วยไดเรกทอรีบริการ คุณจะต้องเริ่มต้นด้วยไดเรกทอรี stub ที่มีที่อยู่ของเซิร์ฟเวอร์ที่คุณสามารถกดเพื่อรับที่อื่นๆ ที่เหลือ เนื่องจากการจัดการและแหล่งที่มาของข้อมูลนี้มีแนวโน้มที่จะแตกต่างกันไปในแต่ละอุปกรณ์ เราจึงมีการเรียกกลับของผู้เข้าถึงที่นี่

รายละเอียด
พารามิเตอร์
[out] aDirectory
ตัวชี้ไปยังบัฟเฟอร์เพื่อเขียนข้อมูลไดเรกทอรี
[in] aLength
ความยาวของบัฟเฟอร์ที่ระบุในหน่วยไบต์
การคืนสินค้า
WEAVE_NO_ERROR สำเร็จ มิเช่นนั้นกระบวนการโหลดจะถูกยกเลิก

StatusHandler

void(* StatusHandler)(void *anAppState, WEAVE_ERROR anError, StatusReport *aStatusReport)

ตัวจัดการสำหรับเงื่อนไขข้อผิดพลาดและสถานะ

ผู้ใช้ของผู้ดูแลบริการอาจได้รับแจ้งถึงปัญหาในการพยายามดำเนินการตามคำขอเชื่อมต่อด้วยวิธีใดวิธีหนึ่งจาก 2 วิธี โดยอาจได้รับรายงานสถานะจากบริการ หรืออาจได้รับ WEAVE_ERROR ที่สร้างขึ้นภายใน ไม่ว่าในกรณีใด ข้อมูลจะมาจาก Callback นี้

รายละเอียด
พารามิเตอร์
[in] anAppState
ตัวชี้ไปยังออบเจ็กต์ของแอปพลิเคชันที่ส่งผ่านไปยังการเรียกใช้ conect() ที่เกี่ยวข้อง
[in] anError
รหัสข้อผิดพลาดของ Weave ระบุว่าเกิดข้อผิดพลาดในกระบวนการพยายามดำเนินการตามคำขอเชื่อมต่อ ค่านี้ต้องเป็น WEAVE_NO_ERROR ในกรณีที่ไม่มีข้อผิดพลาดเกิดขึ้นและมีรายงานสถานะ
[in] aStatusReport
ตัวชี้ไปยังรายงานสถานะที่สร้างโดยบริการไดเรกทอรีระยะไกล อาร์กิวเมนต์นี้จะเป็น NULL ในกรณีที่ไม่มีรายงานสถานะ และมีการส่งข้อผิดพลาดภายในในอาร์กิวเมนต์ก่อนหน้า

ฟังก์ชันสาธารณะ

SetConnectBeginCallback

void SetConnectBeginCallback(
  OnConnectBegin aConnectBegin
)

ตั้งค่าให้เรียกใช้ฟังก์ชัน Callback ทันทีก่อนที่จะสร้างการเชื่อมต่อ

รายละเอียด
พารามิเตอร์
[in] aConnectBegin
ตัวชี้ไปยังฟังก์ชัน Callback ค่า NULL จะปิดใช้การติดต่อกลับ

WeaveServiceManager

 WeaveServiceManager(
  void
)

เมธอดนี้จะเริ่มต้นอินสแตนซ์ WeaveServiceManager

โปรดทราบว่าต้องเรียกใช้ init() เพื่อเริ่มต้นอินสแตนซ์นี้เพิ่มเติม

ยกเลิก

void cancel(
  uint64_t aServiceEp,
  void *aAppState
)

วิธีนี้จะยกเลิกคำขอเชื่อมต่อ

วิธีนี้จะยกเลิกคำขอเชื่อมต่อที่ระบุรหัสปลายทางของบริการและออบเจ็กต์สถานะแอปพลิเคชันที่ส่งผ่านเป็นตัวระบุ ณ เวลาที่ส่งคำขอ หากเป็นคำขอเชื่อมต่อสุดท้าย วิธีนี้จะล้างสถานะการเชื่อมต่อไดเรกทอรีบริการที่รอดำเนินการทั้งหมดด้วย

รายละเอียด
พารามิเตอร์
[in] aServiceEp
รหัสปลายทางบริการของคำขอถูกยกเลิก
[in] anAppState
ตัวชี้ไปยังออบเจ็กต์สถานะแอปที่กำหนดให้กับการเรียกใช้ connect()

clearCache

void clearCache(
  void
)

เมธอดนี้จะล้างสถานะและแคชของเครื่องมือจัดการหากสถานะอยู่ในสถานะ kServiceMgrState_Resolved ซึ่งหมายความว่าได้รับการตอบสนองจากปลายทางของ Service Directory แล้ว

เชื่อมต่อ

WEAVE_ERROR connect(
  uint64_t aServiceEp,
  WeaveAuthMode aAuthMode,
  void *aAppState,
  StatusHandler aStatusHandler,
  WeaveConnection::ConnectionCompleteFunct aConnectionCompleteHandler,
  const uint32_t aConnectTimeoutMsecs,
  const InterfaceId aConnectIntf
)

เมธอดนี้จะส่งคำขอเชื่อมต่อกับบริการ Weave

การโทรนี้เป็นการโทรเชื่อมต่อระดับบนสุด โดยพื้นฐานแล้วจะสร้างการเชื่อมต่อที่ปลอดภัยกับบริการ Weave ที่มีปลายทางบริการและโหมดการตรวจสอบสิทธิ์หรือทำให้ไม่มีการยืนยัน

ระบบจะเรียกใช้เมธอดนี้หลังจากเรียก init() สำเร็จแล้วเท่านั้น และอาจยกเลิกคำขอการเชื่อมต่อได้โดย cancel()

วิธีการนี้สามารถเรียกใช้ได้ก่อนที่แคชในเครื่องจะเติมข้อมูลจากข้อมูลที่จัดสรรเริ่มต้นหรือการเดินทางไปยังบริการไดเรกทอรี ผู้จัดการบริการจะจัดคิวคำขอก่อนที่จะระบุเนื้อหาแคชได้

รายละเอียด
พารามิเตอร์
[in] aServiceEp
ตัวระบุปลายทางของบริการตามที่ระบุไว้ใน ServiceDirectory.h สำหรับบริการที่สนใจ
[in] aAuthMode
โหมดการตรวจสอบสิทธิ์ที่จะใช้เมื่อเชื่อมต่อกับบริการที่สนใจ
[in] aAppState
ตัวชี้ไปยังออบเจ็กต์สถานะแอปพลิเคชันที่ส่งผ่านไปยัง Callback เป็นอาร์กิวเมนต์
[in] aStatusHandler
Callback ที่จะเรียกใช้ในกรณีที่เกิดข้อผิดพลาดก่อนการเชื่อมต่อจะเสร็จสมบูรณ์
[in] aConnectionCompleteHandler
Callback ที่จะเรียกใช้ในกรณีที่การเชื่อมต่อตามที่ขอเสร็จสมบูรณ์แล้ว โปรดทราบว่าการเชื่อมต่ออาจล้มเหลวโดยมีรหัสข้อผิดพลาด Weave
[in] aConnectTimeoutMsecs
ระยะหมดเวลาการเชื่อมต่อ TCP (ไม่บังคับ) ในหน่วยมิลลิวินาที
[in] aConnectIntf
อินเทอร์เฟซทางเลือกที่จะใช้สร้างการเชื่อมต่อ
การคืนสินค้า
WEAVE_NO_ERROR สำเร็จแล้ว ไม่เช่นนั้น ให้ระบุรหัสข้อผิดพลาดที่เกี่ยวข้อง

Init

WEAVE_ERROR init(
  WeaveExchangeManager *aExchangeMgr,
  uint8_t *aCache,
  uint16_t aCacheLen,
  RootDirectoryAccessor aAccessor,
  WeaveAuthMode aDirAuthMode,
  OnServiceEndpointQueryBegin aServiceEndpointQueryBegin,
  OnServiceEndpointQueryEndWithTimeInfo aServiceEndpointQueryEndWithTimeInfo,
  OnConnectBegin aConnectBegin
)

เมธอดนี้จะเริ่มต้นออบเจ็กต์เครื่องมือจัดการบริการ

ต้องมีการเริ่มต้นออบเจ็กต์ของ Service Manager ก่อนจึงจะใช้งานได้ หลังจากเรียกใช้เมธอดนี้สำเร็จแล้ว ไคลเอ็นต์จะเริ่มเรียกใช้ connect(), lookup() และวิธีอื่นๆ ได้

รายละเอียด
พารามิเตอร์
[in] aExchangeMgr
ตัวชี้ไปยังเครื่องมือจัดการ Exchange ที่ใช้สำหรับ Exchange โปรไฟล์บริการทั้งหมด
[in] aCache
ตัวชี้ไปยังบัฟเฟอร์ที่ใช้แคชข้อมูลไดเรกทอรีได้
[in] aCacheLen
ความยาวเป็นไบต์ของแคช
[in] aAccessor
Callback ตามที่กําหนดไว้ใน ServiceDirectory.h เพื่อเรียกใช้เพื่อโหลดไดเรกทอรีรูทเป็นจุดเริ่มต้นในการค้นหาไดเรกทอรี
[in] aDirAuthMode
โหมดการตรวจสอบสิทธิ์ที่จะใช้เมื่อพูดกับบริการไดเรกทอรี
[in] aServiceEndpointQueryBegin
ตัวชี้ฟังก์ชันประเภท OnServiceEndpointQueryBegin ซึ่งมีการเรียกใช้เมื่อเริ่มต้นคำขอไดเรกทอรีบริการ และช่วยให้โค้ดของแอปพลิเคชันทำเครื่องหมายเวลาได้ ถ้าต้องการใช้การซิงค์เวลาที่ให้บริการโดยโปรโตคอลไดเรกทอรีบริการ
[in] aServiceEndpointQueryEndWithTimeInfo
ตัวชี้ฟังก์ชันของประเภท OnServiceEndpointQueryEndWithTimeInfo ซึ่งเรียกว่าเมื่อได้รับไดเรกทอรีบริการที่อนุญาตให้แอปพลิเคชันซิงค์กับบริการ Weave โดยใช้ช่องเวลาที่ระบุในการตอบกลับ การติดต่อกลับนี้จะดําเนินการหลังจากที่ผู้ดูแลบริการได้รับการตอบกลับพร้อมข้อมูลเวลา ควรสามารถกรอกแคชได้อย่างสมบูรณ์ก่อนที่จะดำเนินการเรียกกลับ
[in] aConnectBegin
ตัวชี้ฟังก์ชันของประเภท OnConnectBegin ซึ่งมีการเรียกใช้ก่อนการสร้างการเชื่อมต่อและช่วยให้แอปพลิเคชันสังเกตการณ์และเลือกแก้ไขอาร์กิวเมนต์ที่ส่งไปยัง #WeaveConnection::Connect() หรือไม่ก็ได้ ค่า NULL (ค่าเริ่มต้น) จะปิดใช้การ Callback
การคืนสินค้า
WEAVE_ERROR_INVALID_ARGUMENT หากอาร์กิวเมนต์ของฟังก์ชันไม่ถูกต้อง หรือไม่เช่นนั้น WEAVE_NO_ERROR

การค้นหา

WEAVE_ERROR lookup(
  uint64_t aServiceEp,
  HostPortList *outHostPortList
)

วิธีนี้จะค้นหาข้อมูลไดเรกทอรีสำหรับปลายทางบริการ

หากแก้ไขไดเรกทอรีบริการแล้ว กล่าวคือ หากมีการดำเนินการ connect() สำเร็จ วิธีนี้จะเติมออบเจ็กต์ HostPortList ที่ให้มา

หมายเหตุ: HostPortList เชื่อมโยงกับออบเจ็กต์ WeaveServiceManager แคชของไดเรกทอรีบริการจะยังคงมีผลจนกว่าจะมีการล้างแคชของไดเรกทอรีบริการ หรือจนกว่าจะเกิดการค้นหาไดเรกทอรีบริการอื่น

รายละเอียด
พารามิเตอร์
[in] aServiceEp
ตัวระบุของปลายทางบริการที่จะค้นหา
[out] outHostPortList
ตัวชี้ไปยัง HostPortList ซึ่งระบบจะป้อนข้อมูลในการค้นหารายการไดเรกทอรีได้สำเร็จ ต้องไม่เป็นค่าว่าง
ผลลัพธ์
WEAVE_NO_ERROR
ประสบความสำเร็จ ไม่เช่นนั้น ให้ระบุรหัสข้อผิดพลาดที่เกี่ยวข้อง
WEAVE_ERROR_INVALID_SERVICE_EP
หากไม่พบปลายทางของบริการที่ระบุ
WEAVE_ERROR_INVALID_DIRECTORY_ENTRY_TYPE
หากไดเรกทอรีมีประเภทรายการไดเรกทอรีที่ไม่รู้จัก

การค้นหา

WEAVE_ERROR lookup(
  uint64_t aServiceEp,
  uint8_t *aControlByte,
  uint8_t **aDirectoryEntry
)

วิธีนี้จะค้นหาข้อมูลไดเรกทอรีสำหรับปลายทางบริการ

หากไดเรกทอรีบริการได้รับการแก้ไขแล้ว เช่น หากมีการดำเนินการ connect() สำเร็จ วิธีนี้จะส่งกลับรายการไดเรกทอรีที่มีตัวระบุปลายทางของบริการ

เมธอดนี้จะแสดงรายละเอียดการใช้งานภายในของไดเรกทอรีบริการ การใช้งานควรเหมาะสำหรับการใช้ตัวแปรของเมธอดนี้ที่สร้าง HostPortList

รายละเอียด
พารามิเตอร์
[in] aServiceEp
ตัวระบุของปลายทางบริการที่จะค้นหา
[out] aControlByte
ตัวชี้ไปยังตำแหน่งสำหรับเขียนไบต์ควบคุมรายการไดเรกทอรี
[out] aDirectoryEntry
ตัวชี้ที่ชี้ไปยังรายการไดเรกทอรี
ผลลัพธ์
WEAVE_NO_ERROR
ประสบความสำเร็จ ไม่เช่นนั้น ให้ระบุรหัสข้อผิดพลาดที่เกี่ยวข้อง
WEAVE_ERROR_INVALID_SERVICE_EP
หากไม่พบปลายทางของบริการที่ระบุ
WEAVE_ERROR_INVALID_DIRECTORY_ENTRY_TYPE
หากไดเรกทอรีมีประเภทรายการไดเรกทอรีที่ไม่รู้จัก

onConnectionClosed

void onConnectionClosed(
  WEAVE_ERROR aError
)

วิธีนี้จะจัดการเหตุการณ์ปิดการเชื่อมต่อที่รายงานโดยบริบทของ Weave Exchange ที่เกี่ยวข้อง

รายละเอียด
พารามิเตอร์
[in] aError
ข้อผิดพลาดของ Weave ที่ระบุสาเหตุของการปิดการเชื่อมต่อนี้

onConnectionComplete

void onConnectionComplete(
  WEAVE_ERROR aError
)

วิธีนี้จะจัดการเหตุการณ์การเชื่อมต่อที่เสร็จสมบูรณ์แล้วสำหรับธุรกรรมการค้นหาปลายทางบริการ

มี 2 รูปแบบที่เป็นไปได้ ข้อแรก การเชื่อมต่ออาจล้มเหลว ซึ่งในกรณีนี้หากดำเนินการเสร็จแล้ว ไม่เช่นนั้น การเชื่อมต่อจะเสร็จสมบูรณ์จริงๆ และสิ่งที่เราต้องทำคือเปิดบริบท Exchange และส่งการค้นหาไดเรกทอรี

รายละเอียด
พารามิเตอร์
[in] aError
ข้อผิดพลาดของ Weave หากเกิดข้อผิดพลาดระหว่างการตั้งค่าการเชื่อมต่อ

onResponseReceived

void onResponseReceived(
  uint32_t aProfileId,
  uint8_t aMsgType,
  PacketBuffer *aMsg
)

วิธีนี้จะจัดการข้อความตอบกลับทั้งหมดในการสนทนาด้วยบริการไดเรกทอรี

รายละเอียด
พารามิเตอร์
[in] aProfileId
รหัสโปรไฟล์ของข้อความขาเข้านี้
[in] aMsgType
ประเภทเฉพาะโปรไฟล์สำหรับข้อความนี้
[in] aMsg
เนื้อหาของข้อความนี้

onResponseTimeout

void onResponseTimeout(
  void
)

วิธีนี้จะจัดการกับเหตุการณ์การหมดเวลาซึ่งไม่ได้รับคำตอบจากบริการไดเรกทอรี

ย้ายที่อยู่

void relocate(
  WEAVE_ERROR aError
)

เมธอดนี้จะย้ายแคชของไดเรกทอรีบริการ

เมื่อปลายทางบริการแสดงรายงานสถานะที่มีรหัสสถานะ kStatus_Reจะช่วย ให้แอปพลิเคชันสามารถเรียกใช้ unresolve() เพื่อล้างแคชและยกเลิกคำขอการเชื่อมต่อ วิธีนี้ทำให้การจัดการข้อผิดพลาดง่ายขึ้นโดยการเรียกใช้ unresolve() เป็นครั้งแรก และใช้ reset() หากปัญหายังไม่ได้รับการแก้ไข

เมธอดในเวอร์ชันนี้ (สำหรับความเข้ากันได้แบบย้อนหลัง) จะบันทึกข้อผิดพลาดแล้วเรียกใช้ relocate(void)

รายละเอียด
พารามิเตอร์
[in] aError
เกิดข้อผิดพลาดในการบันทึก
ดูเพิ่มเติม
relocate(void)

ย้ายที่อยู่

void relocate(
  void
)

เมธอดนี้จะย้ายแคชของไดเรกทอรีบริการ

เมื่อปลายทางบริการแสดงรายงานสถานะที่มีรหัสสถานะ kStatus_Reจะช่วย ให้แอปพลิเคชันสามารถเรียกใช้ unresolve() เพื่อล้างแคชและยกเลิกคำขอการเชื่อมต่อ วิธีนี้ทำให้การจัดการข้อผิดพลาดง่ายขึ้นโดยการเรียกใช้ unresolve() เป็นครั้งแรก และใช้ reset() หากปัญหายังไม่ได้รับการแก้ไข

ดูเพิ่มเติม
ย้ายที่อยู่(WEAVE_ERROR)

replaceOrAddCacheEntry

WEAVE_ERROR replaceOrAddCacheEntry(
  uint16_t port,
  const char *hostName,
  uint8_t hostLen,
  uint64_t serviceEndpointId
)

เพิ่มรายการไดเรกทอรีการลบล้างของชื่อโฮสต์และรหัสพอร์ตที่ตอนต้นของรายการไดเรกทอรี

รีเซ็ต

void reset(
  WEAVE_ERROR aError
)

เมธอดนี้จะรีเซ็ตตัวจัดการบริการกลับสู่สถานะเริ่มต้น

เมธอดนี้จะรีเซ็ตสถานะของ Service Manager ทั้งหมด ซึ่งรวมถึงสถานะการสื่อสาร สถานะแคช และสถานะของคำขอเชื่อมต่อที่รอดำเนินการ

เมธอดในเวอร์ชันนี้ (สำหรับความเข้ากันได้แบบย้อนหลัง) จะบันทึกข้อผิดพลาดแล้วเรียกใช้ reset(void)

รายละเอียด
พารามิเตอร์
[in] aError
ข้อผิดพลาดที่ทำให้เกิดการดำเนินการนี้
ดูเพิ่มเติม
รีเซ็ต(เป็นโมฆะ)

รีเซ็ต

void reset(
  void
)

เมธอดนี้จะรีเซ็ตตัวจัดการบริการกลับสู่สถานะเริ่มต้น

เมธอดนี้จะรีเซ็ตสถานะของ Service Manager ทั้งหมด ซึ่งรวมถึงสถานะการสื่อสาร สถานะแคช และสถานะของคำขอเชื่อมต่อที่รอดำเนินการ

ดูเพิ่มเติม
รีเซ็ต(WEAVE_ERROR)

แก้ปัญหาไม่ได้

void unresolve(
  WEAVE_ERROR aError
)

วิธีการนี้จะทำให้แคช Service Directory ใช้งานไม่ได้

วิธีนี้จะตั้งค่าสถานะแคชของไดเรกทอรีบริการเพื่อให้เครื่องมือจัดการบริการออกการค้นหาไดเรกทอรีบริการในคำขอถัดไป

เมธอดในเวอร์ชันนี้ (สำหรับความเข้ากันได้แบบย้อนหลัง) จะบันทึกข้อผิดพลาดแล้วเรียกใช้ unresolve(void)

รายละเอียด
พารามิเตอร์
[in] aError
ข้อผิดพลาดที่ทำให้เกิดการดำเนินการนี้
ดูเพิ่มเติม
แก้ไข(โมฆะ)

แก้ปัญหาไม่ได้

void unresolve(
  void
)

วิธีการนี้จะทำให้แคช Service Directory ใช้งานไม่ได้

วิธีนี้จะตั้งค่าสถานะแคชของไดเรกทอรีบริการเพื่อให้เครื่องมือจัดการบริการออกการค้นหาไดเรกทอรีบริการในคำขอถัดไป

ดูเพิ่มเติม
unresolve(WEAVE_ERROR)

~WeaveServiceManager

 ~WeaveServiceManager(
  void
)

เมธอดนี้จะทำลายอินสแตนซ์ WeaveServiceManager