MCPcopy Create free account
hub / github.com/Serial-Studio/Serial-Studio / MdfMetaData

Class MdfMetaData

lib/mdflib/include/mdflibrary/MdfMetaData.h:13–75  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

11
12namespace MdfLibrary {
13class MdfMetaData {
14 private:
15 mdf::IMetaData* metaData;
16
17 public:
18 MdfMetaData(mdf::IMetaData* metaData) : metaData(metaData) {
19 if (metaData == nullptr) throw std::runtime_error("MdfMetaData Init failed");
20 }
21 MdfMetaData(const mdf::IMetaData* metaData)
22 : MdfMetaData(const_cast<mdf::IMetaData*>(metaData)) {}
23 ~MdfMetaData() { metaData = nullptr; }
24 std::string GetPropertyAsString(const char* index) {
25 std::string str(MdfMetaDataGetPropertyAsString(metaData, index, nullptr) + 1, '\0');
26 str.resize(MdfMetaDataGetPropertyAsString(metaData, index, str.data()));
27 return str;
28 }
29 void SetPropertyAsString(const char* index, const char* prop) {
30 MdfMetaDataSetPropertyAsString(metaData, index, prop);
31 }
32 double GetPropertyAsFloat(const char* index) {
33 return MdfMetaDataGetPropertyAsFloat(metaData, index);
34 }
35 void SetPropertyAsFloat(const char* index, double prop) {
36 MdfMetaDataSetPropertyAsFloat(metaData, index, prop);
37 }
38 std::vector<MdfETag> GetProperties() const {
39 size_t count = MdfMetaDataGetProperties(metaData, nullptr);
40 if (count <= 0) return {};
41 auto pTags = new mdf::ETag*[count];
42 MdfMetaDataGetProperties(metaData, pTags);
43 std::vector<MdfETag> tags;
44 for (size_t i = 0; i < count; i++) tags.push_back(pTags[i]);
45 delete[] pTags;
46 return tags;
47 }
48 std::vector<MdfETag> GetCommonProperties() const {
49 size_t count = MdfMetaDataGetCommonProperties(metaData, nullptr);
50 if (count <= 0) return {};
51 auto pTags = new mdf::ETag*[count];
52 MdfMetaDataGetCommonProperties(metaData, pTags);
53 std::vector<MdfETag> tags;
54 for (size_t i = 0; i < count; i++) tags.push_back(pTags[i]);
55 delete[] pTags;
56 return tags;
57 }
58 void SetCommonProperties(const std::vector<MdfETag> pProperty, size_t count) {
59 auto pTags = new const mdf::ETag*[count];
60 for (size_t i = 0; i < count; i++) pTags[i] = pProperty[i].GetETag();
61 MdfMetaDataSetCommonProperties(metaData, pTags, count);
62 delete[] pTags;
63 }
64 std::string GetXmlSnippet() const {
65 std::string str(MdfMetaDataGetXmlSnippet(metaData, nullptr) + 1, '\0');
66 str.resize(MdfMetaDataGetXmlSnippet(metaData, str.data()));
67 return str;
68 }
69 void SetXmlSnippet(const char* xml) {
70 MdfMetaDataSetXmlSnippet(metaData, xml);

Callers 2

GetMetaDataMethod · 0.70
CreateMetaDataMethod · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected