diff options
author | David Robillard <d@drobilla.net> | 2012-03-16 03:15:41 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2012-03-16 03:15:41 +0000 |
commit | 119468f621a59d86da10bedf75c4427b70f9d370 (patch) | |
tree | f15ea3f345d43b37d492096876c483543fcc1426 /src/server/ClientBroadcaster.cpp | |
parent | 0b93e39af34d3af361f35d510224fda4fda56071 (diff) | |
download | ingen-119468f621a59d86da10bedf75c4427b70f9d370.tar.gz ingen-119468f621a59d86da10bedf75c4427b70f9d370.tar.bz2 ingen-119468f621a59d86da10bedf75c4427b70f9d370.zip |
Remove activity from interface and use set_property() instead.
Move client registration stuff to Engine and remove corresponding events.
Simply response ID interface.
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4066 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/server/ClientBroadcaster.cpp')
-rw-r--r-- | src/server/ClientBroadcaster.cpp | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/server/ClientBroadcaster.cpp b/src/server/ClientBroadcaster.cpp index 2931497a..1a55d355 100644 --- a/src/server/ClientBroadcaster.cpp +++ b/src/server/ClientBroadcaster.cpp @@ -39,6 +39,7 @@ namespace Server { void ClientBroadcaster::register_client(const URI& uri, ClientInterface* client) { + Glib::Mutex::Lock lock(_clients_mutex); Clients::iterator i = _clients.find(uri); if (i == _clients.end()) { @@ -56,12 +57,14 @@ ClientBroadcaster::register_client(const URI& uri, ClientInterface* client) bool ClientBroadcaster::unregister_client(const URI& uri) { - size_t erased = _clients.erase(uri); + Glib::Mutex::Lock lock(_clients_mutex); + const size_t erased = _clients.erase(uri); - if (erased > 0) + if (erased > 0) { LOG(info) << "Unregistered client: " << uri << endl; - else + } else { LOG(warn) << "Failed to find client to unregister: " << uri << endl; + } return (erased > 0); } @@ -72,6 +75,7 @@ ClientBroadcaster::unregister_client(const URI& uri) ClientInterface* ClientBroadcaster::client(const URI& uri) { + Glib::Mutex::Lock lock(_clients_mutex); Clients::iterator i = _clients.find(uri); if (i != _clients.end()) { return (*i).second; @@ -83,8 +87,10 @@ ClientBroadcaster::client(const URI& uri) void ClientBroadcaster::send_plugins(const NodeFactory::Plugins& plugins) { - for (Clients::const_iterator c = _clients.begin(); c != _clients.end(); ++c) + Glib::Mutex::Lock lock(_clients_mutex); + for (Clients::const_iterator c = _clients.begin(); c != _clients.end(); ++c) { send_plugins_to((*c).second, plugins); + } } void @@ -108,8 +114,10 @@ ClientBroadcaster::send_plugins_to(ClientInterface* client, const NodeFactory::P void ClientBroadcaster::send_object(const GraphObjectImpl* o, bool recursive) { - for (Clients::const_iterator i = _clients.begin(); i != _clients.end(); ++i) + Glib::Mutex::Lock lock(_clients_mutex); + for (Clients::const_iterator i = _clients.begin(); i != _clients.end(); ++i) { ObjectSender::send_object((*i).second, o, recursive); + } } } // namespace Server |