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