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
ตั้งค่าฟังก์ชันการเรียกกลับที่จะเรียกใช้ทันทีก่อนสร้างการเชื่อมต่อ
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 ที่เชื่อมโยง
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
วิธีนี้จะลบล้างแคชไดเรกทอรีบริการ

ชั้นเรียน

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

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

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

@303

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

จํานวนมิลลิวินาทีที่การตอบกลับการค้นหาไดเรกทอรีต้องได้รับก่อนที่บริบทการแลกเปลี่ยนจะหมดเวลา

OnConnectBegin

void(* OnConnectBegin)(struct ServiceConnectBeginArgs &args)

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

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

OnServiceEndpointQueryBegin

void(* OnServiceEndpointQueryBegin)(void)

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

การดำเนินการนี้จะเรียกใช้เมื่อเรากำลังจะส่งคําขอการค้นหาปลายทางบริการ ซึ่งจะใช้จับคู่กับ 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)

ฟังก์ชันการเข้าถึงข้อมูลไดเรกทอรีรูท

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

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

StatusHandler

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

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

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

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

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

SetConnectBeginCallback

void SetConnectBeginCallback(
  OnConnectBegin aConnectBegin
)

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

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

การค้นหา

WEAVE_ERROR lookup(
  uint64_t aServiceEp,
  HostPortList *outHostPortList
)

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

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

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

รายละเอียด
พารามิเตอร์
[in] aServiceEp
ตัวระบุของปลายทางบริการที่จะค้นหา
[out] outHostPortList
ตัวชี้ไปยัง HostPortList ซึ่งระบบจะป้อนข้อมูลในการค้นหารายการไดเรกทอรีได้สำเร็จ ต้องไม่เท่ากับ NULL
ค่าที่แสดงผล
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 รูปแบบที่เป็นไปได้ ประการแรก การเชื่อมต่ออาจไม่สำเร็จ ซึ่งในกรณีนี้เราคงต้องจบการแชท ไม่เช่นนั้น การเชื่อมต่อจะเสร็จสมบูรณ์แล้ว สิ่งที่เราต้องทําคือเปิดบริบทการแลกเปลี่ยนและส่งการค้นหาไดเรกทอรี

รายละเอียด
พารามิเตอร์
[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_Replacement แอปพลิเคชันอาจเรียกใช้ unresolve() เพื่อล้างแคชและยกเลิกคำขอการเชื่อมต่อ วิธีนี้ช่วยให้การจัดการข้อผิดพลาดง่ายขึ้นด้วยการเรียกใช้ unresolve() เป็นครั้งแรก และ reset() หากปัญหายังไม่ได้รับการแก้ไข

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

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

ย้าย

void relocate(
  void
)

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

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

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

replaceOrAddCacheEntry

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

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

รีเซ็ต

void reset(
  WEAVE_ERROR aError
)

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

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

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

รายละเอียด
พารามิเตอร์
[in] aError
ข้อผิดพลาดที่ทริกเกอร์การดำเนินการนี้
ดูเพิ่มเติม:
reset(void)

รีเซ็ต

void reset(
  void
)

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

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

ดูเพิ่มเติม:
reset(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