Class: Roby::Actions::Task
- Inherits:
-
Task
- Object
- DistributedObject
- PlanObject
- Task
- Roby::Actions::Task
- Defined in:
- lib/roby/actions/task.rb
Overview
A task that calls an action interface to generate a plan
Constant Summary
Constants included from Models::Arguments
Models::Arguments::NO_DEFAULT_ARGUMENT
Instance Attribute Summary collapse
-
#result ⇒ Object
readonly
The planner result.
-
#transaction ⇒ Transaction
readonly
Once the task has been started, this is the transaction object that is being used / has been used to generate before committing in the plan.
Attributes inherited from Task
#arguments, #bound_events, #data, #execute_handlers, #failed_to_start_time, #failure_event, #failure_reason, #history, #poll_handlers, #quarantine_reason, #state_machine, #terminal_event
Attributes included from GUI::RelationsCanvasTask
Attributes inherited from PlanObject
#addition_time, #executable, #execution_engine, #finalization_handlers, #finalization_time, #model, #plan, #promise_executor, #removed_at
Attributes included from Transaction::Proxying::Cache
#transaction_forwarder_module, #transaction_proxy_module
Attributes included from Relations::DirectedRelationSupport
Attributes inherited from DistributedObject
Instance Method Summary collapse
-
#action_arguments ⇒ Hash
The arguments for the action method.
-
#action_interface_model ⇒ Model<Interface>
The action interface model used by this planner.
-
#action_model ⇒ Models::Action
The action itself.
- #job_name ⇒ Object
-
#planned_model ⇒ Model<Roby::Task>
The model of the roby task that is going to represent the action in the plan.
- #planning_result_task ⇒ Object
- #to_s ⇒ Object
Methods inherited from Task
#+, #abstract?, #action_state_machine, #add_child_object, #add_coordination_object, #apply_terminal_flags, #as_plan, #as_service, #assign_argument, #assign_arguments, #can_merge?, #can_replace?, #check_emission_validity, #clear_events_external_relations, #clear_relations, #commit_transaction, #compatible_state?, #compute_replacement_candidates, #compute_subplan_replacement_operation, #compute_task_replacement_operation, #create_fresh_copy, create_script, #create_transaction_proxy, #current_state, #current_state?, #do_not_reuse, #do_poll, #each_coordination_object, #each_event, #each_exception_handler, #emit, #end_time, #ensure_poll_handler_called, #event, #event_model, #executable=, #executable?, #execute, #failed_to_start!, #failed_to_start?, #filter_events_from_strongly_related_tasks, #find_event, #fired_event, #forcefully_terminate, #forward_to, #freeze_delayed_arguments, #fullfills?, #fully_instanciated?, #garbage!, goal, #goal, #handle_exception, #has_argument?, #has_event?, #initialize, #initialize_copy, #initialize_replacement, #inspect, #interruptible?, #invalidate_terminal_flag, #invalidated_terminal_flag?, #last_event, #lifetime, #list_unset_arguments, #mark_failed_to_start, #match, #meaningful_arguments, #name, #null?, #on, #partially_instanciated?, #plan=, #poll, #poll_handler, #pretty_print, #promise, #quarantined!, #quarantined?, #related_events, #related_tasks, #remove_coordination_object, #remove_poll_handler, #replace_by, #replace_subplan_by, #resolve_goals, #resolve_state_sources, #respawn, #reusable?, #running?, script, #script, #signals, #simulate, #start_time, state, #state, #terminal_events, #to_execution_exception, #to_task, #transform_candidates_into_operations, #transition!, #update_task_status, #update_terminal_flag, #updated_data, #use_fault_response_table, #when_finalized, #|
Methods included from Models::Task
#abstract, #all_models, #as_plan, #can_merge?, #causal_link, #clear_model, #compute_terminal_events, #define_command_method, #define_event_methods, define_method_unless_present, #discover_terminal_events, #enum_events, #event, #event_model, #find_event_model, #forward, #from, #from_state, #fullfills?, #instantiate_event_relations, #interruptible, #invalidate_template, #match, model_attribute_list, model_relation, #on, #on_exception, #poll, #precondition, #provided_services, #query, #signal, #template, #terminal_events, #terminates, #to_coordination_task, #to_execution_exception_matcher, #update_terminal_flag, #with_arguments
Methods included from Models::Arguments
#argument, #arguments, #default_argument, #fullfills?, #meaningful_arguments
Methods included from TaskStateHelper
#import_events_to_roby, #namespace, #namespace=, #refine_running_state, #state_machine
Methods included from DRoby::Identifiable
Methods included from DRoby::V5::Models::TaskDumper
Methods included from DRoby::V5::ModelDumper
#droby_dump, #droby_marshallable?
Methods included from DRoby::V5::TaskDumper
Methods included from GUI::GraphvizTask
#apply_layout, #dot_label, #to_dot_events
Methods included from GUI::GraphvizPlanObject
#apply_layout, #dot_label, #to_dot
Methods included from GUI::RelationsCanvasTask
#display, #display_create, #display_name, #display_time_end, #display_time_start, #layout_events, to_svg, #update_graphics
Methods included from GUI::RelationsCanvasPlanObject
#display, #display_create, #display_events, #display_name, #display_parent
Methods included from ExceptionHandlingObject
#add_error, #handle_exception, #pass_exception
Methods inherited from PlanObject
#add_child_object, #apply_relation_changes, #as_plan, #can_finalize?, #commit_transaction, #concrete_model, #connection_space, #each_finalization_handler, #each_in_neighbour_merged, #each_out_neighbour_merged, #each_plan_child, #engine, #executable?, #finalized!, #finalized?, #forget_peer, #fullfills?, #garbage!, #garbage?, #initialize, #initialize_copy, #initialize_replacement, #merged_relations, #promise, #read_write?, #real_object, #remotely_useful?, #replace_by, #replace_subplan_by, #root_object, #root_object?, #subscribed?, #transaction_proxy?, #transaction_stack, #update_on?, #updated_by?, #when_finalized
Methods included from Models::PlanObject
#child_plan_object, #finalization_handler, #match, #when_finalized
Methods included from Relations::DirectedRelationSupport
#[], #[]=, #add_child_object, #add_parent_object, #child_object?, #child_objects, #clear_vertex, #each_child_object, #each_in_neighbour, #each_out_neighbour, #each_parent_object, #each_relation, #each_relation_graph, #each_relation_sorted, #each_root_relation_graph, #enum_child_objects, #enum_parent_objects, #enum_relations, #leaf?, #parent_object?, #parent_objects, #related_object?, #related_objects, #relation_graph_for, #relations, #remove_child_object, #remove_children, #remove_parent_object, #remove_parents, #remove_relations, #root?, #sorted_relations
Methods inherited from DistributedObject
#add_owner, #clear_owners, #initialize, #initialize_copy, #owned_by?, #remove_owner
Constructor Details
This class inherits a constructor from Roby::Task
Instance Attribute Details
#result ⇒ Object (readonly)
The planner result. It is either an exception or a task object
18 19 20 |
# File 'lib/roby/actions/task.rb', line 18 def result @result end |
#transaction ⇒ Transaction (readonly)
Once the task has been started, this is the transaction object that is being used / has been used to generate before committing in the plan
15 16 17 |
# File 'lib/roby/actions/task.rb', line 15 def transaction @transaction end |
Instance Method Details
#action_arguments ⇒ Hash
The arguments for the action method
25 |
# File 'lib/roby/actions/task.rb', line 25 argument :action_arguments, default: {} |
#action_interface_model ⇒ Model<Interface>
The action interface model used by this planner
36 37 38 |
# File 'lib/roby/actions/task.rb', line 36 def action_interface_model action_model.action_interface_model end |
#action_model ⇒ Models::Action
The action itself
22 |
# File 'lib/roby/actions/task.rb', line 22 argument :action_model |
#job_name ⇒ Object
40 41 42 43 44 45 |
# File 'lib/roby/actions/task.rb', line 40 def job_name formatted_arguments = (action_arguments || {}).map do |k, v| "#{k} => #{v}" end.join(", ") "#{action_model}(#{formatted_arguments})" end |
#planned_model ⇒ Model<Roby::Task>
The model of the roby task that is going to represent the action in the plan
30 31 32 |
# File 'lib/roby/actions/task.rb', line 30 def planned_model action_model.returned_task_type end |
#planning_result_task ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/roby/actions/task.rb', line 55 def planning_result_task if success? || result result elsif task = planned_tasks.find { true } task elsif pending? task = planned_model.new task.planned_by self task.abstract = true task end end |
#to_s ⇒ Object
47 48 49 50 51 52 53 |
# File 'lib/roby/actions/task.rb', line 47 def to_s if action_model "#{super}[#{action_interface_model}:#{action_model}](#{action_arguments}) -> #{action_model.returned_type}" else super.to_s end end |