nl::Weave::โปรไฟล์::DataManagement_Current::ResourceIdentifier

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

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

สรุป

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

จํานวนเต็ม 64 บิตที่ไม่มีการรับรองซึ่งสอดคล้องกับออบเจ็กต์ทั่วไปของประเภท DEVICE ที่มีรหัสที่ระบุไว้ในตัวแทน

การนําเสนอทั่วไปที่เข้ารหัสเป็นสตริงไบต์เป็น 10 อ็อกเท็ต ค่าออคเต็ต 2 รายการแรกจะเข้ารหัสประเภทแหล่งข้อมูลเป็นจํานวนเต็มแบบย่อแบบ 16 บิต เพียงเล็กน้อย โดยมี 8 ไบต์ที่เหลือมีการเข้ารหัสรหัสทรัพยากรแบบ 64 บิตแบบเอนด์

นอกจากนี้ ResourceIdentifier ยังแสดงถึงรูปแบบที่มีอยู่ในโค้ด WDM ด้วย นั่นคือ ResourceIdentifier ที่ว่างเปล่าจะสอดคล้องกับรหัสโหนดของ DEVICE และตัวสร้างจะจัดเตรียมไว้สําหรับกรณีการใช้งานที่พบบ่อยที่สุด

เครื่องมือสร้างและตัวสร้าง

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 ที่อ้างอิง 'self'
@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 โดยใช้แท็ก 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 ในขณะนี้ ค่าทรัพยากรรหัส 2 ค่าที่เป็นไปได้สําหรับประเภททรัพยากร RESERVED คือ kNodeIdNotSpecified สอดคล้องกับ ResourceIdentifier แบบรวมศูนย์ และ SELF_NODE_ID จะสอดคล้องกับทรัพยากรที่จะแมปไปยัง SELF จากตัวแทนอื่นๆ

@126

 @126

กําหนดค่าพิเศษสําหรับ NodeId ที่อ้างอิง 'self'

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

127

 @127

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

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

uint64_t ResourceId

รหัสแหล่งข้อมูล

uint8_t ResourceIdBytes[8]

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

สตริง

WEAVE_ERROR FromString(
  const char *inBuffer,
  size_t inBufferLen
)

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

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

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

สตริง

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

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

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

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

จากTLV

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

ลบล้าง ResourceIdentifier จากตัวแทน TLV ไปยังออบเจ็กต์นี้

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

จากTLV

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
การคืนสินค้า
WEhave_NO_ERROR สําเร็จแล้ว ข้อผิดพลาดจาก TLVReader หากอ่าน ResourceIdentifier ไม่ถูกต้อง

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

uint64_t GetResourceId() const 

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

ประเภททรัพยากร

uint16_t GetResourceType() const 

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

ตัวระบุทรัพยากร

 ResourceIdentifier()

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

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

ตัวระบุทรัพยากร

 ResourceIdentifier(
  const uint64_t & aNodeId
)

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

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

ตัวระบุทรัพยากร

 ResourceIdentifier(
  uint16_t aResourceType,
  const uint64_t & aResourceId
)

สร้าง ResourceIdentifier ประเภทที่ระบุด้วยรหัสที่กําหนด

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

ตัวระบุทรัพยากร

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

สร้าง ResourceIdentifier ประเภทที่ระบุด้วยรหัสที่กําหนด

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

ประเภททรัพยากร AsString

const char * ResourceTypeAsString(
  void
) const 

สร้างการนําเสนอสตริงของ ResourceType

ประเภททรัพยากรที่แปลงจะเป็นการแจกแจงใน ResourceTypeEnum.h และ 0 (สอดคล้องกับ RESOURCE_TYPE_RESERVED)

สตริง

WEAVE_ERROR ToString(
  char *buffer,
  size_t bufferLen
)

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

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

ข้อกําหนดในการให้บริการ

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

เปลี่ยนลําดับทรัพยากรเป็น TLV โดยใช้แท็ก Path::ResourceID ตามบริบท

รายละเอียด
พารามิเตอร์
[in] aWriter
ผู้เขียน TLV เพื่อเรียง ResourceIdentifier เป็น

ข้อกําหนดในการให้บริการ

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

เรียงทรัพยากรไปยังตัวแทน TLV โดยใช้แท็กที่ระบุ

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

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

ประเภททรัพยากร AsString

const char * ResourceTypeAsString(
  uint16_t aResourceType
)

สร้างการนําเสนอประเภทสตริง

ประเภททรัพยากรที่แปลงจะเป็นการแจกแจงใน ResourceTypeEnum.h และ 0 (สอดคล้องกับ RESOURCE_TYPE_RESERVED)

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

ชั้นเรียนสําหรับเพื่อน

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

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