From d122a326627cba5143bd514d421c4b535d59dd49 Mon Sep 17 00:00:00 2001 From: Ichthyostega Date: Tue, 21 Jul 2009 04:13:12 +0200 Subject: [PATCH] Documentation & planning the parts to implement next --- doc/devel/uml/class148997.html | 7 +- doc/devel/uml/class149637.html | 6 +- doc/devel/uml/class150789.html | 24 +++ doc/devel/uml/class150917.html | 24 +++ doc/devel/uml/classes.html | 4 +- doc/devel/uml/classes_list.html | 4 +- doc/devel/uml/fig134021.png | Bin 23301 -> 24839 bytes doc/devel/uml/fig135173.png | Bin 0 -> 11554 bytes doc/devel/uml/index.html | 102 +++++++++++- doc/devel/uml/index_60.html | 24 ++- doc/devel/uml/index_65.html | 4 +- doc/devel/uml/index_66.html | 2 +- doc/devel/uml/index_67.html | 37 +++-- doc/devel/uml/index_68.html | 3 +- doc/devel/uml/index_69.html | 2 +- doc/devel/uml/index_70.html | 2 + doc/devel/uml/index_72.html | 2 +- doc/devel/uml/index_73.html | 3 +- doc/devel/uml/index_76.html | 1 + doc/devel/uml/index_79.html | 2 +- doc/devel/uml/index_80.html | 3 +- doc/devel/uml/index_83.html | 14 +- doc/devel/uml/index_84.html | 8 +- doc/devel/uml/index_85.html | 1 + doc/devel/uml/index_86.html | 18 +-- doc/devel/uml/navig.html | 2 +- doc/devel/uml/statediagrams.html | 22 +++ doc/devel/uml/states.html | 26 +++ uml/lumiera/128261 | 2 +- uml/lumiera/129029 | 268 ++++++++++++++++++++++++++++--- uml/lumiera/134021.diagram | 85 ++++++---- uml/lumiera/135173.diagram | 161 +++++++++++++++++++ uml/lumiera/5.session | 13 +- uml/lumiera/lumiera.prj | 2 +- wiki/renderengine.html | 22 ++- 35 files changed, 782 insertions(+), 118 deletions(-) create mode 100644 doc/devel/uml/class150789.html create mode 100644 doc/devel/uml/class150917.html create mode 100644 doc/devel/uml/fig135173.png create mode 100644 doc/devel/uml/statediagrams.html create mode 100644 doc/devel/uml/states.html create mode 100644 uml/lumiera/135173.diagram diff --git a/doc/devel/uml/class148997.html b/doc/devel/uml/class148997.html index 85ab6a55d..b5af009ca 100644 --- a/doc/devel/uml/class148997.html +++ b/doc/devel/uml/class148997.html @@ -16,11 +16,6 @@ -

Declaration :

- -
Relation targets (<directional composition>)

Declaration :

Stereotype: list

- -
Relation params (<directional composition>)

Declaration :

Stereotype: list

-
+

Declaration :

Directly inherited by : ArgumentHolder Closure

diff --git a/doc/devel/uml/class149637.html b/doc/devel/uml/class149637.html index da4da6a27..21f30ad43 100644 --- a/doc/devel/uml/class149637.html +++ b/doc/devel/uml/class149637.html @@ -4,17 +4,17 @@ -Class Target +Class ParamAccessor -
Class Target
+
Class ParamAccessor

-

Declaration :

+

Declaration :

diff --git a/doc/devel/uml/class150789.html b/doc/devel/uml/class150789.html new file mode 100644 index 000000000..f6e0b20ae --- /dev/null +++ b/doc/devel/uml/class150789.html @@ -0,0 +1,24 @@ + + + + + + +Class Closure + + + + + +
Class Closure
+

+ + + + +

Declaration :

+ +
Relation params (<directional composition>)

Declaration :

Stereotype: tuple

+
+ + diff --git a/doc/devel/uml/class150917.html b/doc/devel/uml/class150917.html new file mode 100644 index 000000000..2332f06df --- /dev/null +++ b/doc/devel/uml/class150917.html @@ -0,0 +1,24 @@ + + + + + + +Class ArgumentHolder + + + + + +
Class ArgumentHolder
+

+ + + + +

Declaration :

+ +
Relation arguments (<unidirectional association>)

Declaration :

Stereotype: manages

+
+ + diff --git a/doc/devel/uml/classes.html b/doc/devel/uml/classes.html index 8c54eb58f..ebec4c117 100644 --- a/doc/devel/uml/classes.html +++ b/doc/devel/uml/classes.html @@ -21,6 +21,7 @@ Allocationa directive to place a MObject in a specific way AppconfigsingletonSingleton to hold inevitable global flags and constants and for performing erarly (static) global initialization tasks. Applicable +ArgumentHolder AssemblerThis is the actual building facility: provided the correct tools and associations, it serves to build and connect the individual ProcNode objects AssetinterfaceSuperinterface describing especially the bookeeping properties of Assets AssetManagerboundaryFacade for the Asset subsystem @@ -38,6 +39,7 @@ Categorytree like classification of Assets Clipbookkeeping (asset) view of a media clip. Clip +Closure CmdClosure Codecdescription of some media data decoder or encoder facility CodecAdapter @@ -107,6 +109,7 @@ NodeCreatorToolThis Tool implementation plays the central role in the buld process: given a MObject from Session, it is able to attach ProcNodes to the render engine under construction such as to reflect the properties of the MObject in the actual render. NodeWiring OperationBase +ParamAccessor ParameterDescriptor and access object for a plugin parameter. Parameters may be provided with values from the session, and this values may be automated. ParamProviderinterfaceA facility to get the actual value of a plugin/effect parameter PathManagerWhile building a render engine, this Strategy class decides on the actual render strategy in accordance to the current controller settings (system state) @@ -164,7 +167,6 @@ StreamTypeID Structkey abstraction: structural asset STypeManager -Target ThreadWe can basically reuse the Thread class design from Cinelerra2, Thread becomes a baseclass for all Threads Timedenotes a temporal position (time point), based on timeline start.

investigate posix.4 realtime timers, wrap these here Timeline diff --git a/doc/devel/uml/classes_list.html b/doc/devel/uml/classes_list.html index c9f7a4cd0..173ec52e4 100644 --- a/doc/devel/uml/classes_list.html +++ b/doc/devel/uml/classes_list.html @@ -22,6 +22,7 @@ Allocation
Appconfig
Applicable
+ArgumentHolder
Assembler
Asset
AssetManager
@@ -39,6 +40,7 @@ Category
Clip
Clip
+Closure
CmdClosure
Codec
CodecAdapter
@@ -108,6 +110,7 @@ NodeCreatorTool
NodeWiring
OperationBase
+ParamAccessor
Parameter
ParamProvider
PathManager
@@ -165,7 +168,6 @@ StreamTypeID
Struct
STypeManager
-Target
Thread
Time
Timeline
diff --git a/doc/devel/uml/fig134021.png b/doc/devel/uml/fig134021.png index c3acb367712339244e02e7d4a2162a58d493ae2c..edd5445309c667b0a405a52bc64987340ca07910 100644 GIT binary patch literal 24839 zcmeFYgg^aH-a#fbhk7JNOvRM-SJ*N zzrEk*?D!AP;iES&!`yMjTI(AtVMojDf`!dK589cU&!kPQDOt&FF<`94F2KuVcL`9q|yFCoVy5hh8gZz=3& zs9z`{8I5Tq?u*W&P>du9G3qLf0nW=e)P5!V&n#Hu>rogVRlA(u3hhU`B&N=#3ZL&) za|sGc3~?)f%T9_b&OQL&FP^mGLm(w+|L^#J

1()nGz?NGQkDgbk{gCK0>fK^6&c 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

xbqeMZyI-;Q=GC~nJ+FbUn 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≶ILPD(VI#RXi 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 TkwY+I8gWM3P%BTv=8yjYlT|l% diff --git a/doc/devel/uml/fig135173.png b/doc/devel/uml/fig135173.png new file mode 100644 index 0000000000000000000000000000000000000000..4097c8a391ff01932f03b27271a3d96bb8c64428 GIT binary patch literal 11554 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 literal 0 HcmV?d00001 diff --git a/doc/devel/uml/index.html b/doc/devel/uml/index.html index 2e6e4c680..4cbf83614 100644 --- a/doc/devel/uml/index.html +++ b/doc/devel/uml/index.html @@ -147,7 +147,7 @@ Documentation
Artifact Lumiera

the main executable to be built

Depends on common

Depends on gui

Depends on proc

Depends on backend

Stereotype: executable

-

executable associated with : placement, sessionimpl, builderfacade, aframe, assembler, trafo, allocation, vframe, toolfactory, hub, buildable, abstractmo, exitnode, pathmanager, track, meta, fixedlocation, relativelocation, controllerfacade, rendergraph, pluginadapter, explicitplacement, auto, glrender, arender, renderstate, label, nodecreatertool, projector, interpolator, paramprovider, mask, mobject, source, frame, effect, buildertool, segmentationtool, link, parameter, renderengine, glbuf, procnode, stateproxy, edl, fixture, glpipe, main, conmanager, clip, vrender

+

executable associated with : allocation, vframe, toolfactory, hub, buildable, abstractmo, exitnode, pathmanager, track, meta, fixedlocation, relativelocation, controllerfacade, rendergraph, pluginadapter, explicitplacement, auto, glrender, arender, renderstate, label, nodecreatertool, projector, interpolator, paramprovider, mask, mobject, source, frame, effect, buildertool, segmentationtool, link, parameter, renderengine, glbuf, procnode, stateproxy, edl, fixture, glpipe, main, conmanager, clip, vrender, placement, sessionimpl, builderfacade, aframe, assembler, trafo

Artifact main

Stereotype: source

@@ -844,8 +844,106 @@ reuse exiting Engine

Selection :

    Transformation
    Class DoAsync
    Class UndoSync
    Class RedoLast
    -
    Class Target
    +
    +
    Class Closure
    +
    + +

    2.2.2.1 StateMachine Lifecycle

    +

    Entry Behavior :

      Exit Behavior :

        Do activity :

          Stereotype: machine

          +
          + +

          +

          Command lifecycle



          + + +
          Entry point pseudo state ID
          +

          Defined in Lifecycle

          +
          Transition <transition>

          From ID To state action

          Trigger :

            Guard :

              Activity :

                + +
                State action
                +

                try to fetch existing definition

                +

                Defined in Lifecycle

                Expression :

                • OCL :
                  +fetch def
                +
                Transition <transition>

                From state action To choice pseudo state

                Trigger :

                  Guard :

                    Activity :

                      + +

                      2.2.2.1.1 State scratch

                      +

                      Entry Behavior :

                        Exit Behavior :

                          Do activity :

                            +
                            Transition <transition>

                            From scratch To state action

                            Trigger :

                              Guard :

                                Activity :

                                  + +
                                  State action
                                  +

                                  Defined in Lifecycle

                                  Expression :

                                  • OCL :
                                    +def DO
                                  +
                                  Transition <transition>

                                  From state action To fork pseudo state

                                  Trigger :

                                    Guard :

                                      Activity :

                                        Transition <transition>

                                        From state action To state action

                                        Trigger :

                                          Guard :

                                            Activity :

                                              Transition <transition>

                                              From state action To state action

                                              Trigger :

                                                Guard :

                                                  Activity :

                                                    + +
                                                    State action
                                                    +

                                                    Defined in Lifecycle

                                                    Expression :

                                                    • OCL :
                                                      +def CAP
                                                    +
                                                    Transition <transition>

                                                    From state action To state action

                                                    Trigger :

                                                      Guard :

                                                        Activity :

                                                          + +
                                                          State action
                                                          +

                                                          Defined in Lifecycle

                                                          Expression :

                                                          • OCL :
                                                            +def UNDO
                                                          +
                                                          Transition <transition>

                                                          From state action To CmdDef

                                                          Trigger :

                                                            Guard :

                                                              Activity :

                                                                + +
                                                                State action
                                                                +

                                                                Defined in Lifecycle

                                                                Expression :

                                                                • OCL :
                                                                  +def UNDO
                                                                +
                                                                Transition <transition>

                                                                From state action To state action

                                                                Trigger :

                                                                  Guard :

                                                                    Activity :

                                                                      + +
                                                                      State action
                                                                      +

                                                                      Defined in Lifecycle

                                                                      Expression :

                                                                      • OCL :
                                                                        +def CAP
                                                                      +
                                                                      Transition <transition>

                                                                      From state action To CmdDef

                                                                      Trigger :

                                                                        Guard :

                                                                          Activity :

                                                                            + +

                                                                            2.2.2.1.2 State CmdDef

                                                                            +

                                                                            Entry Behavior :

                                                                              Exit Behavior :

                                                                                Do activity :

                                                                                  +
                                                                                  Transition <transition>

                                                                                  From CmdDef To state action

                                                                                  Trigger :

                                                                                    Guard :

                                                                                      Activity :

                                                                                        + +
                                                                                        State action
                                                                                        +

                                                                                        Defined in Lifecycle

                                                                                        Expression :

                                                                                        • OCL :
                                                                                          +bind
                                                                                        +
                                                                                        Transition <transition>

                                                                                        From state action To Command

                                                                                        Trigger :

                                                                                          Guard :

                                                                                            Activity :

                                                                                              + +

                                                                                              2.2.2.1.3 State Command

                                                                                              +

                                                                                              Entry Behavior :

                                                                                                Exit Behavior :

                                                                                                  Do activity :

                                                                                                    +
                                                                                                    Transition <transition>

                                                                                                    From Command To state action

                                                                                                    Trigger :

                                                                                                      Guard :

                                                                                                        Activity :

                                                                                                          + +
                                                                                                          State action send-signal
                                                                                                          +

                                                                                                          Stereotype: send-signal

                                                                                                          +

                                                                                                          Defined in Lifecycle

                                                                                                          Expression :

                                                                                                          • OCL :
                                                                                                            +exec pattern
                                                                                                          +
                                                                                                          Transition <transition>

                                                                                                          From state action To undo-able

                                                                                                          Trigger :

                                                                                                            Guard :

                                                                                                              Activity :

                                                                                                                + +

                                                                                                                2.2.2.1.4 State undo-able

                                                                                                                +

                                                                                                                Entry Behavior :

                                                                                                                  Exit Behavior :

                                                                                                                    Do activity :

                                                                                                                      +
                                                                                                                      Transition <transition>

                                                                                                                      From undo-able To done

                                                                                                                      Trigger :

                                                                                                                        Guard :

                                                                                                                          Activity :

                                                                                                                            Transition <transition>

                                                                                                                            From undo-able To state action

                                                                                                                            Trigger :

                                                                                                                              Guard :

                                                                                                                                Activity :

                                                                                                                                  Transition <transition>

                                                                                                                                  From undo-able To state action

                                                                                                                                  Trigger :

                                                                                                                                    Guard :

                                                                                                                                      Activity :

                                                                                                                                        + + +
                                                                                                                                        Choice pseudo state
                                                                                                                                        +

                                                                                                                                        Stereotype: try

                                                                                                                                        +

                                                                                                                                        Defined in Lifecycle

                                                                                                                                        +
                                                                                                                                        Transition <transition>

                                                                                                                                        From choice pseudo state To scratch

                                                                                                                                        Trigger :

                                                                                                                                          Guard :

                                                                                                                                            Activity :

                                                                                                                                            • OCL :
                                                                                                                                              +not found
                                                                                                                                            Transition <transition>

                                                                                                                                            From choice pseudo state To CmdDef

                                                                                                                                            Trigger :

                                                                                                                                              Guard :

                                                                                                                                                Activity :

                                                                                                                                                • OCL :
                                                                                                                                                  +found
                                                                                                                                                + + +
                                                                                                                                                Fork pseudo state
                                                                                                                                                +

                                                                                                                                                Defined in Lifecycle

                                                                                                                                                +
                                                                                                                                                Transition <transition>

                                                                                                                                                From fork pseudo state To state action

                                                                                                                                                Trigger :

                                                                                                                                                  Guard :

                                                                                                                                                    Activity :

                                                                                                                                                      Transition <transition>

                                                                                                                                                      From fork pseudo state To state action

                                                                                                                                                      Trigger :

                                                                                                                                                        Guard :

                                                                                                                                                          Activity :

                                                                                                                                                            + + +
                                                                                                                                                            Fork pseudo state
                                                                                                                                                            +

                                                                                                                                                            Defined in Lifecycle

                                                                                                                                                            + +
                                                                                                                                                            Exit point pseudo state done
                                                                                                                                                            +

                                                                                                                                                            Defined in Lifecycle

                                                                                                                                                            +
                                                                                                                                                            State action send-signal
                                                                                                                                                            +

                                                                                                                                                            Stereotype: send-signal

                                                                                                                                                            +

                                                                                                                                                            Defined in Lifecycle

                                                                                                                                                            Expression :

                                                                                                                                                            • OCL :
                                                                                                                                                              +undo
                                                                                                                                                            +
                                                                                                                                                            Transition <transition>

                                                                                                                                                            From state action To undo-able

                                                                                                                                                            Trigger :

                                                                                                                                                              Guard :

                                                                                                                                                                Activity :

                                                                                                                                                                  +
                                                                                                                                                                  diff --git a/doc/devel/uml/index_60.html b/doc/devel/uml/index_60.html index 8712d7074..ab6befaf1 100644 --- a/doc/devel/uml/index_60.html +++ b/doc/devel/uml/index_60.html @@ -28,8 +28,8 @@ <flow>transition <flow>transition <flow>transition -<flow>transition <flow>transition +<flow>transition <flow>transition <flow>transition <flow>transition @@ -37,6 +37,28 @@ <flow>transition <flow>transition <flow>transition +<transition>transition +<transition>transition +<transition>transition +<transition>transition +<transition>transition +<transition>transition +<transition>transition +<transition>transition +<transition>transition +<transition>transition +<transition>transition +<transition>transition +<transition>transition +<transition>transition +<transition>transition +<transition>transition +<transition>transition +<transition>transition +<transition>transition +<transition>transition +<transition>transition +<transition>transition diff --git a/doc/devel/uml/index_65.html b/doc/devel/uml/index_65.html index da137cab0..38dfaced6 100644 --- a/doc/devel/uml/index_65.html +++ b/doc/devel/uml/index_65.html @@ -41,6 +41,8 @@ applyoperation Architecturecomponent viewThe various Components comprising the Lumiera Video editing Application arenderartifactRepresentation of a Audio Render process +ArgumentHolderclass +argumentsrelation AssemblerclassThis is the actual building facility: provided the correct tools and associations, it serves to build and connect the individual ProcNode objects assemblerartifactbuilding facility (implementation of the build process) AssetclassSuperinterface describing especially the bookeeping properties of Assets @@ -58,8 +60,8 @@ aud_aclass instance aud_Aclass instance audioclass instance -audio1class instance audio1class instance +audio1class instance audio1class instance autoartifactMedia Object holding automation data AutoclassAutomation data for some parameter (i.e. a time varying function) diff --git a/doc/devel/uml/index_66.html b/doc/devel/uml/index_66.html index 5a4df3c38..2788567d7 100644 --- a/doc/devel/uml/index_66.html +++ b/doc/devel/uml/index_66.html @@ -37,8 +37,8 @@ buildableartifactmarker interface denoting any MObject able to be treated by Tools buildEngineoperationMain Operation of the Builder: create a render engine for a given part of the timeline Buildercomponent -Builderpackage builderpackagesourcecode package

                                                                                                                                                                  The Builder creating the Render Engine,
                                                                                                                                                                  located within the MObject Subsystem +Builderpackage Builder Entitiesclass diagram Builder Tool (Visitor)class diagram Builder Workingsclass view diff --git a/doc/devel/uml/index_67.html b/doc/devel/uml/index_67.html index 128becdac..a8a98a5d6 100644 --- a/doc/devel/uml/index_67.html +++ b/doc/devel/uml/index_67.html @@ -33,34 +33,35 @@ chainrelationChain of additional Placements further constraining the position of this MObject checked_inrelationchecked_in objects are subject of cache aging and must be not in use checked_outrelationthis list keeps all mappings which are in use, and thus prevents them from Cache aging -class instanceclass instance +choice pseudo statechoice pseudo state +class instanceclass instance class instanceclass instance +class instanceclass instance class instanceclass instance +class instanceclass instance +class instanceclass instance class instanceclass instance class instanceclass instance class instanceclass instance -class instanceclass instance -class instanceclass instance -class instanceclass instance -class instanceclass instance -class instanceclass instance -class instanceclass instance -class instanceclass instance -class instanceclass instance +class instanceclass instance class instanceclass instance -class instanceclass instance +class instanceclass instance class instanceclass instance -class instanceclass instance -class instanceclass instance -class instanceclass instance class instanceclass instance +class instanceclass instance class instanceclass instance -class instanceclass instance class instanceclass instance class instanceclass instance -class instanceclass instance -class instanceclass instance class instanceclass instance +class instanceclass instance +class instanceclass instance +class instanceclass instance +class instanceclass instance +class instanceclass instance +class instanceclass instance +class instanceclass instance +class instanceclass instance +class instanceclass instance clearoperationclear current session contents
                                                                                                                                                                  without resetting overall session config.
                                                                                                                                                                  Afterwards, the session will contain only one
                                                                                                                                                                  empty EDL, while all Assets are retained.
                                                                                                                                                                  client codecomponent Clipclassbookkeeping (asset) view of a media clip. @@ -69,14 +70,18 @@ Clipclass clipsrelation closureattribute +Closureclass CmdClosureclass +CmdDefstate Codecclassdescription of some media data decoder or encoder facility codecartifactdescription of some media data decoder or encoder facility CodecAdapterclass codecadapterartifactProcessing Node for (de)coding media data codegenpackageThis package is used to organize code generation by BOUML. It is considered useless after having generated the initial code skeleton. CommandclassKey abstraction for all proc/edit operations and UNDO management +Commandstate Command Handlingclass view +Command lifecyclestate diagram Command structureclass diagram commonpackagesourcecode package

                                                                                                                                                                  Common library and helper classes CommonLibcomponent diff --git a/doc/devel/uml/index_68.html b/doc/devel/uml/index_68.html index 40b7b291d..580695e3a 100644 --- a/doc/devel/uml/index_68.html +++ b/doc/devel/uml/index_68.html @@ -32,14 +32,15 @@ designpackage designpackageAll things concering the big picture.
                                                                                                                                                                  Not a real code package, rather a container for design drafts, specifications, decisions. detect Channelsuse case -determine Render Paramsexpansion region determine Render Paramsopaque activity action +determine Render Paramsexpansion region devnullclass instance Dispatchercomponent dispatchOpoperation doattribute DoAsyncclass DoAttachclass +doneexit point pseudo state DoRecurseclass DoSyncclass diff --git a/doc/devel/uml/index_69.html b/doc/devel/uml/index_69.html index 0c6f365e7..3c4e4f7af 100644 --- a/doc/devel/uml/index_69.html +++ b/doc/devel/uml/index_69.html @@ -23,8 +23,8 @@ EDL Example2object diagramMore complex example showing the Object graph in the EDL and how it is linked into the Fixture to yield the actual locations. In this example, an HUE Effect is applied on a part of the Clip edlsrelation EffectclassEffect or media processing component -effectartifactEffect or media processing component effectartifactEDL representation of a pluggable and automatable effect. +effectartifactEffect or media processing component Effectclass effective timeline (Fixture)node effectiveTimelinerelation diff --git a/doc/devel/uml/index_70.html b/doc/devel/uml/index_70.html index 777bf389c..93fe59aa1 100644 --- a/doc/devel/uml/index_70.html +++ b/doc/devel/uml/index_70.html @@ -40,6 +40,8 @@ Fixturecomponent Fixtureclass fork activity nodefork activity node +fork pseudo statefork pseudo state +fork pseudo statefork pseudo state FrameclassFrames are just a low level lump of continous memory, most parts are opaque. Frames are memory sensitive, they will be small constant sized structures which can be efficently managed in a pool. Framenode FrameclassTODO: how to relate to Cehteh's Frame entity in the Backend?
                                                                                                                                                                  The latter is the fundamental Frame entity, wheras this Object rather represents a buffer set containing frame date diff --git a/doc/devel/uml/index_72.html b/doc/devel/uml/index_72.html index 90532e3e5..7356cb17f 100644 --- a/doc/devel/uml/index_72.html +++ b/doc/devel/uml/index_72.html @@ -24,8 +24,8 @@ Hierarchyclass diagramLumiera Exception hierarchy howtoProcoperation@return descriptor how to build a render pipeline corresponding to this media hubartifactspecial ProcNode used to build data distributing connections -HUEclass instance HUEclass instance +HUEclass instance diff --git a/doc/devel/uml/index_73.html b/doc/devel/uml/index_73.html index 8dc64d64b..1e264158e 100644 --- a/doc/devel/uml/index_73.html +++ b/doc/devel/uml/index_73.html @@ -19,12 +19,13 @@ NameKindDescription idattributeAsset primary key. IDattribute +IDentry point pseudo state ImplFacadeclass In Memory Databaseclass diagram inFixtureactivity action pin +inputclass instance inputclass instance inputclass instance -inputclass instance instanceoperation InstanceHandleclass instructionsrelation diff --git a/doc/devel/uml/index_76.html b/doc/devel/uml/index_76.html index 0689ba659..bdd59ab29 100644 --- a/doc/devel/uml/index_76.html +++ b/doc/devel/uml/index_76.html @@ -22,6 +22,7 @@ Layer Separation Interfaceclass diagram lengthattributeTODO: how to represent time intervals? lengthattributeduration (span) of this timeline segment. +Lifecyclestate machine Linkclass linkartifactforwarding, adapting or connecting ProcNode loadoperationreplace the current session by a new
                                                                                                                                                                  session loaded from serialized state. diff --git a/doc/devel/uml/index_79.html b/doc/devel/uml/index_79.html index d7e2263c6..0f0da521d 100644 --- a/doc/devel/uml/index_79.html +++ b/doc/devel/uml/index_79.html @@ -20,9 +20,9 @@ offsetattributeOffset the actual position by this (time) value relative to the anchor point. TODO: Representation? OperationBaseclass orgattributeorigin or authorship id. Can be a project abbreviation, a package id or just the authors nickname or UID. This allows for the compnent name to be more generic (e.g. "blur"). Default for all assets provided by the core Lumiera codebase is "lumi". +ouputclass instance ouputclass instance ouputclass instance -ouputclass instance outPortrelationthe Port this MObject wants to be conected to Overviewcomponent diagramThis drawing shows the top level compoents and relations Overview Render Enginedeployment diagram diff --git a/doc/devel/uml/index_80.html b/doc/devel/uml/index_80.html index a9a67427a..fc2fcf572 100644 --- a/doc/devel/uml/index_80.html +++ b/doc/devel/uml/index_80.html @@ -18,11 +18,12 @@ + - + diff --git a/doc/devel/uml/index_83.html b/doc/devel/uml/index_83.html index ceab40c4a..fa8dc7579 100644 --- a/doc/devel/uml/index_83.html +++ b/doc/devel/uml/index_83.html @@ -20,6 +20,7 @@ + @@ -36,8 +37,8 @@ - + @@ -51,8 +52,8 @@ - + @@ -62,6 +63,15 @@ + + + + + + + + + diff --git a/doc/devel/uml/index_84.html b/doc/devel/uml/index_84.html index 58b8a6bf5..ea6b9d69e 100644 --- a/doc/devel/uml/index_84.html +++ b/doc/devel/uml/index_84.html @@ -17,8 +17,6 @@
                                                                                                                                                                  NameKindDescription
                                                                                                                                                                  paramrelation
                                                                                                                                                                  ParamAccessorclass
                                                                                                                                                                  parameterartifactrepresentation of an automatable effect/plugin parameter
                                                                                                                                                                  ParameterclassDescriptor and access object for a plugin parameter. Parameters may be provided with values from the session, and this values may be automated.
                                                                                                                                                                  paramproviderartifactinterface denoting a source for actual Parameter values
                                                                                                                                                                  ParamProviderclassA facility to get the actual value of a plugin/effect parameter
                                                                                                                                                                  paramsrelation
                                                                                                                                                                  paramsrelation
                                                                                                                                                                  paramsrelation
                                                                                                                                                                  PathManagerclassWhile building a render engine, this Strategy class decides on the actual render strategy in accordance to the current controller settings (system state)
                                                                                                                                                                  pathmanagerartifactManager for deciding the actual render strategy
                                                                                                                                                                  SAMETIMEattributeplace subject at the sime time as the anchor
                                                                                                                                                                  saveoperationcreate a complete, serialized representation
                                                                                                                                                                  of the current session config and contents.
                                                                                                                                                                  @todo how to serialize, prameters, return value?
                                                                                                                                                                  Schedulerclass
                                                                                                                                                                  scratchstate
                                                                                                                                                                  segmentartifactSegment of the Timeline.
                                                                                                                                                                  Used at the moment (7/07) for partitioning the timeline/fixture into segments
                                                                                                                                                                  to be rendered by a specialized render node network for each, without the need
                                                                                                                                                                  to change any connections within a given segment.
                                                                                                                                                                  Note this concept may be superfluos alltogether; is a draft and the real
                                                                                                                                                                  use still needs to be worked out...
                                                                                                                                                                  Segmentclass
                                                                                                                                                                  segment Toolactivity object
                                                                                                                                                                  ServiceImplclass
                                                                                                                                                                  Sessioncomponent
                                                                                                                                                                  sessionartifactInterface: the session edited by the user
                                                                                                                                                                  sessionpackagesourcecode package

                                                                                                                                                                  Everything concerning the EDL and Session, within the MObject Subsystem
                                                                                                                                                                  Sessionclass view
                                                                                                                                                                  sessionpackagesourcecode package

                                                                                                                                                                  Everything concerning the EDL and Session, within the MObject Subsystem
                                                                                                                                                                  SessionclassPrimary Interface for all editing tasks.
                                                                                                                                                                  The session contains defaults, all the assets being edited, and a set of EDL with the individual MObjects to be manipulated and rendered.
                                                                                                                                                                  Session structureclass diagram
                                                                                                                                                                  sessionimplartifactholds the complete session data to be edited by the user
                                                                                                                                                                  SimpleClipclassElementary clip consisting of only one media stream
                                                                                                                                                                  SmartPointerclass
                                                                                                                                                                  SmartPointersclass view
                                                                                                                                                                  sourcerelationmedia source of this clip
                                                                                                                                                                  sourcerelationthe media source this clip referes to
                                                                                                                                                                  sourcerelationmedia source of this clip
                                                                                                                                                                  SourceclassSource Node: represents a media source to pull data from.
                                                                                                                                                                  sourceartifactRepresentation of a Media source
                                                                                                                                                                  Source Overviewdeployment diagram
                                                                                                                                                                  Statenode
                                                                                                                                                                  Stateclass
                                                                                                                                                                  staterelation
                                                                                                                                                                  state actionstate action
                                                                                                                                                                  state actionstate action
                                                                                                                                                                  state actionstate action
                                                                                                                                                                  state actionstate action
                                                                                                                                                                  state actionstate actiontry to fetch existing definition
                                                                                                                                                                  state actionstate action
                                                                                                                                                                  state actionstate action
                                                                                                                                                                  state actionstate action
                                                                                                                                                                  state actionstate action
                                                                                                                                                                  StateAdapterclass
                                                                                                                                                                  StateAdapter compositionclass diagram
                                                                                                                                                                  StateProxyclass
                                                                                                                                                                  - - @@ -46,12 +44,12 @@ - + - - + + diff --git a/doc/devel/uml/index_85.html b/doc/devel/uml/index_85.html index ce1f36dc0..982764b59 100644 --- a/doc/devel/uml/index_85.html +++ b/doc/devel/uml/index_85.html @@ -18,6 +18,7 @@
                                                                                                                                                                  NameKindDescription
                                                                                                                                                                  Targetclass
                                                                                                                                                                  targetsrelation
                                                                                                                                                                  the render configuration flowactivity diagram
                                                                                                                                                                  theApp_attributeholds the single instance and triggers initialization
                                                                                                                                                                  theFixturerelation
                                                                                                                                                                  trafoartifacttransforming processing Node
                                                                                                                                                                  treatoperation
                                                                                                                                                                  treatoperationThis operation is to be overloaded for the specific MObject subclasses to be treated.
                                                                                                                                                                  treatoperation
                                                                                                                                                                  treatoperation
                                                                                                                                                                  treatoperation
                                                                                                                                                                  treatoperation
                                                                                                                                                                  treatoperation
                                                                                                                                                                  treatoperation
                                                                                                                                                                  treatoperation
                                                                                                                                                                  treatoperation
                                                                                                                                                                  treatoperation
                                                                                                                                                                  treatoperation
                                                                                                                                                                  TypeHandlerclass
                                                                                                                                                                  TypeHandler<Pipe>class
                                                                                                                                                                  + diff --git a/doc/devel/uml/index_86.html b/doc/devel/uml/index_86.html index 1ab403ad8..85cc3a896 100644 --- a/doc/devel/uml/index_86.html +++ b/doc/devel/uml/index_86.html @@ -21,21 +21,21 @@ - - - - - - + + + + + + - - - + + + diff --git a/doc/devel/uml/navig.html b/doc/devel/uml/navig.html index fd08b1b7d..a9391da5f 100644 --- a/doc/devel/uml/navig.html +++ b/doc/devel/uml/navig.html @@ -9,7 +9,7 @@


                                                                                                                                                                  -

                                                                                                                                                                  -Top- -Classes- -Public Operations- -Public properties- -Packages- -Use Cases- -Activities- -Class Diagrams- -Object Diagrams- -Activity Diagrams- -Use Case Diagrams- -Collaboration Diagrams- -Component Diagrams- -Deployment Diagrams-

                                                                                                                                                                  +

                                                                                                                                                                  -Top- -Classes- -Public Operations- -Public properties- -Packages- -Use Cases- -Activities- -States- -Class Diagrams- -Object Diagrams- -Activity Diagrams- -State Diagrams- -Use Case Diagrams- -Collaboration Diagrams- -Component Diagrams- -Deployment Diagrams-

                                                                                                                                                                  " < A B C D E F G H I K L M N O P Q R S T U V W Y ~

                                                                                                                                                                  diff --git a/doc/devel/uml/statediagrams.html b/doc/devel/uml/statediagrams.html new file mode 100644 index 000000000..db5a38a93 --- /dev/null +++ b/doc/devel/uml/statediagrams.html @@ -0,0 +1,22 @@ + + + + + + +State Diagram Index + + + + + +
                                                                                                                                                                  State Diagram Index
                                                                                                                                                                  +

                                                                                                                                                                  + + + +
                                                                                                                                                                  NameKindDescription
                                                                                                                                                                  undoattribute
                                                                                                                                                                  undo-ablestate
                                                                                                                                                                  UndoMutationclass
                                                                                                                                                                  undoOprelation
                                                                                                                                                                  UndoSyncclass
                                                                                                                                                                  VFrameclass
                                                                                                                                                                  vframeartifacta buffer and render process holding a Video frame
                                                                                                                                                                  vid1class instance
                                                                                                                                                                  vid_Aclass instance
                                                                                                                                                                  vid_aclass instance
                                                                                                                                                                  vid_Aclass instance
                                                                                                                                                                  vid_aclass instance
                                                                                                                                                                  vid_Aclass instance
                                                                                                                                                                  videoclass instance
                                                                                                                                                                  videoclass instance
                                                                                                                                                                  videoclass instance
                                                                                                                                                                  vid_aclass instance
                                                                                                                                                                  vid_aclass instance
                                                                                                                                                                  vid_Aclass instance
                                                                                                                                                                  videoclass instance
                                                                                                                                                                  videoclass instance
                                                                                                                                                                  videoclass instance
                                                                                                                                                                  videoclass instance
                                                                                                                                                                  video1class instance
                                                                                                                                                                  video1class instance
                                                                                                                                                                  video1class instance
                                                                                                                                                                  video1class instance
                                                                                                                                                                  video1class instance
                                                                                                                                                                  video1class instance
                                                                                                                                                                  video1class instance
                                                                                                                                                                  video1class instance
                                                                                                                                                                  video1class instance
                                                                                                                                                                  Visitableclass
                                                                                                                                                                  visitorpackagesub-namespace for visitor library implementation
                                                                                                                                                                  visitorartifactAcyclic Visitor library
                                                                                                                                                                  + +
                                                                                                                                                                  Command lifecycle
                                                                                                                                                                  + + diff --git a/doc/devel/uml/states.html b/doc/devel/uml/states.html new file mode 100644 index 000000000..bfb3aa192 --- /dev/null +++ b/doc/devel/uml/states.html @@ -0,0 +1,26 @@ + + + + + + +States Index + + + + + +
                                                                                                                                                                  States Index
                                                                                                                                                                  +

                                                                                                                                                                  + + + + + + + + + +
                                                                                                                                                                  CmdDef
                                                                                                                                                                  Command
                                                                                                                                                                  Lifecyclemachine
                                                                                                                                                                  scratch
                                                                                                                                                                  undo-able
                                                                                                                                                                  + + diff --git a/uml/lumiera/128261 b/uml/lumiera/128261 index a6af8fb25..87b5544e9 100644 --- a/uml/lumiera/128261 +++ b/uml/lumiera/128261 @@ -1,6 +1,6 @@ format 58 "MObject" // ProcessingLayer::MObject - revision 36 + revision 37 modified_by 5 "hiv" // class settings //class diagram settings diff --git a/uml/lumiera/129029 b/uml/lumiera/129029 index ffbb809fb..aca9b3dd3 100644 --- a/uml/lumiera/129029 +++ b/uml/lumiera/129029 @@ -1,6 +1,6 @@ format 58 "Control" // ProcessingLayer::Control - revision 8 + revision 9 modified_by 5 "hiv" // class settings //class diagram settings @@ -452,25 +452,6 @@ ${inlines} idl_decl "" explicit_switch_type "" - classrelation 172549 // targets () - relation 162565 *--> - stereotype "list" - a role_name "targets" protected - cpp default " ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value}; -" - classrelation_ref 172549 // targets () - b multiplicity "*" parent class_ref 149637 // Target - end - - classrelation 172677 // params () - relation 162693 *--> - stereotype "list" - a role_name "params" protected - cpp default " ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value}; -" - classrelation_ref 172677 // params () - b multiplicity "*" parent class_ref 134533 // Parameter - end end class 149125 "DoSync" @@ -561,8 +542,11 @@ ${inlines} end end - class 149637 "Target" + class 149637 "ParamAccessor" visibility package + nformals 1 + formal name "TY" type "class" explicit_default_value "" + explicit_extends "" cpp_decl "${comment}${template}class ${name}${inherit} { ${members} }; @@ -590,5 +574,247 @@ ${inlines} explicit_switch_type "" end + + class 150789 "Closure" + visibility package + nformals 1 + formal name "SIG" type "class" explicit_default_value "" + explicit_extends "" + cpp_decl "${comment}${template}class ${name}${inherit} + { +${members} }; +${inlines} +" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + + classrelation 174853 // + relation 164869 ---|> + a public + cpp default "${type}" + classrelation_ref 174853 // + b parent class_ref 148997 // CmdClosure + end + + classrelation 175109 // params () + relation 165125 *--> + stereotype "tuple" + a role_name "params" protected + cpp default " ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value}; +" + classrelation_ref 175109 // params () + b multiplicity "*" parent class_ref 149637 // ParamAccessor + end + end + + class 150917 "ArgumentHolder" + visibility package + nformals 1 + formal name "SIG" type "class" explicit_default_value "" + explicit_extends "" + cpp_decl "${comment}${template}class ${name}${inherit} + { +${members} }; +${inlines} +" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + + classrelation 175237 // + relation 165253 ---|> + a public + cpp default "${type}" + classrelation_ref 175237 // + b parent class_ref 148997 // CmdClosure + end + + classrelation 175493 // arguments () + relation 165509 ---> + stereotype "manages" + a role_name "arguments" multiplicity "1" protected + cpp default " ${comment}${static}${mutable}${volatile}${const}${type}* ${name}${value}; +" + classrelation_ref 175493 // arguments () + b multiplicity "1" parent class_ref 150789 // Closure + end + end + + state 128005 "Lifecycle" + stereotype "machine" + statediagram 135173 "Command lifecycle" + package_name_in_tab default show_context default auto_label_position default write_trans_label_horizontally default show_trans_definition yes draw_all_relations default shadow default + show_activities default region_horizontally default drawing_language default show_stereotype_properties default + size A4 + end + + pseudostate 128005 entry_point "ID" + transition 128901 "" + on stateaction_ref 128005 + external + end + end + + stateaction 128005 + uml "fetch def" + comment "try to fetch existing definition" + transition 128773 "" + on pseudostate_ref 128133 // choice + external + end + end + + state 128133 "scratch" + transition 128261 "" + on stateaction_ref 128133 + external + end + end + + stateaction 128133 + uml "def DO" + transition 128389 "" + on pseudostate_ref 128261 // fork + external + end + + transition 129029 "" + on stateaction_ref 128261 + external + end + + transition 129157 "" + on stateaction_ref 128517 + external + end + end + + stateaction 128261 + uml "def CAP" + transition 129285 "" + on stateaction_ref 128389 + external + end + end + + stateaction 128389 + uml "def UNDO" + transition 129541 "" + on state_ref 128261 // CmdDef + external + end + end + + stateaction 128517 + uml "def UNDO" + transition 129413 "" + on stateaction_ref 128645 + external + end + end + + stateaction 128645 + uml "def CAP" + transition 129669 "" + on state_ref 128261 // CmdDef + external + end + end + + state 128261 "CmdDef" + transition 129797 "" + on stateaction_ref 128773 + external + end + end + + stateaction 128773 + uml "bind" + transition 129925 "" + on state_ref 128389 // Command + external + end + end + + state 128389 "Command" + transition 130053 "" + on stateaction_ref 129029 + external + end + end + + stateaction 129029 + stereotype "send-signal" + uml "exec pattern" + transition 130181 "" + on state_ref 128517 // undo-able + external + end + end + + state 128517 "undo-able" + transition 130309 "" + on pseudostate_ref 128517 // exit_point + external + end + + transition 130437 "" + on stateaction_ref 129157 + external + end + + transition 130693 "" + on stateaction_ref 129029 + external + end + end + + pseudostate 128133 choice + stereotype "try" + transition 128005 "" + on state_ref 128133 // scratch + uml_expr "not found" + external + end + + transition 128133 "" + on state_ref 128261 // CmdDef + uml_expr "found" + external + end + end + + pseudostate 128261 fork + transition 128517 "" + on stateaction_ref 128261 + external + end + + transition 128645 "" + on stateaction_ref 128517 + external + end + end + + pseudostate 128389 fork + end + + pseudostate 128517 exit_point "done" + end + + stateaction 129157 + stereotype "send-signal" + uml "undo" + transition 130565 "" + on state_ref 128517 // undo-able + external + end + end + end end end diff --git a/uml/lumiera/134021.diagram b/uml/lumiera/134021.diagram index 47e68f995..fdf19d33b 100644 --- a/uml/lumiera/134021.diagram +++ b/uml/lumiera/134021.diagram @@ -7,7 +7,7 @@ classcanvas 128005 class_ref 148485 // Command end classcanvas 128133 class_ref 148613 // HandlingPattern draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default show_stereotype_properties default - xyz 424 293 2000 + xyz 421 307 2000 end classcanvas 128261 class_ref 148741 // Mutation draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default show_stereotype_properties default @@ -19,7 +19,7 @@ classcanvas 128389 class_ref 148869 // UndoMutation end classcanvas 128517 class_ref 148997 // CmdClosure draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default show_stereotype_properties default - xyz 25 178 2000 + xyz 14 178 2000 end classcanvas 128773 class_ref 149125 // DoSync draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default show_stereotype_properties default @@ -37,18 +37,22 @@ classcanvas 129157 class_ref 149509 // RedoLast draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default show_stereotype_properties default xyz 488 507 2000 end -classcanvas 130565 class_ref 134533 // Parameter +classcanvas 130693 class_ref 149637 // ParamAccessor draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default show_stereotype_properties default - xyz 112 298 2005 -end -classcanvas 130693 class_ref 149637 // Target - draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default show_stereotype_properties default - xyz 112 249 2010 + xyz 64 329 2010 end classcanvas 133765 class_ref 141957 // ProcDispatcher draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default show_stereotype_properties default color lightred - xyz 279 401 2000 + xyz 281 411 2000 +end +classcanvas 134021 class_ref 150789 // Closure + draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default show_stereotype_properties default + xyz 26 374 2015 +end +classcanvas 134789 class_ref 150917 // ArgumentHolder + draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default show_stereotype_properties default + xyz 64 260 2000 end relationcanvas 128645 relation_ref 161925 // from ref 128389 z 1999 to ref 128261 @@ -57,58 +61,44 @@ relationcanvas 128645 relation_ref 161925 // end relationcanvas 129285 relation_ref 162053 // geometry VHr - from ref 128773 z 1999 to point 467 388 + from ref 128773 z 1999 to point 464 388 line 130309 z 1999 to ref 128133 no_role_a no_role_b no_multiplicity_a no_multiplicity_b end relationcanvas 129669 relation_ref 162181 // geometry VHr - from ref 128901 z 1999 to point 467 433 + from ref 128901 z 1999 to point 464 433 line 129797 z 1999 to ref 128133 no_role_a no_role_b no_multiplicity_a no_multiplicity_b end relationcanvas 129925 relation_ref 162309 // geometry VHr - from ref 129029 z 1999 to point 467 479 + from ref 129029 z 1999 to point 464 479 line 130053 z 1999 to ref 128133 no_role_a no_role_b no_multiplicity_a no_multiplicity_b end relationcanvas 130181 relation_ref 162437 // geometry VHr - from ref 129157 z 1999 to point 467 524 + from ref 129157 z 1999 to point 464 524 line 130437 z 1999 to ref 128133 no_role_a no_role_b no_multiplicity_a no_multiplicity_b end -relationcanvas 130821 relation_ref 162565 // - geometry VH - from ref 128517 z 1999 stereotype "<>" xyz 67 239 3000 to point 59 266 - line 130949 z 1999 to ref 130693 - role_a_pos 69 251 3000 no_role_b - no_multiplicity_a multiplicity_b_pos 47 222 3000 -end -relationcanvas 131077 relation_ref 162693 // - geometry VH - from ref 128517 z 1999 stereotype "<>" xyz 66 300 3000 to point 59 327 - line 131205 z 1999 to ref 130565 - role_a_pos 67 312 3000 no_role_b - no_multiplicity_a multiplicity_b_pos 47 222 3000 -end relationcanvas 131333 relation_ref 162821 // decenter_begin 780 - from ref 128005 z 1999 stereotype "<>" xyz 110 184 3000 to ref 128517 + from ref 128005 z 1999 stereotype "<>" xyz 104 184 3000 to ref 128517 no_role_a no_role_b - multiplicity_a_pos 107 202 3000 multiplicity_b_pos 160 202 3000 + multiplicity_a_pos 96 202 3000 multiplicity_b_pos 160 202 3000 end relationcanvas 131461 relation_ref 162949 // decenter_begin 543 from ref 128389 z 1999 to point 453 201 line 132229 z 1999 to point 453 128 line 131717 z 1999 to ref 128261 - role_a_pos 410 174 3000 no_role_b + role_a_pos 411 174 3000 no_role_b no_multiplicity_a no_multiplicity_b end relationcanvas 131845 relation_ref 163077 // @@ -116,7 +106,7 @@ relationcanvas 131845 relation_ref 163077 // from ref 128389 z 1999 to point 453 186 line 131973 z 1999 to point 453 128 line 132101 z 1999 to ref 128261 - role_a_pos 409 203 3000 no_role_b + role_a_pos 410 207 3000 no_role_b no_multiplicity_a no_multiplicity_b end relationcanvas 132613 relation_ref 163205 // @@ -132,15 +122,44 @@ relationcanvas 132869 relation_ref 163333 // no_multiplicity_a no_multiplicity_b end relationcanvas 133509 relation_ref 163589 // - from ref 128005 z 1993 stereotype "<>" xyz 263 248 3000 to point 245 214 + from ref 128005 z 1993 stereotype "<>" xyz 265 250 3000 to point 245 214 line 133637 z 1993 to ref 128133 no_role_a no_role_b no_multiplicity_a no_multiplicity_b end relationcanvas 133893 relation_ref 163717 // - from ref 128133 z 1999 stereotype "<>" xyz 314 370 3000 to ref 133765 + from ref 128133 z 1999 stereotype "<>" xyz 314 382 3000 to ref 133765 no_role_a no_role_b no_multiplicity_a no_multiplicity_b end +relationcanvas 134149 relation_ref 164869 // + from ref 134021 z 1999 to ref 128517 + no_role_a no_role_b + no_multiplicity_a no_multiplicity_b +end +relationcanvas 134405 relation_ref 165125 // + geometry HV + from ref 134021 z 2009 stereotype "<>" xyz 98 400 3000 to point 107 398 + line 134661 z 2009 to ref 130693 + role_a_pos 114 390 3000 no_role_b + no_multiplicity_a multiplicity_b_pos 86 406 3000 +end +relationcanvas 134917 relation_ref 165253 // + geometry VHV unfixed + from ref 134789 z 1999 to point 107 240 + line 135045 z 1999 to point 48 240 + line 135173 z 1999 to ref 128517 + no_role_a no_role_b + no_multiplicity_a no_multiplicity_b +end +relationcanvas 135685 relation_ref 165509 // + decenter_begin 490 + from ref 134789 z 1999 stereotype "<>" xyz 103 418 3000 to point 174 298 + line 135941 z 1999 to point 174 429 + line 136069 z 1999 to point 92 429 + line 135813 z 1999 to ref 134021 + role_a_pos 110 430 3000 no_role_b + multiplicity_a_pos 86 431 3000 multiplicity_b_pos 164 297 3000 +end preferred_whz 575 622 1 end diff --git a/uml/lumiera/135173.diagram b/uml/lumiera/135173.diagram new file mode 100644 index 000000000..e02ebcc50 --- /dev/null +++ b/uml/lumiera/135173.diagram @@ -0,0 +1,161 @@ +format 58 + +pseudostatecanvas 128005 pseudostate_ref 128005 // entry_point + xyz 180 12 3005 label_xy 184 31 +end +stateactioncanvas 128133 stateaction_ref 128005 + xyzwh 225 41 2000 53 26 +end +statecanvas 128261 state_ref 128133 // scratch + show_activities default region_horizontally default drawing_language default show_stereotype_properties default + xyzwh 74 82 2000 57 33 +end +stateactioncanvas 128389 stateaction_ref 128133 + xyzwh 80 133 2000 44 26 +end +stateactioncanvas 128517 stateaction_ref 128261 + xyzwh 53 175 2000 50 26 +end +stateactioncanvas 128645 stateaction_ref 128389 + xyzwh 49 213 2000 58 26 +end +stateactioncanvas 128773 stateaction_ref 128517 + xyzwh 110 175 2000 58 26 +end +stateactioncanvas 128901 stateaction_ref 128645 + xyzwh 114 213 2000 50 26 +end +statecanvas 129029 state_ref 128261 // CmdDef + show_activities default region_horizontally default drawing_language default show_stereotype_properties default + xyzwh 73 276 2000 59 33 +end +stateactioncanvas 129157 stateaction_ref 128773 + xyzwh 112 337 2000 32 26 +end +statecanvas 129413 state_ref 128389 // Command + show_activities default region_horizontally default drawing_language default show_stereotype_properties default + xyzwh 127 388 2000 69 33 +end +stateactioncanvas 129541 stateaction_ref 129029 + xyzwh 160 445 2000 84 30 +end +statecanvas 129669 state_ref 128517 // undo-able + show_activities default region_horizontally default drawing_language default show_stereotype_properties default + xyzwh 162 501 2000 81 36 +end +pseudostatecanvas 129797 pseudostate_ref 128133 // choice + xyz 238 81 2000 +end +pseudostatecanvas 132997 pseudostate_ref 128517 // exit_point + xyz 288 510 3005 label_xy 286 529 +end +stateactioncanvas 133125 stateaction_ref 129157 + xyzwh 161 565 2000 85 30 +end +transitioncanvas 129925 transition_ref 128005 // + + from ref 129797 z 1999 label "/ not found" xyz 155 100 1999 to ref 128261 + write_horizontally default show_definition default drawing_language default +end +transitioncanvas 130053 transition_ref 128133 // + geometry HVr + + from ref 129797 z 1999 label "/ found" xyz 215 129 1999 to point 248 290 + line 130309 z 1999 to ref 129029 + write_horizontally default show_definition default drawing_language default +end +transitioncanvas 130437 transition_ref 128261 // + + from ref 128261 z 1999 to ref 128389 + write_horizontally default show_definition default drawing_language default +end +transitioncanvas 131205 transition_ref 128773 // + + from ref 128133 z 1999 to ref 129797 + write_horizontally default show_definition default drawing_language default +end +transitioncanvas 131589 transition_ref 128901 // + geometry HV + + from ref 128005 z 1999 to point 249 19 + line 134661 z 1999 to ref 128133 + write_horizontally default show_definition default drawing_language default +end +transitioncanvas 131717 transition_ref 129029 // + + from ref 128389 z 1999 to ref 128517 + write_horizontally default show_definition default drawing_language default +end +transitioncanvas 131845 transition_ref 129157 // + + from ref 128389 z 1999 to ref 128773 + write_horizontally default show_definition default drawing_language default +end +transitioncanvas 131973 transition_ref 129285 // + + from ref 128517 z 1999 to ref 128645 + write_horizontally default show_definition default drawing_language default +end +transitioncanvas 132101 transition_ref 129413 // + + from ref 128773 z 1999 to ref 128901 + write_horizontally default show_definition default drawing_language default +end +transitioncanvas 132229 transition_ref 129541 // + + from ref 128645 z 1999 to ref 129029 + write_horizontally default show_definition default drawing_language default +end +transitioncanvas 132357 transition_ref 129669 // + + from ref 128901 z 1999 to ref 129029 + write_horizontally default show_definition default drawing_language default +end +transitioncanvas 132485 transition_ref 129797 // + + from ref 129029 z 1999 to ref 129157 + write_horizontally default show_definition default drawing_language default +end +transitioncanvas 132613 transition_ref 129925 // + + from ref 129157 z 1999 to ref 129413 + write_horizontally default show_definition default drawing_language default +end +transitioncanvas 132741 transition_ref 130053 // + + from ref 129413 z 1999 to ref 129541 + write_horizontally default show_definition default drawing_language default +end +transitioncanvas 132869 transition_ref 130181 // + + from ref 129541 z 1999 to ref 129669 + write_horizontally default show_definition default drawing_language default +end +transitioncanvas 133253 transition_ref 130309 // + + from ref 129669 z 1999 to ref 132997 + write_horizontally default show_definition default drawing_language default +end +transitioncanvas 133381 transition_ref 130437 // + + from ref 129669 z 1999 to ref 133125 + write_horizontally default show_definition default drawing_language default +end +transitioncanvas 133509 transition_ref 130565 // + decenter_end 702 + + from ref 133125 z 1999 to point 138 576 + line 133765 z 1999 to point 138 540 + line 133637 z 1999 to ref 129669 + write_horizontally default show_definition default drawing_language default +end +transitioncanvas 133893 transition_ref 130693 // + decenter_begin 324 + + from ref 129669 z 1999 to point 137 496 + line 134149 z 1999 to point 137 456 + line 134533 z 1999 to ref 129541 + write_horizontally default show_definition default drawing_language default +end +preferred_whz 349 682 1 +end diff --git a/uml/lumiera/5.session b/uml/lumiera/5.session index 05da50f1a..9d1a80e06 100644 --- a/uml/lumiera/5.session +++ b/uml/lumiera/5.session @@ -1,16 +1,23 @@ window_sizes 1302 1004 270 1022 856 71 +diagrams + active classdiagram_ref 134021 // Command structure + 575 622 100 4 0 0 + statediagram_ref 135173 // Command lifecycle + 349 682 100 4 0 0 +end show_stereotypes selected package_ref 129 // lumiera open - componentview_ref 128005 // Architecture classview_ref 129413 // Project Entities package_ref 128645 // codegen package_ref 128133 // Asset - - package_ref 129029 // Control + classview_ref 128389 // Controller Workings + class_ref 148997 // CmdClosure + class_ref 150789 // Closure + pseudostate_ref 128133 // choice package_ref 128261 // MObject classview_ref 128133 // Engine Workings diff --git a/uml/lumiera/lumiera.prj b/uml/lumiera/lumiera.prj index c978054a5..66d76596f 100644 --- a/uml/lumiera/lumiera.prj +++ b/uml/lumiera/lumiera.prj @@ -1,6 +1,6 @@ format 58 "lumiera" - revision 52 + revision 53 modified_by 5 "hiv" cpp_root_dir "../../src/" diff --git a/wiki/renderengine.html b/wiki/renderengine.html index 426e40087..4645ae74b 100644 --- a/wiki/renderengine.html +++ b/wiki/renderengine.html @@ -951,7 +951,7 @@ TertiaryMid: #99a TertiaryDark: #667 Error: #f88 -
                                                                                                                                                                  +
                                                                                                                                                                  Within Proc-Layer, a Command is the abstract representation of a single operation or a compound of operations mutating the HighLevelModel.
                                                                                                                                                                   Thus, each command is a ''Functor'' and a ''Closure'' ([[command pattern|http://en.wikipedia.org/wiki/Command_pattern]]), allowing commands to be treated uniformly, enqueued in a [[dispatcher|ProcDispatcher]], logged to the SessionStorage and registered with the UndoManager.
                                                                                                                                                                   
                                                                                                                                                                  @@ -959,6 +959,7 @@ Commands are //defined// using a [[fluent API|http://en.wikipedia.org/wiki/Fluen
                                                                                                                                                                   
                                                                                                                                                                   &rarr; see CommandDefinition
                                                                                                                                                                   &rarr; see CommandHandling
                                                                                                                                                                  +&rarr; see CommandLifecycle
                                                                                                                                                                   
                                                                                                                                                                  @@ -989,7 +990,7 @@ While generally there is //no limitation// on the number and type of parameters, Usually, parameters should be passed //by value// &mdash; with the exception of target object(s), which are typically bound as MObjectRef, causing them to be resolved at commad execution time (late binding).
                                                                                                                                                                  -
                                                                                                                                                                  +
                                                                                                                                                                  Organising any ''mutating'' operations executable by the user (via GUI) by means of the [[command pattern|http://en.wikipedia.org/wiki/Command_pattern]] can be considered //state of the art//&nbsp; today. First of all, it allows to discern the specific implementation operations to be called on one or several objects within the HighLevelModel from the operation requested by the user, the latter being rather a concept. A command can be labeled clearly, executed under controlled circumstances, allowing transactional behaviour.
                                                                                                                                                                   
                                                                                                                                                                   
                                                                                                                                                                  @@ -1005,9 +1006,22 @@ While obviously the first solution is much simpler to implement on behalf of the
                                                                                                                                                                   While the usual »Memento« implementation might automatically capture the whole model (resulting in a lot of data to be stored and some uncertainty about the scope of the model to be captured), in Lumiera we rely instead on the client code to provide a ''capture function''&nbsp;and a ''playback function'' alongside with the actual operation. To help with this task, we provide a set of standard handlers for common situations. This way, operations might capture very specific information, might provide an "intelligent undo" to restore a given semantic instead of just a fixed value &mdash; and moreover the client code is free actually to employ the "inverse operation" model in special cases where it just makes more sense than capturing state.
                                                                                                                                                                   
                                                                                                                                                                   !Handling of commands
                                                                                                                                                                  -A command may be [[defined|CommandDefinition]] completely from scratch, or it might just instantiate a CommandPrototype with specific targets and parameters. The command could then be serialised and later be recovered and re-bound with the parameters, but usually it will be handed over to the ProcDispatcher, pending execution. When ''invoking'', the handling sequence is to [[log the command|SessionStorage]], then call the ''undo capture function'', followed from calling the actual ''operation function''. After success, the logging and [[undo registration|UndoManager]] is completed. In any case, finally the ''result signal'' (a functor previously stored within the command) is emitted.
                                                                                                                                                                  +A command may be [[defined|CommandDefinition]] completely from scratch, or it might just serve as a CommandPrototype with specific targets and parameters. The command could then be serialised and later be recovered and re-bound with the parameters, but usually it will be handed over to the ProcDispatcher, pending execution. When ''invoking'', the handling sequence is to [[log the command|SessionStorage]], then call the ''undo capture function'', followed from calling the actual ''operation function''. After success, the logging and [[undo registration|UndoManager]] is completed. In any case, finally the ''result signal'' (a functor previously stored within the command) is emitted.
                                                                                                                                                                   
                                                                                                                                                                  -By design, commands are single-serving value objects; executing an operation repeatedly requires creating a collection of command objects, one for each invocation.
                                                                                                                                                                  +By design, commands are single-serving value objects; executing an operation repeatedly requires creating a collection of command objects, one for each invocation. While nothing prevents you from invoking the command operation functor several times, each invocation will overwrite the undo state captrued by the previous invocation. Thus, each command instance should bes seen as the promise (or later the trace) of a single operation execution. In a similar vein, the undo capturing should be defined as to be self sufficient, so that invoking just the undo functor of a single command performes any necessary steps to restore the situation found before invoking the corresponding mutation functor &mdash; of course only //with respect to the topic covered by this command.// So, while commands provide a lot of flexibility and allow to do a multitude of things, certainly there is an intended CommandLifecycle.
                                                                                                                                                                  +
                                                                                                                                                                  +
                                                                                                                                                                  +
                                                                                                                                                                  +
                                                                                                                                                                  [<img[Structure of Commands|uml/fig135173.png]]
                                                                                                                                                                  +While generally the command framework was designed to be flexible and allow a lot of different use cases, execution paths and to serve various goals, there is an ''intended lifecycle'' &mdash; commands are expected to go through several distinct states.
                                                                                                                                                                  +
                                                                                                                                                                  +The handling of a command starts out with a ''command ID'' provided by the client code. Command IDs are unique (human readable) identifiers and should be organised in a hierarchical fashion. When provided with an ID, the CommandRegistry tries to fetch an existing command definition. In case this fails, we enter the [[command definition stage|CommandDefinition]], which includes specifying functions to implement the operation, state capturing and UNDO. When all these informations are available, the entity is called a ''command definition''. It is comparable to a //class// or //meta object.//
                                                                                                                                                                  +
                                                                                                                                                                  +By ''binding'' to specific operation arguments, the definition is //armed// and becomes a real ''command''. This is similar to creating an instance from a class
                                                                                                                                                                  +
                                                                                                                                                                  +A command is operated or executed by passing it to an ''execution pattern'' &mdash; there is a multitude of possible execution patterns to choose from, depending on the situation. 
                                                                                                                                                                  +{{red{WIP}}}
                                                                                                                                                                  +When a command has been executed (and maybe undone), it's best to leave it alone, because the UndoManager might hold a reference. At any time, c ''clone of the command'' could be created, maybe bound with different arguments and treated separately from the original command.