handle method
Handles a request, returning a result message.
Implementation
Future<ServiceControlResult> handle(ServiceControl request) async {
try {
switch (request.action) {
case 'install':
await controller.install(request.service);
case 'start':
await controller.start(request.service);
case 'stop':
await controller.stop(request.service);
case 'restart':
await controller.restart(request.service);
case 'uninstall':
await controller.uninstall(request.service);
default:
return ServiceControlResult(
requestId: request.requestId,
success: false,
message: 'unknown service action "${request.action}"',
);
}
final descriptor = await controller.describe(request.service);
return ServiceControlResult(
requestId: request.requestId,
success: true,
descriptor: descriptor,
);
} on Object catch (e) {
return ServiceControlResult(
requestId: request.requestId,
success: false,
message: 'service ${request.action} failed: $e',
);
}
}