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(*
โค้ดเรียกกลับของแอปพลิเคชันเพื่อส่งค่าเวลาจากการตอบกลับ 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
เมธอดนี้จัดการเหตุการณ์ปิดการเชื่อมต่อที่รายงานโดยบริบท Exchange ของ 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
เมธอดนี้จะทำให้แคชไดเรกทอรีบริการเป็นโมฆะ
unresolve(void)
void
เมธอดนี้จะทำให้แคชไดเรกทอรีบริการเป็นโมฆะ

คลาส

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

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

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

@303

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

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

OnConnectBegin

void(* OnConnectBegin)(struct ServiceConnectBeginArgs &args)

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

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

OnServiceEndpointQueryBegin

void(* OnServiceEndpointQueryBegin)(void)

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

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

OnServiceEndpointQueryEndWithTimeInfo

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

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

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

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

RootDirectoryAccessor

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

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

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

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

StatusHandler

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

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

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

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

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

SetConnectBeginCallback

void SetConnectBeginCallback(
  OnConnectBegin aConnectBegin
)

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

รายละเอียด
พารามิเตอร์
[in] aConnectBegin
ตัวชี้ไปยังฟังก์ชันเรียกกลับ ค่า 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 แล้ว

connect

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()

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

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

การค้นหา

WEAVE_ERROR lookup(
  uint64_t aServiceEp,
  HostPortList *outHostPortList
)

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

หาก Service Directory ได้รับการแก้ไข เช่น ที่ดำเนินการ 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
)

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

หาก Service Directory ได้รับการแก้ไข เช่น ที่ดำเนินการ 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
)

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

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

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

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

ย้าย

void relocate(
  void
)

วิธีนี้จะย้ายแคชไดเรกทอรีบริการใหม่

เมื่อปลายทางบริการแสดงผลรายงานสถานะที่มีรหัสสถานะ kStatus_Replacement แอปพลิเคชันอาจเรียกใช้ 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
)

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

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

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

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

ตั้งค่าใหม่

void reset(
  void
)

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

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

ดูเพิ่มเติม:
reset(WEAVE_ERROR)

ไม่แก้ไข

void unresolve(
  WEAVE_ERROR aError
)

เมธอดนี้จะทำให้แคชไดเรกทอรีบริการเป็นโมฆะ

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

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

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

ไม่แก้ไข

void unresolve(
  void
)

เมธอดนี้จะทำให้แคชไดเรกทอรีบริการเป็นโมฆะ

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

ดูเพิ่มเติม:
ไม่ได้รับการแก้ไข(WEAVE_ERROR)

~WeaveServiceManager

 ~WeaveServiceManager(
  void
)

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