47 lines
1.0 KiB
Plaintext
47 lines
1.0 KiB
Plaintext
@startuml
|
|
|
|
skinparam object {
|
|
backgroundColor White
|
|
borderColor Black
|
|
arrowColor Black
|
|
}
|
|
|
|
skinparam note {
|
|
backgroundColor LightYellow
|
|
borderColor Black
|
|
}
|
|
|
|
hide footbox
|
|
|
|
title Wrapper Recycle
|
|
|
|
participant App as app << ts >> #E3C800
|
|
participant "QObject.ts" as qobjectts << ts>> #E3C800
|
|
|
|
participant "WrapperCache" as wrappercachets << ts>> #E3C800
|
|
participant "QObjectWrap" as qobjectwrap << cpp >>
|
|
participant "WrapperCache" as wrappercachecpp << cpp >>
|
|
participant "QObject" as qobject << cpp >> #D5E8D4
|
|
|
|
== Wrapper construction ==
|
|
|
|
app --> qobjectts: new()
|
|
activate qobjectts
|
|
qobjectts --> qobjectwrap: new()
|
|
activate qobjectwrap
|
|
qobjectwrap --> qobject: new()
|
|
activate qobject
|
|
qobject --> qobjectwrap: QObject instance
|
|
|
|
qobjectwrap --> wrappercachecpp: store(QObject, QObjectWrap)
|
|
wrappercachecpp --> qobject: connect to destroy signal
|
|
|
|
qobjectwrap --> qobjectts: QOjectWrap instance
|
|
qobjectts --> wrappercachets: store(QObject.ts)
|
|
qobjectts --> app: QObject instance
|
|
|
|
|
|
note across: The app can use the QObject and run.
|
|
|
|
@enduml
|