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
|