diff --git a/doc/sdbus-c++-class-diagram.png b/doc/sdbus-c++-class-diagram.png new file mode 100755 index 0000000..70f7688 Binary files /dev/null and b/doc/sdbus-c++-class-diagram.png differ 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