Licq::ProtocolPlugin::Instances ProtocolPlugin::instances() const { Instances list; Licq::MutexLocker locker(myMutex); for (std::vector< boost::weak_ptr<PluginInstance> >::const_iterator it = myInstances.begin(); it != myInstances.end(); ++it) { ProtocolPluginInstance::Ptr instance = boost::dynamic_pointer_cast<ProtocolPluginInstance>(it->lock()); if (instance) list.push_back(instance); } return list; }