Changeset 161 for branches/turbo/avango-core/src/avango/fields/Field.cpp
- Timestamp:
- 05/15/09 17:33:25 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/turbo/avango-core/src/avango/fields/Field.cpp
r151 r161 182 182 183 183 // copy and reference auditors while in notify because the connection topology may change 184 185 184 FieldPtrVec auditors; 186 185 auditors.reserve(mAuditors.size()); … … 189 188 FieldPtrVec::const_iterator current; 190 189 FieldPtrVec::const_iterator past_of_end = auditors.end(); 191 192 // create references to field containers193 std::vector<Link<FieldContainer> > auditor_containers;194 auditor_containers.reserve(mAuditors.size());195 std::transform(auditors.begin(), auditors.end(), std::back_inserter(auditor_containers),196 boost::bind(&Field::getContainer, _1));197 198 // notify199 200 190 for (current = auditors.begin(); current != past_of_end; ++current) 201 191 { … … 344 334 if (notifyEnabled()) 345 335 { 346 mC hangedSignal(ChangedEvent(this, fromNet, triggeredFrom));336 mContainer->fieldChanged(*this, fromNet); 347 337 notify(triggeredFrom); 348 338 ContainerPool::notifyFieldHasChanged(this); … … 370 360 mConnectedFrom.push_back(std::make_pair(field, dependent)); 371 361 field->addAuditor(this); 372 mConnectedSignal(ConnectedEvent(this, field));373 362 374 363 ContainerPool::notifyConnect(this); … … 401 390 // we can notice disconnects this way 402 391 touch(); 403 404 mDisconnectedSignal(DisconnectedEvent(this, disconnected_fields));405 392 406 393 ContainerPool::notifyDisconnect(this); … … 453 440 touch(); 454 441 455 mDisconnectedSignal(DisconnectedEvent(this, std::vector<Field*>(1, field)));456 457 442 ContainerPool::notifyDisconnect(this); 458 443 } … … 505 490 506 491 void 507 av::Field::containerFieldChanged(const ChangedEvent& event)508 {509 AV_ASSERT(this == event.getField());510 mContainer->fieldChanged(*(event.getField()), event.getChangedFromNet());511 }512 513 void514 492 av::Field::bind(av::FieldContainer* container, const std::string& name, bool owned) 515 493 { … … 526 504 unsigned int index = container->addField(this, name); 527 505 setContainer(container, index, owned); 528 addChangedCallback(boost::bind(&Field::containerFieldChanged, this, _1));529 506 } 530 507 … … 708 685 } 709 686 710 av::Field::ChangedCallbackHandle711 av::Field::addChangedCallback(const ChangedCallback& callback)712 {713 return mChangedSignal.connect(callback);714 }715 716 void717 av::Field::removeChangedCallback(const ChangedCallbackHandle& handle)718 {719 handle.disconnect();720 }721 722 av::Field::ConnectedCallbackHandle723 av::Field::addConnectedCallback(const ConnectedCallback& callback)724 {725 return mConnectedSignal.connect(callback);726 }727 728 void729 av::Field::removeConnectedCallback(const ConnectedCallbackHandle& handle)730 {731 handle.disconnect();732 }733 734 av::Field::DisconnectedCallbackHandle735 av::Field::addDisconnectedCallback(const DisconnectedCallback& callback)736 {737 return mDisconnectedSignal.connect(callback);738 }739 740 void741 av::Field::removeDisconnectedCallback(const DisconnectedCallbackHandle& handle)742 {743 handle.disconnect();744 }745 746 687 void 747 688 av::Field::evaluateDependencies(void)
Note: See TracChangeset
for help on using the changeset viewer.
