本文整理汇总了C++中NPT_List::ApplyUntil方法的典型用法代码示例。如果您正苦于以下问题:C++ NPT_List::ApplyUntil方法的具体用法?C++ NPT_List::ApplyUntil怎么用?C++ NPT_List::ApplyUntil使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类NPT_List
的用法示例。
在下文中一共展示了NPT_List::ApplyUntil方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: lock
/*----------------------------------------------------------------------
| PLT_UPnP::Start()
+---------------------------------------------------------------------*/
NPT_Result
PLT_UPnP::Start()
{
NPT_LOG_INFO("Starting UPnP...");
NPT_AutoLock lock(m_Lock);
if (m_Started == true) NPT_CHECK_SEVERE(NPT_ERROR_INVALID_STATE);
NPT_List<NPT_IpAddress> ips;
PLT_UPnPMessageHelper::GetIPAddresses(ips);
/* Create multicast socket and bind on 1900. If other apps didn't
play nicely by setting the REUSE_ADDR flag, this could fail */
NPT_UdpMulticastSocket* socket = new NPT_UdpMulticastSocket();
NPT_CHECK_SEVERE(socket->Bind(NPT_SocketAddress(NPT_IpAddress::Any, 1900), true));
/* Join multicast group for every ip we found */
NPT_CHECK_SEVERE(ips.ApplyUntil(PLT_SsdpInitMulticastIterator(socket),
NPT_UntilResultNotEquals(NPT_SUCCESS)));
/* create the ssdp listener */
m_SsdpListenTask = new PLT_SsdpListenTask(socket);
NPT_CHECK_SEVERE(m_TaskManager.StartTask(m_SsdpListenTask));
/* start devices & ctrlpoints */
// TODO: Starting devices and ctrlpoints could fail?
m_CtrlPoints.Apply(PLT_UPnP_CtrlPointStartIterator(m_SsdpListenTask));
m_Devices.Apply(PLT_UPnP_DeviceStartIterator(m_SsdpListenTask));
m_Started = true;
return NPT_SUCCESS;
}