nl::Weave::Profiles::DataManagement_Current::ResourceIdentifier

#include <src/lib/profiles/data-management/Current/ResourceIdentifier.h>

โครงสร้างที่ห่อหุ้มรหัสทรัพยากร

สรุป

ResourceIdentifier อาจเป็นรหัสออบเจ็กต์ 64 บิตทั่วไปของประเภทหนึ่งๆ หรือ UUID ก็ได้ เมื่อเข้ารหัสจากภายนอก ระบบจะรองรับการแทนต่อไปนี้

จำนวนเต็ม 64 บิตที่ไม่มีเครื่องหมายซึ่งสัมพันธ์กับวัตถุทั่วไปของประเภท DEVICE พร้อมด้วยรหัสที่ระบุในการนำเสนอ

การนำเสนอทั่วไปซึ่งเข้ารหัสเป็นสตริงไบต์ที่มี 10 อ็อกเท็ต อ็อกเท็ตสองชุดแรกจะเข้ารหัสประเภททรัพยากรเป็นจำนวนเต็ม 16 บิต, เอนเดียนขนาดเล็ก โดย 8 ไบต์ที่เหลือจะเข้ารหัสรหัสทรัพยากรแบบ Endian 64 บิต

ResourceIdentifier ยังนำเสนอรูปแบบที่มีอยู่ทั่วทั้งโค้ด WDM นั่นคือ ResourceIdentifier ที่ว่างเปล่าจะสอดคล้องกับรหัสโหนดของ DEVICE และเครื่องมือสร้างนั้นมีให้สำหรับ Use Case ที่พบบ่อยที่สุด

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

ResourceIdentifier()
สร้าง ResourceIdentifier ที่สอดคล้องกับ ResourceID ที่ไม่ระบุ
ResourceIdentifier(const uint64_t & aNodeId)
สร้าง ResourceIdentifier ของประเภท DEVICE ตาม aNodeId ที่ระบุ
ResourceIdentifier(uint16_t aResourceType, const uint64_t & aResourceId)
สร้าง ResourceIdentifier ของประเภทที่ระบุโดยใช้รหัสดังกล่าว
ResourceIdentifier(uint16_t aResourceType, const uint8_t *aResourceId, size_t aResourceIdLen)
สร้าง ResourceIdentifier ของประเภทที่ระบุโดยใช้รหัสดังกล่าว

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

@125{
  RESOURCE_TYPE_RESERVED = 0
}
enum
@126 enum
กำหนดค่าพิเศษสำหรับ NodeId ที่กล่าวถึง "ตัวเอง"
@127 enum

แอตทริบิวต์สาธารณะ

ResourceId
uint64_t
ResourceIdBytes[8]
uint8_t

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

FromString(const char *inBuffer, size_t inBufferLen)
แยกวิเคราะห์การแสดงสตริง Canonical ของทรัพยากรในออบเจ็กต์ทรัพยากร
FromString(const char *inBuffer, size_t inBufferLen, const uint64_t & aSelfNodeId)
แยกวิเคราะห์การแสดงสตริง Canonical ของทรัพยากรในออบเจ็กต์ทรัพยากร
FromTLV(nl::Weave::TLV::TLVReader & aReader)
ดีซีเรียลไลซ์ ResourceIdentifier จากการนำเสนอ TLV ลงในออบเจ็กต์นี้
FromTLV(nl::Weave::TLV::TLVReader & aReader, const uint64_t & aSelfNodeId)
ดีซีเรียลไลซ์ ResourceIdentifier จากการนำเสนอ TLV ลงในออบเจ็กต์นี้
GetResourceId() const
uint64_t
ฟังก์ชันตัวเข้าถึงสำหรับดึงข้อมูล ResourceId
GetResourceType() const
uint16_t
ฟังก์ชันตัวเข้าถึงสำหรับการดึงข้อมูล ResourceType
ResourceTypeAsString(void) const
const char *
สร้างการแสดงสตริงของ ResourceType
ToString(char *buffer, size_t bufferLen)
แปลง ResourceIdentifier เป็นสตริงที่พิมพ์ได้
ToTLV(nl::Weave::TLV::TLVWriter & aWriter) const
ทำให้ทรัพยากรเป็นอนุกรมให้กับการนำเสนอ TLV โดยใช้แท็ก Context Path::ResourceID
ToTLV(nl::Weave::TLV::TLVWriter & aWriter, const uint64_t & aTag) const
ทำให้ทรัพยากรเป็นอนุกรมให้กับการนำเสนอ TLV โดยใช้แท็กที่กำหนด

ฟังก์ชันสาธารณะแบบคงที่

ResourceTypeAsString(uint16_t aResourceType)
const char *
สร้างการแสดงสตริงของประเภททรัพยากร

ชั้นเรียนของเพื่อน

operator==
friend bool

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

@125

 @125
พร็อพเพอร์ตี้
RESOURCE_TYPE_RESERVED

ประเภททรัพยากรที่สงวนไว้

มีการเลือก enum ไม่ให้ขัดแย้งกับค่า enum จากสคีมา::Weave:::Common::ResourceType enums ขณะนี้ค่า ResourceId ใช้ได้ 2 ค่าสำหรับประเภททรัพยากรที่สงวนไว้ ซึ่งได้แก่ kNodeIdNotSpecified ที่สอดคล้องกับ ResourceIdentifier เดียว และ SELF_NODE_ID จะสอดคล้องกับทรัพยากรที่จะแมปกับ SELF อีกครั้งจากการนำเสนออื่นๆ

@126

 @126

กำหนดค่าพิเศษสำหรับ NodeId ที่กล่าวถึง "ตัวเอง"

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

@127

 @127

แอตทริบิวต์สาธารณะ

รหัสทรัพยากร

uint64_t ResourceId

ResourceIdBytes

uint8_t ResourceIdBytes[8]

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

FromString

WEAVE_ERROR FromString(
  const char *inBuffer,
  size_t inBufferLen
)

แยกวิเคราะห์การแสดงสตริง Canonical ของทรัพยากรในออบเจ็กต์ทรัพยากร

แปลงการแสดงสตริงรูปแบบบัญญัติของทรัพยากรเป็นออบเจ็กต์ทรัพยากร โปรดทราบว่ามีเพียงชุดย่อยของทรัพยากรเท่านั้นที่แสดงเป็นสตริงได้ โดยเฉพาะการใช้การอ้างอิงใน Weave จะแยกวิเคราะห์เฉพาะทรัพยากรของประเภท Canonical ตามที่แสดงใน ResourceTypeEnum

รายละเอียด
พารามิเตอร์
[in] inBuffer
บัฟเฟอร์ที่มีรหัสทรัพยากรที่จะแยกวิเคราะห์
[in] inBufferLen
ความยาว (เป็นไบต์) ของสตริงที่จะแยกวิเคราะห์

FromString

WEAVE_ERROR FromString(
  const char *inBuffer,
  size_t inBufferLen,
  const uint64_t & aSelfNodeId
)

แยกวิเคราะห์การแสดงสตริง Canonical ของทรัพยากรในออบเจ็กต์ทรัพยากร

แปลงการแสดงสตริงรูปแบบบัญญัติของทรัพยากรเป็นออบเจ็กต์ทรัพยากร โปรดทราบว่ามีเพียงชุดย่อยของทรัพยากรเท่านั้นที่แสดงเป็นสตริงได้ โดยเฉพาะการใช้การอ้างอิงใน Weave จะแยกวิเคราะห์เฉพาะทรัพยากรของประเภท Canonical ตามที่แสดงใน ResourceTypeEnum

รายละเอียด
พารามิเตอร์
[in] inBuffer
บัฟเฟอร์ที่มีรหัสทรัพยากรที่จะแยกวิเคราะห์
[in] inBufferLen
ความยาว (เป็นไบต์) ของสตริงที่จะแยกวิเคราะห์
[in] aSelfNodeId
รหัส 64 บิตซึ่งจะแสดงรหัสอุปกรณ์ที่ควรแมปกับ SELF_NODE_ID

FromTLV

WEAVE_ERROR FromTLV(
  nl::Weave::TLV::TLVReader & aReader
)

ดีซีเรียลไลซ์ ResourceIdentifier จากการนำเสนอ TLV ลงในออบเจ็กต์นี้

รายละเอียด
พารามิเตอร์
[in] aReader
เครื่องอ่าน TLV ที่วางอยู่ในองค์ประกอบ ResourceIdentifier
การคืนสินค้า
WEAVE_NO_ERROR สำเร็จแล้ว ข้อผิดพลาดจาก TLVReader หากอ่าน ResourceIdentifier ได้ไม่ถูกต้อง

FromTLV

WEAVE_ERROR FromTLV(
  nl::Weave::TLV::TLVReader & aReader,
  const uint64_t & aSelfNodeId
)

ดีซีเรียลไลซ์ ResourceIdentifier จากการนำเสนอ TLV ลงในออบเจ็กต์นี้

รายละเอียด
พารามิเตอร์
[in] aReader
เครื่องอ่าน TLV ที่วางอยู่ในองค์ประกอบ ResourceIdentifier
[in] aSelfNodeId
ResourceID 64 บิตที่จะทำการแมปใหม่จากการแสดงแบบอนุกรมไปยัง SELF_NODE_ID
การคืนสินค้า
WEAVE_NO_ERROR สำเร็จแล้ว ข้อผิดพลาดจาก TLVReader หากอ่าน ResourceIdentifier ได้ไม่ถูกต้อง

GetResourceId

uint64_t GetResourceId() const 

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

GetResourceType

uint16_t GetResourceType() const 

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

ResourceIdentifier

 ResourceIdentifier()

สร้าง ResourceIdentifier ที่สอดคล้องกับ ResourceID ที่ไม่ระบุ

รหัสทรัพยากรที่ไม่ระบุคือ Tuple ที่ประกอบด้วยประเภททรัพยากรที่สงวนไว้พร้อมกับทรัพยากร kNodeIdNotSpeficied

ResourceIdentifier

 ResourceIdentifier(
  const uint64_t & aNodeId
)

สร้าง ResourceIdentifier ของประเภท DEVICE ตาม aNodeId ที่ระบุ

รายละเอียด
พารามิเตอร์
[in] aNodeId
NodeId ของรหัสทรัพยากรที่ระบุ

ResourceIdentifier

 ResourceIdentifier(
  uint16_t aResourceType,
  const uint64_t & aResourceId
)

สร้าง ResourceIdentifier ของประเภทที่ระบุโดยใช้รหัสดังกล่าว

รายละเอียด
พารามิเตอร์
[in] aResourceType
ประเภทของทรัพยากรที่จะตั้งชื่อ
[in] aResourceId
รหัสของทรัพยากรที่จะตั้งชื่อ

ResourceIdentifier

 ResourceIdentifier(
  uint16_t aResourceType,
  const uint8_t *aResourceId,
  size_t aResourceIdLen
)

สร้าง ResourceIdentifier ของประเภทที่ระบุโดยใช้รหัสดังกล่าว

รายละเอียด
พารามิเตอร์
[in] aResourceType
ประเภทของทรัพยากรที่จะตั้งชื่อ
[in] aResourceId
รหัสของทรัพยากรที่จะตั้งชื่อจะแสดงเป็นอาร์เรย์ของไบต์
[in] aResourceIdLen
ความยาวของรหัสในหน่วยไบต์

ResourceTypeAsString

const char * ResourceTypeAsString(
  void
) const 

สร้างการแสดงสตริงของ ResourceType

ประเภททรัพยากรที่แปลงคือประเภทที่ระบุไว้ใน ResourceTypeEnum.h และ 0 (ตรงกับ RESOURCE_TYPE_RESERVED)

ToString

WEAVE_ERROR ToString(
  char *buffer,
  size_t bufferLen
)

แปลง ResourceIdentifier เป็นสตริงที่พิมพ์ได้

รายละเอียด
พารามิเตอร์
[in] buffer
บัฟเฟอร์สำหรับพิมพ์
[in] bufferLen
ความยาวของบัฟเฟอร์

ToTLV

WEAVE_ERROR ToTLV(
  nl::Weave::TLV::TLVWriter & aWriter
) const 

ทำให้ทรัพยากรเป็นอนุกรมให้กับการนำเสนอ TLV โดยใช้แท็ก Context Path::ResourceID

รายละเอียด
พารามิเตอร์
[in] aWriter
ผู้เขียน TLV สำหรับเรียงลำดับ ResourceIdentifier ลงใน

ToTLV

WEAVE_ERROR ToTLV(
  nl::Weave::TLV::TLVWriter & aWriter,
  const uint64_t & aTag
) const 

ทำให้ทรัพยากรเป็นอนุกรมให้กับการนำเสนอ TLV โดยใช้แท็กที่กำหนด

รายละเอียด
พารามิเตอร์
[in] aWriter
ผู้เขียน TLV สำหรับเรียงลำดับ ResourceIdentifier ลงใน
[in] aTag
แท็กที่มีชื่อเป็น ResourceIdentifier แบบอนุกรม

ฟังก์ชันสาธารณะแบบคงที่

ResourceTypeAsString

const char * ResourceTypeAsString(
  uint16_t aResourceType
)

สร้างการแสดงสตริงของประเภททรัพยากร

ประเภททรัพยากรที่แปลงคือประเภทที่ระบุไว้ใน ResourceTypeEnum.h และ 0 (ตรงกับ RESOURCE_TYPE_RESERVED)

รายละเอียด
พารามิเตอร์
[in] aResourceType
enum ของประเภททรัพยากรที่จะถูกแปลงเป็นการแสดงสตริง

ชั้นเรียนของเพื่อน

โอเปอเรเตอร์==

friend bool operator==(const ResourceIdentifier &lhs, const ResourceIdentifier &rhs)