Method: Roby::Transaction#restore_relation

Defined in:
lib/roby/transactions.rb

#restore_relation(proxy, relation) ⇒ Object



115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
# File 'lib/roby/transactions.rb', line 115

def restore_relation(proxy, relation)
    object = proxy.__getobj__

    Control.synchronize do
  proxy_children = proxy.child_objects(relation)
  object.child_objects(relation).each do |object_child| 
      next unless proxy_child = wrap(object_child, false)
      if proxy_children.include?(proxy_child)
    relation.unlink(proxy, proxy_child)
      end
  end

  proxy_parents = proxy.parent_objects(relation)
  object.parent_objects(relation).each do |object_parent| 
      next unless proxy_parent = wrap(object_parent, false)
      if proxy_parents.include?(proxy_parent)
    relation.unlink(parent, proxy_parent)
      end
  end
    end

    discovered_objects.delete(proxy)
    proxy.discovered_relations.delete(relation)
    proxy.do_discover(relation, false)
end