SourcePlugin* SourcePluginManager::getSourceBySapiUri(const char* sapiUri) { for(int i=0;i<getNumRegisteredSources();++i) { SourcePlugin* source = getSourcePlugin(i); if (strcmp(source->getSapiUri(), sapiUri) == 0) { return source; } } return NULL; }
SourcePlugin* SourcePluginManager::getSourceByName(const char* name) { for(int i=0;i<getNumRegisteredSources();++i) { SourcePlugin* source = getSourcePlugin(i); if (strcmp(source->getName(), name) == 0) { return source; } } return NULL; }
std::vector<SourcePlugin*>& SourcePluginManager::getOrderedSources() { if (orderedSources.size() == 0) { StringBuffer ordervalue(clientConfig->getSourceOrder()); ArrayList order; ordervalue.split(order, ","); for (int i = 0; i < order.size(); i++){ const char* sourceName = ((StringBuffer*)order.get(i))->c_str(); // Search in the registered sources for this one for(int j=0;j<registeredSources.size();++j) { SourcePlugin* plugin = getSourcePlugin(j); if (plugin->getActive() && strcmp(sourceName, plugin->getName()) == 0) { orderedSources.push_back(plugin); break; } } } } return orderedSources; }
//dedek: BOOL CDataSourcesManager::saveSourcesTab() { BOOL ret = TRUE; MSXML2::IXMLDOMDocumentPtr pXMLDom; pXMLDom.CreateInstance(_T("Msxml2.DOMDocument")); MSXML2::IXMLDOMElementPtr root_el; // korenovy element root_el = pXMLDom->createElement("SOURCES_LIST"); pXMLDom->appendChild(root_el); MSXML2::IXMLDOMElementPtr source_el; // source element source_el = pXMLDom->createElement("SOURCE"); //atributy MSXML2::IXMLDOMAttributePtr attr; attr = pXMLDom->createAttribute("PUBLIC_ID"); source_el->setAttributeNode(attr); attr.Release(); attr = pXMLDom->createAttribute("PERZISTENT_ID"); source_el->setAttributeNode(attr); attr.Release(); attr = pXMLDom->createAttribute("PLUGIN_ID"); source_el->setAttributeNode(attr); attr.Release(); for (int a=0; a<getSourcesCount(); a++) { MSXML2::IXMLDOMElementPtr e = source_el->cloneNode(VARIANT_TRUE); e->setAttribute("PUBLIC_ID", (LPCTSTR) getSourcePublicID(a)); e->setAttribute("PERZISTENT_ID", (LPCTSTR) getSourcePersistentID(a)); e->setAttribute("PLUGIN_ID", (LPCTSTR) getSourcePlugin(a)); root_el->appendChild(e); e.Release(); } source_el.Release(); //default zdroj: MSXML2::IXMLDOMElementPtr default_source; default_source = pXMLDom->createElement("DEFAULT_SOURCE"); MSXML2::IXMLDOMAttributePtr src_attr; src_attr = pXMLDom->createAttribute("PUBLIC_ID"); src_attr->value = (LPCTSTR) getDefaultSource(); default_source->setAttributeNode(src_attr); src_attr.Release(); root_el->appendChild(default_source); default_source.Release(); CDirectoriesManager & m = ((CReportAsistentApp *) AfxGetApp())->m_pGeneralManager->DirectoriesManager; // save list of data sources into config. file "ConfigDir/sources.xml" try { ret = S_OK == pXMLDom->save((LPCTSTR) m.getSourcesConfigFilePath()); } catch(...) { CReportAsistentApp::ReportError(IDS_DSLISTSAVE_ERR); } root_el.Release(); return ret; }