lyx_mirror/sigc++/doc/diagrams
Lars Gullik Bjønnes 6d678c927c more FILMagain stuff
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@808 a592a061-630c-0410-9148-cb99ea01b6c8
2000-06-12 11:55:12 +00:00

81 lines
3.0 KiB
Plaintext

Here are some UML diagrams of the relationships in Libsigc++:
Scopes, Handles, Objects:
------------------------
_________ scope_ _____________
| Scope |*<-------<> | Object_Impl |
| | obj_ | |
|_________|----------> | |
A (obj) | |
| +----> | |
| | |_____________|
| | A
__________ | |
________ scope_ | Limit |<>--+ *
|Handle |<*>------>| | _____________
| <Limit>| |__________| | Object |
| | | |
| | (obj) | |
| | (<>----------------------->) | |
|________| |_____________|
Okay here is what you are supposed to get out of this.
Object comes from Object_Impl with multiplicity (VI).
Handle<Limit> in this case forms a virtual aggregate relationship
with the Object it points to.
For future diagrams I would reduce this to
Handle<Limit> <>--------> Object
Other handle relationships are formed with different types of
scopes. Reference Count for example would have the same
diagram (but very different behavior.)
There is also a relation when the pointed to
object deletes itself when the object is removed. This is
a dependency that will be written as
A -----><> B
BasicSignal:
-----------
____________________ incoming_
| BasicSignal_::InOut| <>----------->* Slot
| |
| | outgoing_
|____________________| <>----------->* Slot
A
|
|
---------------------
| BasicSignal# |
| |
|_____________________|
It is clear from here that a BasicSignal is formed from a number of different
objects.
Connections between a BasicSignal and a Object method:
---------- ________
| SlotData | | Object |
|__________| |________|
A A
| |
| |
___________ _____________ |
|BasicSignal| outgoing_ | ObjectSlot# | ----------
|___________|<>-------->*| | | MyObject |
| |-------><>| |
___________ | | |__________|
|Connection |----------> |_____________|
|___________|