format 58
"Control" // ProcessingLayer::Control
  revision 8
  modified_by 5 "hiv"
  // 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_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
  //use case diagram settings
  package_name_in_tab default show_context default auto_label_position default draw_all_relations default class_drawing_mode default shadow default show_stereotype_properties default
  //sequence diagram settings
  show_full_operations_definition default write_horizontally default class_drawing_mode default drawing_language default draw_all_relations default shadow default show_stereotype_properties default
  //collaboration diagram settings
  show_full_operations_definition default show_hierarchical_rank default write_horizontally default drawing_language default package_name_in_tab default show_context default draw_all_relations default shadow default show_stereotype_properties default
  //object diagram settings
   write_horizontally default package_name_in_tab default show_context default auto_label_position default draw_all_relations default shadow default show_stereotype_properties default
  //component diagram settings
  package_name_in_tab default show_context default auto_label_position default draw_all_relations default shadow default
  draw_component_as_icon default show_component_req_prov default show_component_rea default show_stereotype_properties default
  //deployment diagram settings
  package_name_in_tab default show_context default write_horizontally default auto_label_position default draw_all_relations default shadow default
  draw_component_as_icon default show_component_req_prov default show_component_rea default show_stereotype_properties default
  //state diagram settings
  package_name_in_tab default show_context default auto_label_position default write_trans_label_horizontally default show_trans_definition default draw_all_relations default shadow default
  show_activities default region_horizontally default drawing_language default show_stereotype_properties default
  //activity diagram settings
  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 show_stereotype_properties default
  
  comment "Command handling, Proc-Layer dispatcher, controller and administrative facilities"
  classview 128389 "Controller Workings"
    //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_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
    //collaboration diagram settings
    show_full_operations_definition default show_hierarchical_rank default write_horizontally default drawing_language default package_name_in_tab default show_context default draw_all_relations default shadow default show_stereotype_properties default
    //object diagram settings
     write_horizontally default package_name_in_tab default show_context default auto_label_position default draw_all_relations default shadow default show_stereotype_properties default
    //sequence diagram settings
    show_full_operations_definition default write_horizontally default class_drawing_mode default drawing_language default draw_all_relations default shadow default show_stereotype_properties default
    //state diagram settings
    package_name_in_tab default show_context default auto_label_position default write_trans_label_horizontally default show_trans_definition default draw_all_relations default shadow default
    show_activities default region_horizontally default drawing_language default show_stereotype_properties default
    //class settings
    //activity diagram settings
    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 show_stereotype_properties default
    classdiagram 128645 "Controller Entities"
      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
      size A4
    end

    activity 128133 "configure Render"
      activitydiagram 129541 "the render configuration flow"
	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 show_stereotype_properties default
	size A4
      end

      parameter 128005 "Render Request" explicit_type ""
	unordered 
	in
	flow 128901 "<flow>"
	  on activityaction_ref 128389 // activity action determine Render Params
	end
      end

      activityaction 128133 "setup StateProxy"
	opaque_action
	flow 129157 "<flow>"
	  on activitynode_ref 128389 // decision
	end
      end

      activitynode 128389 decision "build necessary?"
	flow 129541 "<flow>"
	  on activityaction_ref 128517 // activity action build Render Engine
	    uml_guard "build necessary"
	end

	flow 129797 "<flow>"
	  on activitynode_ref 128773 // merge
	    uml_guard "reuse exiting Engine"
	end
      end

      activityaction 128005 "setup Build Params"
	opaque_action
      end

      activitynode 128773 merge ""
	flow 130053 "<flow>"
	  on activitynode_ref 128901 // activity_final
	end
      end

      expansionregion 128005 "determine Render Params"
	iterative
      end

      activityaction 128389 "determine Render Params"
	opaque_action
	associated_diagram activitydiagram_ref 129541 // the render configuration flow
	flow 129029 "<flow>"
	  on activityaction_ref 128133 // activity action setup StateProxy
	end
      end

      activityaction 128517 "build Render Engine"
	opaque_action
	flow 129669 "<flow>"
	  on activitynode_ref 128773 // merge
	end
      end

      activitynode 128901 activity_final ""
      end
    end

    class 130309 "ControllerFacade"
      visibility public stereotype "boundary"
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl "${comment}${abstract}${local}interface ${name}${inherit} {
${members}};
"
      explicit_switch_type ""
      
      comment "Provides unified access to the Proc-Subsystem Controller. Especially, this Facade class provides the functions to get a render engine to carry out actual renderings."
    end

    class 130437 "PathManager"
      visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "While building a render engine, this Strategy class decides on the actual render strategy in accordance to the current controller settings (system state)"
      operation 128261 "buildProcessor"
	public return_type class_ref 131461 // RenderGraph
	nparams 0
	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
    end

    class 130949 "RenderState"
      visibility protected 
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "Encapsulates the logic used to get a \"current render process\" in accordance to the currentyl applicable controller settings. The provided StateProxy serves to hold any mutalbe state used in the render process, so the rest of the render engine can be stateless."
      operation 128389 "getStateProxy"
	public return_type class_ref 132741 // State
	nparams 0
	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
    end

    class 145413 "STypeManager"
      visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
    end
  end

  classview 130693 "Command Handling"
    //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_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
    //collaboration diagram settings
    show_full_operations_definition default show_hierarchical_rank default write_horizontally default drawing_language default package_name_in_tab default show_context default draw_all_relations default shadow default show_stereotype_properties default
    //object diagram settings
     write_horizontally default package_name_in_tab default show_context default auto_label_position default draw_all_relations default shadow default show_stereotype_properties default
    //sequence diagram settings
    show_full_operations_definition default write_horizontally default class_drawing_mode default drawing_language default draw_all_relations default shadow default show_stereotype_properties default
    //state diagram settings
    package_name_in_tab default show_context default auto_label_position default write_trans_label_horizontally default show_trans_definition default draw_all_relations default shadow default
    show_activities default region_horizontally default drawing_language default show_stereotype_properties default
    //class settings
    //activity diagram settings
    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 show_stereotype_properties default
    classdiagram 134021 "Command structure"
      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
      size A4
    end

    class 148485 "Command"
      visibility public stereotype "interface"
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl "${comment}${@}${visibility}interface ${name}${extends} {
${members}}
"
      php_decl "${comment}${visibility}interface ${name} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl "${comment}${abstract}${local}interface ${name}${inherit} {
${members}};
"
      explicit_switch_type ""
      
      comment "Key abstraction for all proc/edit operations and UNDO management"
      attribute 132613 "ID"
	const_attribute public explicit_type ""
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      attribute 132741 "name"
	const_attribute public explicit_type "Symbol"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      attribute 132869 "do"
	public type class_ref 148741 // Mutation
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      attribute 132997 "undo"
	public type class_ref 148869 // UndoMutation
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      attribute 133125 "closure"
	private type class_ref 148997 // CmdClosure
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      operation 137733 "execute"
	public explicit_return_type "void"
	nparams 1
	  param in name "context" explicit_type "HandlingPattern"
	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 172805 // <unidirectional association>
	relation 162821 --->
	  stereotype "has_a"
	  a role_name "" multiplicity "1" protected
	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type}* ${name}${value};
"
	    classrelation_ref 172805 // <unidirectional association>
	  b multiplicity "1" parent class_ref 148997 // CmdClosure
      end

      classrelation 173189 // <unidirectional association>
	relation 163205 --->
	  stereotype "has_a"
	  a role_name "" protected
	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type}* ${name}${value};
"
	    classrelation_ref 173189 // <unidirectional association>
	  b parent class_ref 148741 // Mutation
      end

      classrelation 173317 // <unidirectional association>
	relation 163333 --->
	  a role_name "" protected
	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type}* ${name}${value};
"
	    classrelation_ref 173317 // <unidirectional association>
	  b parent class_ref 148869 // UndoMutation
      end

      classrelation 173573 // <dependency>
	relation 163589 -_->
	  stereotype "invokes"
	  a package
	    cpp default "#include in source"
	    classrelation_ref 173573 // <dependency>
	  b parent class_ref 148613 // HandlingPattern
      end
    end

    class 148613 "HandlingPattern"
      abstract visibility public stereotype "interface"
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      classrelation 173701 // <dependency>
	relation 163717 -_->
	  stereotype "involves"
	  a package
	    cpp default "#include in source"
	    classrelation_ref 173701 // <dependency>
	  b parent class_ref 141957 // ProcDispatcher
      end
    end

    class 148741 "Mutation"
      visibility package stereotype "func"
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
    end

    class 148869 "UndoMutation"
      visibility package stereotype "func"
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      classrelation 171909 // <generalisation>
	relation 161925 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 171909 // <generalisation>
	  b parent class_ref 148741 // Mutation
      end

      classrelation 172933 // capture (<unidirectional association>)
	relation 162949 --->
	  a role_name "capture" protected
	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type}* ${name}${value};
"
	    classrelation_ref 172933 // capture (<unidirectional association>)
	  b parent class_ref 148741 // Mutation
      end

      classrelation 173061 // undoOp (<unidirectional association>)
	relation 163077 --->
	  a role_name "undoOp" protected
	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type}* ${name}${value};
"
	    classrelation_ref 173061 // undoOp (<unidirectional association>)
	  b parent class_ref 148741 // Mutation
      end
    end

    class 148997 "CmdClosure"
      visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      classrelation 172549 // targets (<directional composition>)
	relation 162565 *-->
	  stereotype "list"
	  a role_name "targets" protected
	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	    classrelation_ref 172549 // targets (<directional composition>)
	  b multiplicity "*" parent class_ref 149637 // Target
      end

      classrelation 172677 // params (<directional composition>)
	relation 162693 *-->
	  stereotype "list"
	  a role_name "params" protected
	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	    classrelation_ref 172677 // params (<directional composition>)
	  b multiplicity "*" parent class_ref 134533 // Parameter
      end
    end

    class 149125 "DoSync"
      visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      classrelation 172037 // <generalisation>
	relation 162053 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 172037 // <generalisation>
	  b parent class_ref 148613 // HandlingPattern
      end
    end

    class 149253 "DoAsync"
      visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      classrelation 172165 // <generalisation>
	relation 162181 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 172165 // <generalisation>
	  b parent class_ref 148613 // HandlingPattern
      end
    end

    class 149381 "UndoSync"
      visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      classrelation 172293 // <generalisation>
	relation 162309 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 172293 // <generalisation>
	  b parent class_ref 148613 // HandlingPattern
      end
    end

    class 149509 "RedoLast"
      visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      classrelation 172421 // <generalisation>
	relation 162437 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 172421 // <generalisation>
	  b parent class_ref 148613 // HandlingPattern
      end
    end

    class 149637 "Target"
      visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
    end

    class 141957 "ProcDispatcher"
      visibility package stereotype "control"
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
    end
  end
end
