예제 #1
0
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;    
}
예제 #2
0
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;
}
예제 #3
0
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;
}