本文整理汇总了C++中PLT_Service::SetSCPDURL方法的典型用法代码示例。如果您正苦于以下问题:C++ PLT_Service::SetSCPDURL方法的具体用法?C++ PLT_Service::SetSCPDURL怎么用?C++ PLT_Service::SetSCPDURL使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PLT_Service
的用法示例。
在下文中一共展示了PLT_Service::SetSCPDURL方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: embedded_device
/*----------------------------------------------------------------------
| PLT_DeviceData::SetDescriptionDevice
+---------------------------------------------------------------------*/
NPT_Result
PLT_DeviceData::SetDescriptionDevice(PLT_DeviceDataReference& device,
NPT_XmlElementNode* device_node,
const NPT_HttpRequestContext& context)
{
NPT_Result res;
device->m_LocalIfaceIp = context.GetLocalAddress().GetIpAddress();
NPT_CHECK_SEVERE(PLT_XmlHelper::GetChildText(device_node, "deviceType", device->m_DeviceType));
NPT_CHECK_SEVERE(PLT_XmlHelper::GetChildText(device_node, "UDN", device->m_UUID));
// remove uuid: prefix
if (device->m_UUID.StartsWith("uuid:")) {
device->m_UUID = ((const char*)device->m_UUID)+5;
}
// optional attributes
PLT_XmlHelper::GetChildText(device_node, "friendlyName", device->m_FriendlyName);
PLT_XmlHelper::GetChildText(device_node, "manufacturer", device->m_Manufacturer);
PLT_XmlHelper::GetChildText(device_node, "manufacturerURL", device->m_ManufacturerURL);
PLT_XmlHelper::GetChildText(device_node, "modelDescription", device->m_ModelDescription);
PLT_XmlHelper::GetChildText(device_node, "modelName", device->m_ModelName);
PLT_XmlHelper::GetChildText(device_node, "modelURL", device->m_ModelURL);
PLT_XmlHelper::GetChildText(device_node, "modelNumber", device->m_ModelNumber);
PLT_XmlHelper::GetChildText(device_node, "serialNumber", device->m_SerialNumber);
// enumerate icons
NPT_XmlElementNode* iconList = PLT_XmlHelper::GetChild(device_node, "iconList");
if (iconList) {
NPT_Array<NPT_XmlElementNode*> icons;
PLT_XmlHelper::GetChildren(iconList, icons, "icon");
for (NPT_Cardinal k=0 ; k<icons.GetItemCount(); k++) {
PLT_DeviceIcon icon;
NPT_String integer, height, depth;
PLT_XmlHelper::GetChildText(icons[k], "mimetype", icon.m_MimeType);
PLT_XmlHelper::GetChildText(icons[k], "url", icon.m_UrlPath);
if(NPT_SUCCEEDED(PLT_XmlHelper::GetChildText(icons[k], "width", integer)))
NPT_ParseInteger32(integer, icon.m_Width);
if(NPT_SUCCEEDED(PLT_XmlHelper::GetChildText(icons[k], "height", integer)))
NPT_ParseInteger32(integer, icon.m_Height);
if(NPT_SUCCEEDED(PLT_XmlHelper::GetChildText(icons[k], "depth", integer)))
NPT_ParseInteger32(integer, icon.m_Depth);
device->m_Icons.Add(icon);
}
}
// enumerate device services
NPT_XmlElementNode* serviceList = PLT_XmlHelper::GetChild(device_node, "serviceList");
if (serviceList) {
NPT_Array<NPT_XmlElementNode*> services;
PLT_XmlHelper::GetChildren(serviceList, services, "service");
for( int k = 0 ; k < (int)services.GetItemCount(); k++) {
NPT_String type, id, url;
PLT_XmlHelper::GetChildText(services[k], "serviceType", type);
PLT_XmlHelper::GetChildText(services[k], "serviceId", id);
PLT_Service* service = new PLT_Service(device.AsPointer(), type, id, NULL);
PLT_XmlHelper::GetChildText(services[k], "SCPDURL", url);
service->SetSCPDURL(url);
PLT_XmlHelper::GetChildText(services[k], "controlURL", url);
service->SetControlURL(url);
PLT_XmlHelper::GetChildText(services[k], "eventSubURL", url);
service->SetEventSubURL(url);
if (NPT_FAILED(res = device->AddService(service))) {
delete service;
return res;
}
}
}
// enumerate embedded devices
NPT_XmlElementNode* deviceList = PLT_XmlHelper::GetChild(device_node, "deviceList");
if (deviceList) {
NPT_Array<NPT_XmlElementNode*> devices;
PLT_XmlHelper::GetChildren(deviceList, devices, "device");
for (int k = 0; k<(int)devices.GetItemCount(); k++) {
// create an embedded device with same url base and leasetime as parent
PLT_DeviceDataReference embedded_device(new PLT_DeviceData(device->m_URLDescription, "", device->m_LeaseTime));
NPT_CHECK_SEVERE(PLT_DeviceData::SetDescriptionDevice(embedded_device, devices[k], context));
device->AddEmbeddedDevice(embedded_device);
}
}
// TODO: Parse extra DLNA stuff
return NPT_SUCCESS;
}