From 7943f2fd96735c480c0b547c037b249c831811d7 Mon Sep 17 00:00:00 2001 From: Christian Thaeter Date: Wed, 27 Jun 2007 04:35:46 +0200 Subject: [PATCH 1/4] put codecs/streams into render engine, make CommonLib its own package (out of backend) --- uml/cinelerra3/128005 | 4 ++-- uml/cinelerra3/128005.diagram | 16 ++++++++-------- uml/cinelerra3/129157 | 6 ++---- uml/cinelerra3/cinelerra3.prj | 6 ++++-- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/uml/cinelerra3/128005 b/uml/cinelerra3/128005 index 001912eb3..e48b8d387 100644 --- a/uml/cinelerra3/128005 +++ b/uml/cinelerra3/128005 @@ -1,7 +1,7 @@ format 38 "design" // design - revision 6 - modified_by 5 "hiv" + revision 7 + modified_by 61 "ct" // class settings //class diagram settings draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default 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 diff --git a/uml/cinelerra3/128005.diagram b/uml/cinelerra3/128005.diagram index cf8cad386..cf3c8dfa1 100644 --- a/uml/cinelerra3/128005.diagram +++ b/uml/cinelerra3/128005.diagram @@ -12,7 +12,7 @@ fragment 128261 "Backend Layer" end packagecanvas 128389 package_ref 128133 // AssetManager - xyzwh 561 201 2005 252 214 + xyzwh 561 201 2005 265 214 packagecanvas 128517 package_ref 128261 // MObject xyzwh 94 201 2006 458 335 @@ -27,13 +27,13 @@ componentcanvas 128901 component_ref 128133 // Session xyzwh 122 243 2011 323 156 componentcanvas 129029 component_ref 128261 // Controller draw_component_as_icon default show_component_req_prov default show_component_rea default - xyzwh 372 419 2011 175 105 + xyzwh 372 419 2011 189 105 componentcanvas 129157 component_ref 128389 // EDL draw_component_as_icon default show_component_req_prov default show_component_rea default - xyzwh 288 302 2016 143 79 + xyzwh 288 302 2016 153 79 componentcanvas 129285 component_ref 128517 // Fixture draw_component_as_icon default show_component_req_prov default show_component_rea default - xyzwh 124 319 2016 143 69 + xyzwh 124 319 2016 153 75 note 129541 "Structures edited by the User" xyzwh 43 269 2016 181 41 componentcanvas 129669 component_ref 128645 // AssetManagement @@ -41,16 +41,16 @@ componentcanvas 129669 component_ref 128645 // AssetManagement xyzwh 577 241 2010 208 159 componentcanvas 129797 component_ref 128773 // Dispatcher draw_component_as_icon default show_component_req_prov default show_component_rea default - xyzwh 406 31 2005 179 69 + xyzwh 406 31 2005 193 75 componentcanvas 129925 component_ref 128901 // Engine draw_component_as_icon default show_component_req_prov default show_component_rea default xyzwh 118 602 2010 235 176 componentcanvas 130053 component_ref 129029 // Frame (Stream) Provider draw_component_as_icon default show_component_req_prov default show_component_rea default - xyzwh 121 876 2005 229 69 + xyzwh 121 876 2005 229 75 componentcanvas 130181 component_ref 129157 // Cache draw_component_as_icon default show_component_req_prov default show_component_rea default - xyzwh 391 876 2005 179 69 + xyzwh 391 876 2005 193 75 note 131717 "Coordinates Playback and Rendering" xyzwh 483 494 2016 149 63 note 131845 "border of the low-level, performance-critical part of the system" @@ -58,7 +58,7 @@ note 131845 "border of the low-level, performance-critical part of the system" note 131973 "just works, never decides" xyzwh 317 668 2015 110 59 note 132101 "codecs, stream I/O here" - xyzwh 647 904 2005 166 39 + xyzwh 376 592 2005 166 39 simplerelationcanvas 131205 simplerelation_ref 128005 from ref 130053 z 2004 to ref 130181 simplerelationcanvas 131333 simplerelation_ref 128133 diff --git a/uml/cinelerra3/129157 b/uml/cinelerra3/129157 index 6e32478fc..659174d28 100644 --- a/uml/cinelerra3/129157 +++ b/uml/cinelerra3/129157 @@ -1,7 +1,7 @@ format 38 "BackendLayer" // BackendLayer - revision 1 - modified_by 5 "hiv" + revision 2 + modified_by 77 "ct" // class settings //class diagram settings draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default 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 @@ -26,8 +26,6 @@ format 38 package_name_in_tab default show_context default show_opaque_action_definition default auto_label_position default write_flow_label_horizontally default draw_all_relations default shadow default show_infonote default drawing_language default - package_ref 128517 // CommonLib - classview 128517 "Backend Components" //class diagram settings draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default 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 diff --git a/uml/cinelerra3/cinelerra3.prj b/uml/cinelerra3/cinelerra3.prj index b9dbce680..4267e9b28 100644 --- a/uml/cinelerra3/cinelerra3.prj +++ b/uml/cinelerra3/cinelerra3.prj @@ -1,7 +1,7 @@ format 38 "cinelerra3" - revision 11 - modified_by 5 "hiv" + revision 12 + modified_by 77 "ct" cpp_root_dir "../../src/" @@ -46,6 +46,8 @@ format 38 package_ref 129285 // ProcessingLayer package_ref 128773 // GUI + + package_ref 128517 // CommonLib add_operation_profile end From 7ac618862ee4653a0f71b71dd9fa6f51141f2b9b Mon Sep 17 00:00:00 2001 From: Christian Thaeter Date: Wed, 27 Jun 2007 07:10:38 +0200 Subject: [PATCH 2/4] I found links with different names very confusing --- wiki/renderengine.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wiki/renderengine.html b/wiki/renderengine.html index 45a35e9c0..52f94baff 100644 --- a/wiki/renderengine.html +++ b/wiki/renderengine.html @@ -3484,14 +3484,14 @@ function addKeyDownHandlers(e) -
+
The Intention of this text is to help you understanding the design and to show some notable details.
 
 !!!!Starting Point
 Design is an experiment to find out how things are related, we can't //plan// a Design top down, rather we have to start at some point with some hypothesis and look how it works out. The point of origin for Ichthyo's design is the observation that the Render Engine needs some Separation of Concerns to get the complexity down. And especially, this design ''uses three different Levels'' or Layers within the Render Engine and EDL.
 * the __high level__ within the EDL uses uniformely treated MObjects which are assembled/glued together by a network of [[Placements|Placement]].<br> It is supposed that the GUI will present this and //only this view //to the user, giving him the ability wo work with this objects
 * the __builder level__ works on a stripped-down subset of this ~MObject network: it uses the //same Object instances// but only assembled by [[Explicit Placements|ExplicitPlacement]] which locate the objects //on a simple (track, time) grid.// Its the job of the builder to create out of this simplified Network the Configuration of [[Render Nodes|ProcNode]] needed to do the actual rendering
-* the __engine level__ uses solely [[Render Pipeline Nodes|ProcNode]], i.e. a Graph of interconnected processing nodes. The important constraint here is that //any decisions are ruled out//. The core Render Engine with all its nodes is lacking the ability to do any tests and checks and has no possibility to branch or reconfigure anything. (this is an especially important lession I draw from studying the current Cinelerra source code)
+* the __engine level__ uses solely [[Render Pipeline Nodes (ProcNode)|ProcNode]], i.e. a Graph of interconnected processing nodes. The important constraint here is that //any decisions are ruled out//. The core Render Engine with all its nodes is lacking the ability to do any tests and checks and has no possibility to branch or reconfigure anything. (this is an especially important lession I draw from studying the current Cinelerra source code)
 
 !!!!Performance Considerations
 * within the Engine the Render Nodes are containing the ''inner loop'', whose contents are to be executed hundered thousends to million times per frame. Every dispensable concern, which is not strictly neccessary to get the job done, is worth the effort of facturing out here.

From 4e90a7bac7b1b5cdbb854f0188bbe3f1a671889f Mon Sep 17 00:00:00 2001
From: Christian Thaeter 
Date: Wed, 27 Jun 2007 07:11:06 +0200
Subject: [PATCH 3/4] my first very ugly bouml experiments

---
 uml/cinelerra3/128181.diagram | 82 +++++++++++++++++++++++++++++++++++
 uml/cinelerra3/128437.diagram |  3 ++
 2 files changed, 85 insertions(+)
 create mode 100644 uml/cinelerra3/128181.diagram
 create mode 100644 uml/cinelerra3/128437.diagram

diff --git a/uml/cinelerra3/128181.diagram b/uml/cinelerra3/128181.diagram
new file mode 100644
index 000000000..cc94a2628
--- /dev/null
+++ b/uml/cinelerra3/128181.diagram
@@ -0,0 +1,82 @@
+format 38
+
+classcanvas 128053 class_ref 128181 // File
+  draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default 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
+  xyz 62 215 2000
+  end
+classcanvas 128181 class_ref 128309 // FileHandleCache
+  draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default 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
+  xyz 282 91 2000
+  end
+classcanvas 128309 class_ref 128437 // FileMapCache
+  draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default 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
+  xyz 445 395 2000
+  end
+classcanvas 128565 class_ref 128565 // FileMap
+  draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default 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
+  xyz 463 298 2000
+  end
+classcanvas 128693 class_ref 128693 // FileHandle
+  draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default 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
+  xyz 308 188 2000
+  end
+classcanvas 128821 class_ref 128821 // Frame
+  draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default 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
+  xyz 297 390 2000
+  end
+classcanvas 128949 class_ref 128949 // FrameDescriptor
+  draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default 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
+  xyz 45 505 2000
+  end
+classcanvas 129077 class_ref 129077 // Prefetch
+  draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default 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
+  xyz 689 242 2000
+  end
+classcanvas 129205 class_ref 129205 // Scheduler
+  draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default 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
+  xyz 638 78 2000
+  end
+classcanvas 129461 class_ref 129333 // FileProvider
+  draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default 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
+  xyz 61 105 2005
+  end
+fragment 129589 "public interfaces"
+  xyzwh 23 26 1995 177 567
+end
+fragment 129717 "implementation details"
+  xyzwh 227 26 1995 605 567
+end
+classcanvas 131553 class_ref 128225 // FrameReference
+  draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default 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
+  xyz 49 348 2000
+  end
+relationcanvas 128353 relation_ref 128225 // 
+  from ref 128053 z 1999 to ref 128693
+  role_a_pos 157 209 3000 no_role_b
+  multiplicity_a_pos 277 225 3000 no_multiplicity_b
+relationcanvas 128481 relation_ref 128353 // 
+  from ref 128821 z 1999 to ref 128949
+  role_a_pos 167 474 3000 no_role_b
+  no_multiplicity_a no_multiplicity_b
+relationcanvas 128609 relation_ref 128481 // 
+  from ref 128053 z 1999 to ref 128565
+  role_a_pos 390 288 3000 no_role_b
+  multiplicity_a_pos 451 325 3000 no_multiplicity_b
+relationcanvas 129121 relation_ref 128609 // 
+  from ref 128181 z 1999 stereotype "<>" xyz 323 170 3000 to ref 128693
+  role_a_pos 356 161 3000 no_role_b
+  multiplicity_a_pos 336 161 3000 no_multiplicity_b
+relationcanvas 129889 relation_ref 128865 // 
+  from ref 128821 z 1999 to ref 128565
+  role_a_pos 398 303 3000 no_role_b
+  multiplicity_a_pos 448 340 3000 no_multiplicity_b
+relationcanvas 131425 relation_ref 129121 // 
+  from ref 128309 z 1999 stereotype "<>" xyz 470 369 3000 to ref 128565
+  no_role_a no_role_b
+  no_multiplicity_a no_multiplicity_b
+relationcanvas 131681 relation_ref 129249 // 
+  from ref 131553 z 1999 to point 235 393
+  line 132065 z 1999 to ref 128821
+  role_a_pos 182 388 3000 no_role_b
+  multiplicity_a_pos 269 377 3000 no_multiplicity_b
+end
diff --git a/uml/cinelerra3/128437.diagram b/uml/cinelerra3/128437.diagram
new file mode 100644
index 000000000..1c61b8251
--- /dev/null
+++ b/uml/cinelerra3/128437.diagram
@@ -0,0 +1,3 @@
+format 38
+
+end

From 512d8ccf5353711f80521dcb070343ec413e606a Mon Sep 17 00:00:00 2001
From: Christian Thaeter 
Date: Wed, 27 Jun 2007 07:23:11 +0200
Subject: [PATCH 4/4] missed one

---
 uml/cinelerra3/129157 | 357 +++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 355 insertions(+), 2 deletions(-)

diff --git a/uml/cinelerra3/129157 b/uml/cinelerra3/129157
index 659174d28..ed620d417 100644
--- a/uml/cinelerra3/129157
+++ b/uml/cinelerra3/129157
@@ -1,7 +1,7 @@
 format 38
 "BackendLayer" // BackendLayer
-  revision 2
-  modified_by 77 "ct"
+  revision 4
+  modified_by 97 "ct"
   // class settings
   //class diagram settings
   draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default 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
@@ -80,5 +80,358 @@ ${members}};
 	
       end
     end
+
+    classdiagram 128181 "File Mapping"
+      draw_all_relations no hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default 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
+      size A4
+    end
+
+    classdiagram 128309 "In Memory Database"
+      draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default 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
+      size A4
+    end
+
+    class 128181 "File"
+      visibility package 
+      cpp_decl "${comment}${template}class ${name}${inherit} {
+${members}};
+${inlines}
+"
+      java_decl ""
+      idl_decl ""
+      explicit_switch_type ""
+      
+      classrelation 128437 // descriptor (descriptor)
+	relation 128437 o--> name "descriptor"
+	  a role_name "descriptor" multiplicity "" protected
+	    comment "type of this frame"
+	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
+"
+	    classrelation_ref 128437 // descriptor (descriptor)
+	  b multiplicity "" parent class_ref 128693 // FileHandle
+      end
+
+      operation 128181 "getFrame"
+	public return_type class_ref 128821 // Frame
+	nparams 2
+	  param in name "" type class_ref 128949 // FrameDescriptor
+	  param in name "frame_address" explicit_type ""
+	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
+"
+	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+	
+	
+      end
+
+      classrelation 128225 // handle ()
+	relation 128225 o-->
+	  a role_name "handle" multiplicity "0..1" protected
+	    comment "weak pointer"
+	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
+"
+	    classrelation_ref 128225 // handle ()
+	  b multiplicity "" parent class_ref 128693 // FileHandle
+      end
+
+      classrelation 128609 // mappings ()
+	relation 128481 o-->
+	  a role_name "mappings" multiplicity "*" protected
+	    comment "weak pointers"
+	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
+"
+	    classrelation_ref 128609 // mappings ()
+	  b multiplicity "" parent class_ref 128565 // FileMap
+	  association_explicit_type "index"
+      end
+    end
+
+    class 128309 "FileHandleCache"
+      visibility package 
+      cpp_decl "${comment}${template}class ${name}${inherit} {
+${members}};
+${inlines}
+"
+      java_decl ""
+      idl_decl ""
+      explicit_switch_type ""
+      
+      classrelation 128737 // handles ()
+	relation 128609 *---
+	  stereotype "list"
+	  a role_name "handles" multiplicity "*" protected
+	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
+"
+	    classrelation_ref 128737 // handles ()
+	  b role_name "" multiplicity "" protected
+	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
+"
+	    classrelation_ref 128865 // 
+      end
+
+      attribute 128225 "handles_available"
+	private explicit_type "int"
+	init_value "100"
+	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
+"
+	java_decl ""
+	idl_decl ""
+	comment "initialized to the maximum number of filehandles the backend may use for mapped files. When no handles are available, the handle which is last in the handles list is closed and (re-)used.
+Else this number is decremented for each new filehandle used and incremented for any one explicitly freed."
+      end
+    end
+
+    class 128437 "FileMapCache"
+      visibility package 
+      cpp_decl "${comment}${template}class ${name}${inherit} {
+${members}};
+${inlines}
+"
+      java_decl ""
+      idl_decl ""
+      explicit_switch_type ""
+      
+      attribute 128481 "checked_out"
+	protected explicit_type "list"
+	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
+"
+	java_decl ""
+	idl_decl ""
+      end
+
+      classrelation 129505 // 
+	relation_ref 128993 // 
+      end
+
+      attribute 128609 "checked_in"
+	protected explicit_type "list"
+	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
+"
+	java_decl ""
+	idl_decl ""
+      end
+
+      classrelation 129633 // 
+	relation 129121 *-->
+	  stereotype "list"
+	  a role_name "" multiplicity "" protected
+	    comment "FileMap objects are moved (spliced) between the checked_in and checked_out lists depending if they are in use or subject of cache aging"
+	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
+"
+	    classrelation_ref 129633 // 
+	  b multiplicity "" parent class_ref 128565 // FileMap
+      end
+    end
+
+    class 128565 "FileMap"
+      visibility package 
+      cpp_decl "${comment}${template}class ${name}${inherit} {
+${members}};
+${inlines}
+"
+      java_decl ""
+      idl_decl ""
+      explicit_switch_type ""
+      
+      associated_diagram classdiagram_ref 128181 // File Mapping
+    end
+
+    class 128693 "FileHandle"
+      visibility package 
+      cpp_decl "${comment}${template}class ${name}${inherit} {
+${members}};
+${inlines}
+"
+      java_decl ""
+      idl_decl ""
+      explicit_switch_type ""
+      
+      classrelation 128865 // 
+	relation_ref 128609 // 
+      end
+    end
+
+    class 128821 "Frame"
+      visibility package 
+      cpp_decl "${comment}${template}class ${name}${inherit} {
+${members}};
+${inlines}
+"
+      java_decl ""
+      idl_decl ""
+      explicit_switch_type ""
+      
+      comment "Frames 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."
+      classrelation 128181 // 
+	relation 128181 o-->
+	  a role_name "" multiplicity "*" protected
+	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type} *> ${name}${value};
+"
+	    classrelation_ref 128181 // 
+	  b multiplicity "" parent class_ref 128949 // FrameDescriptor
+	  association_type class_ref 128949 // FrameDescriptor
+      end
+
+      classrelation 128309 // 
+	relation 128309 o-->
+	  a role_name "" multiplicity "" protected
+	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
+"
+	    classrelation_ref 128309 // 
+	  b multiplicity "" parent class_ref 128949 // FrameDescriptor
+      end
+
+      classrelation 128693 // 
+	relation 128565 o---
+	  a role_name "" multiplicity "" protected
+	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
+"
+	    classrelation_ref 128693 // 
+	  b role_name "" multiplicity "" protected
+	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
+"
+	    classrelation_ref 128821 // 
+      end
+
+      classrelation 128949 // 
+	relation 128693 o-->
+	  a role_name "" multiplicity "" protected
+	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
+"
+	    classrelation_ref 128949 // 
+	  b multiplicity "" parent class_ref 128949 // FrameDescriptor
+      end
+
+      classrelation 129077 // 
+	relation 128821 o-->
+	  a role_name "" multiplicity "" protected
+	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
+"
+	    classrelation_ref 129077 // 
+	  b multiplicity "" parent class_ref 128949 // FrameDescriptor
+      end
+
+      classrelation 128481 // descriptor ()
+	relation 128353 o-->
+	  a role_name "descriptor" multiplicity "" protected
+	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
+"
+	    classrelation_ref 128481 // descriptor ()
+	  b multiplicity "" parent class_ref 128949 // FrameDescriptor
+      end
+
+      classrelation 129249 // mapping ()
+	relation 128865 --->
+	  a role_name "mapping" multiplicity "1" private
+	    comment "Frames are a continous sequence in a mapping"
+	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
+"
+	    classrelation_ref 129249 // mapping ()
+	  b multiplicity "" parent class_ref 128565 // FileMap
+      end
+
+      classrelation 129377 // 
+	relation 128993 ----
+	  a role_name "" multiplicity "" protected
+	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
+"
+	    classrelation_ref 129377 // 
+	  b role_name "" multiplicity "" protected
+	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
+"
+	    classrelation_ref 129505 // 
+      end
+
+      classrelation 129889 // 
+	relation_ref 129249 // 
+      end
+    end
+
+    class 128949 "FrameDescriptor"
+      visibility package stereotype "interface"
+      cpp_decl "${comment}${template}class ${name}${inherit} {
+${members}};
+${inlines}
+"
+      java_decl "${comment}${@}${visibility}interface ${name}${extends} {
+${members}}
+"
+      idl_decl "${comment}${abstract}${local}interface ${name}${inherit} {
+${members}};
+"
+      explicit_switch_type ""
+      
+      comment "A FrameDescriptor implements the higher level interfaces for frames. Further refinements are made by subclassing and policy classes"
+      classrelation 128821 // 
+	relation_ref 128565 // 
+      end
+    end
+
+    class 129077 "Prefetch"
+      visibility package 
+      cpp_decl "${comment}${template}class ${name}${inherit} {
+${members}};
+${inlines}
+"
+      java_decl ""
+      idl_decl ""
+      explicit_switch_type ""
+      
+    end
+
+    class 129205 "Scheduler"
+      visibility package 
+      cpp_decl "${comment}${template}class ${name}${inherit} {
+${members}};
+${inlines}
+"
+      java_decl ""
+      idl_decl ""
+      explicit_switch_type ""
+      
+    end
+
+    sequencediagram 128437 "QueryFrame"
+      show_full_operations_definition default write_horizontally default drawing_language default draw_all_relations default shadow default
+      size A4
+    end
+
+    class 129333 "FileProvider"
+      visibility package 
+      cpp_decl "${comment}${template}class ${name}${inherit} {
+${members}};
+${inlines}
+"
+      java_decl ""
+      idl_decl ""
+      explicit_switch_type ""
+      
+      comment "This is the Factory for Files, whenever something wants to use some file (or temporary storage), This Factory will hand out some smart/shared pointer to a File object which will be used to retrieve Frames."
+    end
+
+    class 128225 "FrameReference"
+      visibility package 
+      cpp_decl "${comment}${template}class ${name}${inherit} {
+${members}};
+${inlines}
+"
+      java_decl ""
+      idl_decl ""
+      explicit_switch_type ""
+      
+      classrelation 129761 // frame ()
+	relation 129249 o---
+	  a role_name "frame" multiplicity "0..1" protected
+	    comment "maybe weak reference"
+	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
+"
+	    classrelation_ref 129761 // frame ()
+	  b role_name "" multiplicity "" protected
+	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
+"
+	    classrelation_ref 129889 // 
+      end
+    end
   end
 end