2302 permutablePtr->setPermutableType(inPermutable.getPermutableType());
2303 permutablePtr->setIsNonPermutable(inPermutable.getIsNonPermutable());
2305 std::vector<PortSharedPtr> outPorts;
2306 inPermutable.getPorts(outPorts);
2307 std::vector<PortSharedPtr>::iterator portIt = outPorts.begin();
2308 for(; portIt != outPorts.end(); ++portIt) {
2311 std::vector < std::string > nestedNames;
2314 nestedNames.push_back(port->getName());
2315 port = port->getParentCollection();
2319 if(nestedNames.size() > 1) {
2322 std::vector < size_t > indices;
2324 targetPort = targetPort->get(IndexFinder<Port, VectorPortBit>()(actualPort));
2325 indices = IndexFinder<Port, VectorNetBit>()(actualPort);
2327 if(!indices.empty()) {
2328 targetPort = targetPort->get(indices);
2330 permutablePtr->addPort(targetPort);
2333 std::vector<PermutableSharedPtr> outPermutables;
2334 inPermutable.getChildren(outPermutables);
2335 for(std::vector<PermutableSharedPtr>::iterator it = outPermutables.begin();
2336 it != outPermutables.end(); ++it) {
2338 permutablePtr->addChildPermutable(childPermutable);
2343 e.setCurrentLocation(__FUNCTION__, __FILE__, __LINE__);
void findLeafConnectable(std::vector< std::string > &nestedNames, boost::shared_ptr< _Connectable > &conn)
boost::shared_ptr< Permutable > PermutableSharedPtr
ObjectFactorySharedPtr mFactory
boost::shared_ptr< _Tp > clonePermutable(const boost::shared_ptr< _Tp > &inPointer, const ObjectFactorySharedPtr &inFactory, const ViewSharedPtr &inView)
boost::shared_ptr< Port > PortSharedPtr