23 #include "broadcastmanager.h" 26 #include "plugins/engineplugin.h" 27 #include "refresher/refresher.h" 28 #include "serverapi/broadcast.h" 29 #include "serverapi/server.h" 32 DClass<BroadcastManager>
35 QSet<ServerPtr> servers;
44 BroadcastManager::~BroadcastManager()
48 void BroadcastManager::forgetServer(ServerPtr server)
50 gLog << tr(
"%1 LAN server gone: %2, %3:%4").arg(server->plugin()->data()->name)
51 .arg(server->name()).arg(server->address().toString())
53 d->servers.remove(server);
54 emit serverLost(server);
57 void BroadcastManager::registerServer(ServerPtr server,
bool needsRefresh)
59 if (!d->servers.contains(server))
62 d->servers.insert(server);
63 gLog << tr(
"New %1 LAN server detected: %2:%3").arg(server->plugin()->data()->name)
64 .arg(server->address().toString()).arg(server->port());
65 emit newServerDetected(server, server->lastResponse());
69 gRefresher->registerServer(server.data());
73 void BroadcastManager::registerPlugin(
const EnginePlugin *plugin)
75 this->connect(plugin->data()->broadcast,
76 SIGNAL(serverLost(ServerPtr)),
77 SLOT(forgetServer(ServerPtr)));
78 this->connect(plugin->data()->broadcast,
79 SIGNAL(serverDetected(ServerPtr,
bool)),
80 SLOT(registerServer(ServerPtr,
bool)));
83 QList<ServerPtr> BroadcastManager::servers()
const 85 return d->servers.toList();