void RotaryEncoderEventDispatcher::event__countChanged(const void* pSender, const Poco::Int32& data) { if (pSender) { Poco::Clock now; Poco::FastMutex::ScopedLock lock(_mutex); SubscriberMap::iterator it = _subscribers.begin(); while (it != _subscribers.end()) { if (it->second->expireTime != 0 && it->second->expireTime < now) { SubscriberMap::iterator itDel(it++); _subscribers.erase(itDel); } else { try { event__countChangedImpl(it->first, data); } catch (Poco::RemotingNG::RemoteException&) { throw; } catch (Poco::Exception&) { } ++it; } } } }
void PeripheralEventDispatcher::event__disconnected(const void* pSender) { if (pSender) { Poco::Clock now; Poco::FastMutex::ScopedLock lock(_mutex); SubscriberMap::iterator it = _subscribers.begin(); while (it != _subscribers.end()) { if (it->second->expireTime != 0 && it->second->expireTime < now) { SubscriberMap::iterator itDel(it++); _subscribers.erase(itDel); } else { try { event__disconnectedImpl(it->first); } catch (Poco::RemotingNG::RemoteException&) { throw; } catch (Poco::Exception&) { } ++it; } } } }
void MQTTClientEventDispatcher::event__messageArrived(const void* pSender, const IoT::MQTT::MessageArrivedEvent& data) { if (pSender) { Poco::Timestamp now; Poco::FastMutex::ScopedLock lock(_mutex); SubscriberMap::iterator it = _subscribers.begin(); while (it != _subscribers.end()) { if (it->second->expireTime != 0 && it->second->expireTime < now) { SubscriberMap::iterator itDel(it++); _subscribers.erase(itDel); } else { try { event__messageArrivedImpl(it->first, data); } catch (Poco::RemotingNG::RemoteException&) { throw; } catch (Poco::Exception&) { } ++it; } } } }
void DeviceStatusServiceEventDispatcher::event__statusUpdated(const void* pSender, const IoT::DeviceStatus::DeviceStatusChange& data) { if (pSender) { Poco::Clock now; Poco::FastMutex::ScopedLock lock(_mutex); SubscriberMap::iterator it = _subscribers.begin(); while (it != _subscribers.end()) { if (it->second->expireTime != 0 && it->second->expireTime < now) { SubscriberMap::iterator itDel(it++); _subscribers.erase(itDel); } else { try { event__statusUpdatedImpl(it->first, data); } catch (Poco::RemotingNG::RemoteException&) { throw; } catch (Poco::Exception&) { } ++it; } } } }
void AccelerometerEventDispatcher::event__accelerationUpdate(const void* pSender, const IoT::Devices::Acceleration& data) { if (pSender) { Poco::Timestamp now; Poco::FastMutex::ScopedLock lock(_mutex); SubscriberMap::iterator it = _subscribers.begin(); while (it != _subscribers.end()) { if (it->second->expireTime != 0 && it->second->expireTime < now) { SubscriberMap::iterator itDel(it++); _subscribers.erase(itDel); } else { try { event__accelerationUpdateImpl(it->first, data); } catch (Poco::RemotingNG::RemoteException&) { throw; } catch (Poco::Exception&) { } ++it; } } } }