本文整理汇总了C++中MetadataNode::addWithType方法的典型用法代码示例。如果您正苦于以下问题:C++ MetadataNode::addWithType方法的具体用法?C++ MetadataNode::addWithType怎么用?C++ MetadataNode::addWithType使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MetadataNode
的用法示例。
在下文中一共展示了MetadataNode::addWithType方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: addMetadata
void addMetadata(PyObject *dict, MetadataNode m)
{
if (! dict)
{
return;
}
if (!PyDict_Check(dict) )
throw pdal::pdal_error("'metadata' member must be a dictionary!");
std::string name = readPythonString(dict, "name");
std::string value = readPythonString(dict, "value");
std::string type = readPythonString(dict, "type");
if (type.empty())
type = Metadata::inferType(value);
std::string description = readPythonString(dict, "description");
PyObject *submeta = PyDict_GetItemString(dict, "children");
if (submeta)
{
if (!PyList_Check(submeta))
throw pdal::pdal_error("'children' metadata member must be a list!");
for (Py_ssize_t i = 0; i < PyList_Size(submeta); ++i)
{
PyObject* p = PyList_GetItem(submeta, i);
addMetadata(p, m);
}
MetadataNode child = m.addWithType(name, value, type, description);
}
}
示例2: addMetadata
void addMetadata(PyObject *list, MetadataNode m)
{
if (!PyList_Check(list))
return;
for (Py_ssize_t i = 0; i < PyList_Size(list); ++i)
{
PyObject *tuple = PyList_GetItem(list, i);
if (!PyTuple_Check(tuple) || PyTuple_Size(tuple) != 5)
continue;
std::string name = readPythonString(tuple, 0);
std::string value = readPythonString(tuple, 1);
std::string type = readPythonString(tuple, 2);
if (type.empty())
type = Metadata::inferType(value);
std::string description = readPythonString(tuple, 3);
PyObject *submeta = PyTuple_GetItem(tuple, 4);
MetadataNode child = m.addWithType(name, value, type, description);
if (submeta)
addMetadata(submeta, child);
}
}