Module: Syskit::Models::OrogenBase

Included in:
Deployment, TaskContext
Defined in:
lib/syskit/models/orogen_base.rb

Overview

Base functionality for model classes that deal with oroGen models

Instance Method Summary collapse

Instance Method Details

#find_model_by_orogen(orogen_model) ⇒ Syskit::TaskContext, ...

Return the syskit model that represents the given oroGen model

Parameters:

  • orogen_model

    the oroGen model

Returns:



26
27
28
29
30
31
32
33
# File 'lib/syskit/models/orogen_base.rb', line 26

def find_model_by_orogen(orogen_model)
    each_submodel do |syskit_model|
        if syskit_model.orogen_model == orogen_model
            return syskit_model
        end
    end
    nil
end

#find_model_from_orogen_name(name) ⇒ Object

Finds the Syskit model that represents an oroGen model with that name



12
13
14
15
16
17
18
19
# File 'lib/syskit/models/orogen_base.rb', line 12

def find_model_from_orogen_name(name)
    each_submodel do |syskit_model|
        if syskit_model.orogen_model.name == name
            return syskit_model
        end
    end
    nil
end

#has_model_for?(orogen_model) ⇒ Boolean

Checks whether a syskit model exists for the given orogen model

Returns:

  • (Boolean)


6
7
8
# File 'lib/syskit/models/orogen_base.rb', line 6

def has_model_for?(orogen_model)
    !!each_submodel.find { |m| m.orogen_model == orogen_model }
end

#model_for(orogen_model) ⇒ Object

Returns the syskit model for the given oroGen model

Raises:

  • ArgumentError if no syskit model exists



38
39
40
41
42
43
# File 'lib/syskit/models/orogen_base.rb', line 38

def model_for(orogen_model)
    if m = find_model_by_orogen(orogen_model)
        return m
    else raise ArgumentError, "there is no syskit model for #{orogen_model.name}"
    end
end