From 8345df394d5ad64f729e00a17574b3a562b2f0ed Mon Sep 17 00:00:00 2001 From: Ichthyostega Date: Fri, 23 Oct 2009 03:10:55 +0200 Subject: [PATCH] WIP continued turning over the problem.... --- doc/devel/uml/fig137733.png | Bin 13015 -> 14443 bytes uml/lumiera/131077 | 43 ++++++++++++++++++++++++++++++++---- uml/lumiera/137733.diagram | 38 ++++++++++++++++++++++--------- wiki/renderengine.html | 13 +++++++++-- 4 files changed, 78 insertions(+), 16 deletions(-) diff --git a/doc/devel/uml/fig137733.png b/doc/devel/uml/fig137733.png index 23b1a0f442ddbe1be289b6bd8be9495d52ab745d..5e81df28533b417b549890fd8be080d926d15aab 100644 GIT binary patch literal 14443 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 diff --git a/uml/lumiera/131077 b/uml/lumiera/131077 index e64895446..646250274 100644 --- a/uml/lumiera/131077 +++ b/uml/lumiera/131077 @@ -1,6 +1,6 @@ format 58 "ConfigQuery" // CommonLib::ConfigQuery - revision 12 + revision 13 modified_by 5 "hiv" // class settings //class diagram settings @@ -476,7 +476,7 @@ ${members}}; operation 141317 "issue" public explicit_return_type "" nparams 1 - param in name "query" type class_ref 156805 // QuerY + param in name "query" type class_ref 156805 // Goal cpp_decl " ${comment}${friend}${static}${inline}${virtual}${type} ${name} ${(}${)}${const}${volatile} ${throw}${abstract};" cpp_def "${comment}${inline}${type} ${class}::${name} ${(}${)}${const}${volatile} ${throw}${staticnl} @@ -492,7 +492,7 @@ ${class}::${name} ${(}${)}${const}${volatile} ${throw}${staticnl} end end - class 156805 "QuerY" + class 156805 "Goal" abstract visibility public stereotype "interface" cpp_decl "${comment}${template}class ${name}${inherit} { @@ -619,7 +619,7 @@ ${inlines} a public cpp default "${type}" classrelation_ref 181125 // - b parent class_ref 156805 // QuerY + b parent class_ref 156805 // Goal end classrelation 184837 // @@ -674,8 +674,43 @@ ${inlines} b parent class_ref 153989 // QueryResolver end + classrelation 186117 // + relation 175749 ---> + stereotype "produce" + a role_name "" protected + cpp default " ${comment}${static}${mutable}${volatile}${const}${type}* ${name}${value}; +" + classrelation_ref 186117 // + b parent class_ref 158085 // Solution + end end + class 158085 "Solution" + visibility package + nactuals 2 + actual class class_ref 155141 // Query + rank 0 explicit_value "" + actual class class_ref 155269 // Cursor + rank 0 explicit_value "" + cpp_decl "${comment}${template}class ${name}${inherit} + { +${members} }; +${inlines} +" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + + classrelation 185989 // + relation 175621 ---|> + a public + cpp default "${type}" + classrelation_ref 185989 // + b parent class_ref 155269 // Cursor + end + end end usecaseview 128389 "query use" diff --git a/uml/lumiera/137733.diagram b/uml/lumiera/137733.diagram index 89c4838d1..5926ed423 100644 --- a/uml/lumiera/137733.diagram +++ b/uml/lumiera/137733.diagram @@ -2,31 +2,35 @@ format 58 classcanvas 128005 class_ref 153989 // QueryResolver 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 251 37 2000 + xyz 262 25 2000 end classcanvas 128133 class_ref 155141 // Query 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 180 332 2000 + xyz 175 293 2000 end classcanvas 128517 class_ref 155397 // IterAdapter 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 50 241 2000 + xyz 46 222 2000 end classcanvas 128645 class_ref 155525 // ResolvingFacility 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 427 339 2000 end -classcanvas 129797 class_ref 156805 // QuerY +classcanvas 129797 class_ref 156805 // Goal 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 163 150 2000 + xyz 159 131 2000 end classcanvas 131077 class_ref 156933 // Result 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 250 241 2000 + xyz 246 222 2000 end classcanvas 131205 class_ref 155269 // Cursor 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 251 378 2005 + xyz 246 339 2005 +end +classcanvas 133509 class_ref 158085 // Solution + 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 355 444 2000 end line 128389 ---+ from ref 131077 z 1999 to ref 129797 @@ -44,18 +48,32 @@ relationcanvas 132229 relation_ref 171141 // end relationcanvas 132357 relation_ref 169733 // geometry VHV unfixed - from ref 128645 z 1999 to point 473 166 - line 132485 z 1999 to point 292 166 + from ref 128645 z 1999 to point 473 128 + line 132485 z 1999 to point 303 128 line 132613 z 1999 to ref 128005 no_role_a no_role_b no_multiplicity_a no_multiplicity_b end relationcanvas 133125 relation_ref 174469 // geometry VHr - from ref 128133 z 1999 stereotype "<>" xyz 100 358 3000 to point 81 356 + from ref 128133 z 1999 stereotype "<>" xyz 95 319 3000 to point 77 317 line 133381 z 1999 to ref 128517 no_role_a no_role_b no_multiplicity_a no_multiplicity_b end +relationcanvas 133637 relation_ref 175621 // + geometry VHV unfixed + from ref 133509 z 1999 to point 379 411 + line 133765 z 1999 to point 266 411 + line 133893 z 1999 to ref 131205 + no_role_a no_role_b + no_multiplicity_a no_multiplicity_b +end +relationcanvas 134021 relation_ref 175749 // + decenter_end 830 + from ref 128645 z 1999 stereotype "<>" xyz 428 406 3000 to ref 133509 + no_role_a no_role_b + no_multiplicity_a no_multiplicity_b +end preferred_whz 629 529 1 end diff --git a/wiki/renderengine.html b/wiki/renderengine.html index 1135ba33c..b8b4a681c 100644 --- a/wiki/renderengine.html +++ b/wiki/renderengine.html @@ -3476,14 +3476,23 @@ Then, running the goal {{{:-resolve(T, stream(T,mpeg)).}}} would search a Track In the design of the Lumiera Proc Layer done thus far, we provide //no possibility to introduce a new object kind// into the system via plugin interface. The system uses a fixed collection of classes intended to cover all needs (Clip, Effect, Track, Pipe, Label, Automation, ~Macro-Clips). Thus, plugins will only be able to provide new parametrisations of existing classes. This should not be any real limitation, because the whole system is designed to achieve most of its functionality by freely combining rather basic object kinds. As a plus, it plays nicely with any plain-C based plugin interface. For example, we will have C++ adapter classes for the most common sorts of effect plugin (pull system and synchronous frame-by-frame push with buffering) with a thin C adaptation layer for the specific external plugin systems used. Everything beyond this point can be considered "condiguration data" (including the actual plugin implementation to be loaded) -
+
Within the Lumiera Proc-Layer, there is a general preference for issuing [[queries|Query]] over hard wired configuration (or even mere table based configuration). This leads to the demand of exposing a //possibility to issue queries// &mdash; without actually disclosing much details of the facility implementing this service. For example, for shaping the general session interface (in 10/09), we need a means of exposing a hook to discover HighLevelModel contents, without disclosing how the model is actually organised internally (namely by using an PlacementIndex).
 
 !Analysis of the problem
 The situation can be decomposed as follows.[>img[QueryResolver|uml/fig137733.png]]
-* first off, we need a way to state //what kind of query we want to run.// This includes stipulations on the type of the result set contents expected
+* first off, we need a way to state //what kind of query we want to run.// This includes stipulations on the type of the expected result set contents
 * as the requirement is to keep the facility actually implementing the query service hidden behind an interface, we're forced to erase specific type information and pass on an encapsulated version of the query
 * providing an iterator for exploring the results poses the additional constraint of having an fairly generic iterator type, while still being able to communicate with the actual query implementation behind the interface.
+
+
+!!!Difficulties
+*it's not clear which usage pattern I'm after
+*# client creates a specific {{{Query<TY>}}} to be resolved by an concealed entity
+*# client creates just a goal, which is then translated into a specific query mechanism behind the invocation interface
+*# client issues a query and expect it just to be handled by //some//&nbsp; suitable resolver
+* thus it's difficult to determine, //what// part of the issued query needs automatic management. More specifically, is it possible for the client to dispose the query after issuing it, but keeping and exploring the iterator obtained as result of the query?
+* and then there is the notorious problem of re-gaining the specifically typed context //behind//&nbsp; the invocation interface. Especially, the facility processing the query needs to know both the expected result type and details about the concrete query and its parametrisation