blob: cae2eae5add9dcd993b35176424f558aeec4946e [file] [log] [blame]
// Copyright (c) 2023, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:dart_service_protocol_shared/dart_service_protocol_shared.dart';
import 'dtd_client.dart';
/// Used for keeping track and managing clients that are connected to a given
/// service.
class DTDClientManager extends ClientManager {
@override
void addClient(Client client) {
client as DTDClient;
super.addClient(client);
client.done.then((_) {
client.onClientDisconnect();
removeClient(client);
});
}
/// Finds the first client that has [service] registered to it.
///
/// There should only ever be one client that owns a service but this method
/// only assumes and does not verify that.
Client? findClientThatOwnsService(String service) {
for (final client in clients) {
if (client.services.containsKey(service)) {
return client;
}
}
return null;
}
}