1'------------------------------------------------------------------------------- 2' Copyright (c) 2020-2021, Arm Limited and Contributors. All rights reserved. 3' 4' SPDX-License-Identifier: BSD-3-Clause 5' 6'------------------------------------------------------------------------------- 7 8@startuml 9 10class service_client 11 12class rpc_caller 13{ 14 rpc_call_handle call_begin() 15 int call_invoke() 16 void call_end() 17} 18 19abstract class service_context 20{ 21 {abstract} rpc_caller open() 22 {abstract} void close(rpc_caller) 23} 24 25class service_locator <<singleton>> 26{ 27 service_context query(service_name) 28 void relinquish(service_context) 29} 30 31service_locator ..> "finds" service_context 32service_context ..> "opens session" rpc_caller 33service_client ..> "queries" service_locator 34service_client --> service_context 35service_client --> rpc_caller 36 37@enduml