From 16dc05e6893c5ec6e6f411cdd4c1ed2db4f73866 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com> Date: Tue, 6 Jan 2015 14:24:37 -0500 Subject: [PATCH] siptransport: move inline methods from .h to .cpp Refs #63196 Change-Id: I76f22d7de82c380c5f7d984205627763e118b8e1 --- daemon/src/sip/siptransport.cpp | 33 +++++++++++++++++++++++++++++++++ daemon/src/sip/siptransport.h | 33 +++++---------------------------- 2 files changed, 38 insertions(+), 28 deletions(-) diff --git a/daemon/src/sip/siptransport.cpp b/daemon/src/sip/siptransport.cpp index de0d22b560..94ddcd3fe1 100644 --- a/daemon/src/sip/siptransport.cpp +++ b/daemon/src/sip/siptransport.cpp @@ -111,6 +111,39 @@ SipTransport::stateToStr(pjsip_transport_state state) return TRANSPORT_STATE_STR[std::min<size_t>(state, TRANSPORT_STATE_SZ-1)]; } +void +SipTransport::stateCallback(pjsip_transport_state state, const pjsip_transport_state_info *info) +{ + std::vector<SipTransportStateCallback> cbs {}; + { + std::lock_guard<std::mutex> lock(stateListenersMutex_); + cbs.reserve(stateListeners.size()); + for (auto& l : stateListeners) + cbs.push_back(l.second); + } + for (auto& cb : cbs) + cb(state, info); +} + +void +SipTransport::addStateListener(uintptr_t lid, SipTransportStateCallback cb) +{ + std::lock_guard<std::mutex> lock(stateListenersMutex_); + stateListeners[lid] = cb; +} + +bool +SipTransport::removeStateListener(uintptr_t lid) +{ + std::lock_guard<std::mutex> lock(stateListenersMutex_); + auto it = stateListeners.find(lid); + if (it != stateListeners.end()) { + stateListeners.erase(it); + return true; + } + return false; +} + SipTransportBroker::SipTransportBroker(pjsip_endpoint *endpt, pj_caching_pool& cp, pj_pool_t& pool) : #if HAVE_DHT iceTransports_(), diff --git a/daemon/src/sip/siptransport.h b/daemon/src/sip/siptransport.h index 3e94a593a4..4c64d4cbe9 100644 --- a/daemon/src/sip/siptransport.h +++ b/daemon/src/sip/siptransport.h @@ -115,36 +115,14 @@ struct SipTransport static const char* stateToStr(pjsip_transport_state state); - void stateCallback(pjsip_transport_state state, const pjsip_transport_state_info *info) { - std::vector<SipTransportStateCallback> cbs {}; - { - std::lock_guard<std::mutex> lock(stateListenersMutex_); - cbs.reserve(stateListeners.size()); - for (auto& l : stateListeners) - cbs.push_back(l.second); - } - for (auto& cb : cbs) - cb(state, info); - } + void stateCallback(pjsip_transport_state state, const pjsip_transport_state_info *info); pjsip_transport* get() { return transport; } - void addStateListener(uintptr_t lid, SipTransportStateCallback cb) { - std::lock_guard<std::mutex> lock(stateListenersMutex_); - stateListeners[lid] = cb; - } - - bool removeStateListener(uintptr_t lid) { - std::lock_guard<std::mutex> lock(stateListenersMutex_); - auto it = stateListeners.find(lid); - if (it != stateListeners.end()) { - stateListeners.erase(it); - return true; - } - return false; - } + void addStateListener(uintptr_t lid, SipTransportStateCallback cb); + bool removeStateListener(uintptr_t lid); static bool isAlive(const std::shared_ptr<SipTransport>&, pjsip_transport_state state); @@ -239,6 +217,8 @@ private: * List of transports so we can bubble the events up. */ std::map<pjsip_transport*, std::weak_ptr<SipTransport>> transports_ {}; + std::mutex transportMapMutex_ {}; + std::condition_variable transportDestroyedCv_ {}; /** * Transports are stored in this map in order to retreive them in case @@ -256,9 +236,6 @@ private: std::mutex iceMutex_ {}; #endif - std::mutex transportMapMutex_ {}; - std::condition_variable transportDestroyedCv_ {}; - pj_caching_pool& cp_; pj_pool_t& pool_; pjsip_endpoint *endpt_; -- GitLab