From d4d57dcd7842c2565f5c5f18969ca742bbbaf688 Mon Sep 17 00:00:00 2001 From: kareem-weaver <133832093+kareem-weaver@users.noreply.github.com> Date: Mon, 7 Aug 2023 14:29:47 -0700 Subject: [PATCH] start sequence diagram --- doc/uml_diagrams/sequence_diagram.md | 43 ++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 doc/uml_diagrams/sequence_diagram.md diff --git a/doc/uml_diagrams/sequence_diagram.md b/doc/uml_diagrams/sequence_diagram.md new file mode 100644 index 0000000..41d7c65 --- /dev/null +++ b/doc/uml_diagrams/sequence_diagram.md @@ -0,0 +1,43 @@ +```mermaid +sequenceDiagram + participant objectfoo + participant sp_smart_pointer_t + participant new_foofoo + participant cpp_object + + sp_smart_pointer_t ->>objectfoo: + + objectfoo->>+new_foofoo: foo() + new_foofoo->>cpp_object: cpp new foo() + cpp_object->>new_foofoo: id + + + new_foofoo->>new_foofoo: register_self() + new_foofoo->>sp_smart_pointer_t: sp_smart_pointer_t() + + sp_smart_pointer_t->>countint: <> + + + sp_smart_pointer_t->>sp_resource_t: <> + + sp_smart_pointer_t->>sp_smart_pointer_t: grab(){count=1} + sp_smart_pointer_t-->>new_foofoo: complete sp_smart_pointer_t() + + sp_smart_pointer_t->>sp_smart_pointer_t: sp_smart_pointer_t::assign() + sp_smart_pointer_t->>sp_smart_pointer_t: link count & obj + sp_smart_pointer_t->>sp_smart_pointer_t: grab() {count=2} + sp_smart_pointer_t-->>sp_smart_pointer_t: complete sp_smart_pointer_t::assign() + sp_smart_pointer_t-->>sp_smart_pointer_t: finalize sp_smart_pointer_t + + sp_smart_pointer_t-->>new_foofoo: complete register_self() + + new_foofoo-->>objectfoo: complete foo() + objectfoo->>new_foofoo: assignment + + sp_smart_pointer_t->>sp_smart_pointer_t: ref_counter::assign() + sp_smart_pointer_t->>sp_smart_pointer_t: link count & obj + sp_smart_pointer_t->>sp_smart_pointer_t: grab() {count=2} + sp_smart_pointer_t-->>sp_smart_pointer_t: complete sp_smart_pointer_t::assign() + new_foofoo-->>objectfoo: complete assignment + new_foofoo-->>sp_smart_pointer_t: finalize sp_smart_pointer_t + sp_smart_pointer_t-->>sp_smart_pointer_t: release() {count