/*---------------------------------------------------------------------- | PLT_DeviceData::SetDescriptionUrl +---------------------------------------------------------------------*/ NPT_Result PLT_DeviceData::SetDescriptionUrl(NPT_HttpUrl& url) { NPT_CHECK_FATAL(SetURLBase(url)); m_URLDescription = url; return NPT_SUCCESS; }
/*---------------------------------------------------------------------- | PLT_DeviceData::SetDescription +---------------------------------------------------------------------*/ NPT_Result PLT_DeviceData::SetDescription(const char* description, const NPT_IpAddress& local_iface_ip) { NPT_XmlParser parser; NPT_XmlNode* tree = NULL; NPT_Result res; res = parser.Parse(description, tree); if (NPT_FAILED(res)) { delete tree; return res; } NPT_XmlElementNode* root = tree->AsElementNode(); if (!root || root->GetTag() != "root" || !root->GetNamespace() || *root->GetNamespace() != "urn:schemas-upnp-org:device-1-0") { delete tree; return NPT_FAILURE; } // look for optional URLBase element NPT_String URLBase; if (NPT_SUCCEEDED(PLT_XmlHelper::GetChildText(root, "URLBase", URLBase))) { NPT_HttpUrl url(URLBase); if (!url.IsValid()) return NPT_FAILURE; SetURLBase(url); } // at least one root device child element is required NPT_XmlElementNode* device; if (!(device = PLT_XmlHelper::GetChild(root, "device"))) { delete tree; return NPT_FAILURE; } res = SetDescriptionDevice(device); // delete the tree delete tree; m_LocalIfaceIp = local_iface_ip; return res; }
/*---------------------------------------------------------------------- | PLT_DeviceData::PLT_DeviceData +---------------------------------------------------------------------*/ PLT_DeviceData::PLT_DeviceData(NPT_HttpUrl description_url, const char* uuid, NPT_TimeInterval lease_time, const char* device_type, const char* friendly_name) : m_UUID(uuid), m_URLDescription(description_url), m_DeviceType(device_type), m_FriendlyName(friendly_name) { if (uuid == NULL || strlen(uuid) == 0) { PLT_UPnPMessageHelper::GenerateGUID(m_UUID); } SetLeaseTime(lease_time); SetURLBase(m_URLDescription); }
/*---------------------------------------------------------------------- | PLT_DeviceData::PLT_DeviceData +---------------------------------------------------------------------*/ PLT_DeviceData::PLT_DeviceData(NPT_HttpUrl description_url, const char* uuid, NPT_TimeInterval lease_time, const char* device_type, const char* friendly_name) : m_Manufacturer("Plutinosoft LLC"), m_ManufacturerURL("http://www.plutinosoft.com"), m_UUID(uuid), m_URLDescription(description_url), m_DeviceType(device_type), m_FriendlyName(friendly_name), m_BootId(0), m_NextBootId(0) { if (uuid == NULL || strlen(uuid) == 0) { PLT_UPnPMessageHelper::GenerateGUID(m_UUID); } SetLeaseTime(lease_time); SetURLBase(m_URLDescription); UpdateConfigId(); }