00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include "torc/physical/Instance.hpp"
00020 #include "torc/physical/InstancePin.hpp"
00021
00022 namespace torc {
00023 namespace physical {
00024
00025 void Instance::addPin(const InstancePinWeakPtr& inInstancePinPtr) {
00026 if(!inInstancePinPtr.expired()) {
00027 InstancePinSharedPtr instancePinSharedPtr = inInstancePinPtr.lock();
00028 mInstancePins.insert(InstancePinMap::value_type(instancePinSharedPtr->getPinName(),
00029 instancePinSharedPtr));
00030 }
00031 }
00032
00033 void Instance::removePin(const InstancePinWeakPtr& inInstancePinPtr) {
00034 if(!inInstancePinPtr.expired()) {
00035
00036 InstancePinSharedPtr instancePinSharedPtr = inInstancePinPtr.lock();
00037 std::pair<InstancePinSharedPtrIterator, InstancePinSharedPtrIterator> range
00038 = mInstancePins.equal_range(instancePinSharedPtr->getPinName());
00039
00040 while(range.first != range.second) {
00041 if(range.first->second == instancePinSharedPtr) {
00042 mInstancePins.erase(range.first);
00043 break;
00044 }
00045 range.first++;
00046 }
00047 }
00048 }
00049
00050 }
00051 }