WIP continued turning over the problem....

This commit is contained in:
Fischlurch 2009-10-23 03:10:55 +02:00
parent 90e09b9fa0
commit 8345df394d
4 changed files with 78 additions and 16 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View file

@ -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 // <realization>
b parent class_ref 156805 // QuerY
b parent class_ref 156805 // Goal
end
classrelation 184837 // <unidirectional association>
@ -674,8 +674,43 @@ ${inlines}
b parent class_ref 153989 // QueryResolver
end
classrelation 186117 // <unidirectional association>
relation 175749 --->
stereotype "produce"
a role_name "" protected
cpp default " ${comment}${static}${mutable}${volatile}${const}${type}* ${name}${value};
"
classrelation_ref 186117 // <unidirectional association>
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 // <generalisation>
relation 175621 ---|>
a public
cpp default "${type}"
classrelation_ref 185989 // <generalisation>
b parent class_ref 155269 // Cursor
end
end
end
usecaseview 128389 "query use"

View file

@ -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 // <realization>
end
relationcanvas 132357 relation_ref 169733 // <realization>
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 // <unidirectional association>
geometry VHr
from ref 128133 z 1999 stereotype "<<type-def>>" xyz 100 358 3000 to point 81 356
from ref 128133 z 1999 stereotype "<<type-def>>" 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 // <generalisation>
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 // <unidirectional association>
decenter_end 830
from ref 128645 z 1999 stereotype "<<produce>>" 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

View file

@ -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 &quot;condiguration data&quot; (including the actual plugin implementation to be loaded)
</pre>
</div>
<div title="QueryResolver" modifier="Ichthyostega" modified="200910210330" created="200910210300" tags="Rules spec draft img" changecount="2">
<div title="QueryResolver" modifier="Ichthyostega" modified="200910230109" created="200910210300" tags="Rules spec draft img" changecount="6">
<pre>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// &amp;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.[&gt;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&lt;TY&gt;}}} 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//&amp;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//&amp;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
</pre>
</div>
<div title="RSSReaderPlugin" modifier="Ichthyostega" created="200708081515" tags="systemConfig" changecount="1">