'------------------------------------------------------------------------------- ' Copyright (c) 2020-2021, Arm Limited and Contributors. All rights reserved. ' ' SPDX-License-Identifier: BSD-3-Clause ' '------------------------------------------------------------------------------- @startuml class service_client class rpc_caller { rpc_call_handle call_begin() int call_invoke() void call_end() } abstract class service_context { {abstract} rpc_caller open() {abstract} void close(rpc_caller) } class service_locator <> { service_context query(service_name) void relinquish(service_context) } service_locator ..> "finds" service_context service_context ..> "opens session" rpc_caller service_client ..> "queries" service_locator service_client --> service_context service_client --> rpc_caller @enduml