Example #1
0
const Port *PortManager::getPort(const int moduleID, const std::string & name) {

   if (const Port *p = PortTracker::getPort(moduleID, name))
      return p;

   std::string::size_type p = name.find('[');
   if (p != std::string::npos) {
      Port *parent = findPort(moduleID, name.substr(0, p-1));
      if (parent && (parent->flags() & Port::MULTI)) {
         size_t idx=boost::lexical_cast<size_t>(name.substr(p+1));
         const Port *port = parent->child(idx);
         m_clusterManager->sendMessage(moduleID, message::AddPort(*port));
         return port;
      }
   }

   return NULL;
}