Julian Hall | e76ade8 | 2020-11-25 03:07:21 +0100 | [diff] [blame^] | 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 | |
| 10 | class service_client |
| 11 | |
| 12 | class rpc_caller |
| 13 | { |
| 14 | rpc_call_handle call_begin() |
| 15 | int call_invoke() |
| 16 | void call_end() |
| 17 | } |
| 18 | |
| 19 | abstract class service_context |
| 20 | { |
| 21 | {abstract} rpc_caller open() |
| 22 | {abstract} void close(rpc_caller) |
| 23 | } |
| 24 | |
| 25 | class service_locator <<singleton>> |
| 26 | { |
| 27 | service_context query(service_name) |
| 28 | void relinquish(service_context) |
| 29 | } |
| 30 | |
| 31 | service_locator ..> "finds" service_context |
| 32 | service_context ..> "opens session" rpc_caller |
| 33 | service_client ..> "queries" service_locator |
| 34 | service_client --> service_context |
| 35 | service_client --> rpc_caller |
| 36 | |
| 37 | @enduml |