From 55d80847291daa1393b3da746114a8f4ca5f37cd Mon Sep 17 00:00:00 2001 From: Stanislav Angelovic Date: Thu, 14 Dec 2017 10:30:55 +0100 Subject: [PATCH] Add class diagram --- doc/sdbus-c++-class-diagram.png | Bin 0 -> 33185 bytes doc/sdbus-c++-class-diagram.uml | 59 ++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100755 doc/sdbus-c++-class-diagram.png create mode 100644 doc/sdbus-c++-class-diagram.uml diff --git a/doc/sdbus-c++-class-diagram.png b/doc/sdbus-c++-class-diagram.png new file mode 100755 index 0000000000000000000000000000000000000000..70f7688641f1ede5b7ccc6b32beac5515627335c GIT binary patch literal 33185 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 literal 0 HcmV?d00001 diff --git a/doc/sdbus-c++-class-diagram.uml b/doc/sdbus-c++-class-diagram.uml new file mode 100644 index 0000000..0789363 --- /dev/null +++ b/doc/sdbus-c++-class-diagram.uml @@ -0,0 +1,59 @@ +@startuml + +package "Public API" <> #DDDDDD { +interface IConnection { + +requestName() + +enterProcessLoop() + +leaveProcessLoop() +} + +interface IObject { + +registerMethod() + +emitSignal() +} + +interface IObjectProxy { + +callMethod() + +subscribeToSignal() +} + +class Message { + +serialize(...) + +deserialize(...) + +send() + Type msgType +} +} + +interface IConnectionInternal { + +addObjectVTable() + +createMethodCall() + +createSignal() +} + +class Connection { +} + +class Object { + IConnectionInternal& connection + string objectPath + List interfaces + List methods +} + +class ObjectProxy { + IConnectionInternal& connection + string destination + string objectPath +} + +IConnection <|-- Connection +IConnectionInternal <|- Connection +IObject <|-- Object +IObjectProxy <|-- ObjectProxy +Connection <-- Object : "use" +Connection <-- ObjectProxy : "use" +Message <.. Object : "send/receive" +Message <.. ObjectProxy : "send/receive" + +@enduml