Files
Sourcetrail/src/lib/data/indexer/IndexerFactory.cpp
T
malte_langkabel 4563cbe90a logic: indexer commands
* replaced parser arguments by project specific IndexerCommands that know everything the indexer needs to know to do its job
* added different language and project specific indexers that know how to handle a certain kind of indexer command
* refactored FileManager and FileRegister to have less overhead
* removed no-rtti restriction for clang files in lib cxx
* uncommented deprecated interprocess code.

fortune cookie message = Happiness will bring you good luck.
2017-02-22 16:42:20 +01:00

42 lines
900 B
C++

#include "data/indexer/IndexerFactory.h"
#include "data/indexer/IndexerBase.h"
#include "data/indexer/IndexerComposite.h"
#include "IndexerFactoryModule.h"
std::shared_ptr<IndexerFactory> IndexerFactory::getInstance()
{
if (!s_instance)
{
s_instance = std::shared_ptr<IndexerFactory>(new IndexerFactory());
}
return s_instance;
}
void IndexerFactory::destroyInstance()
{
s_instance.reset();
}
void IndexerFactory::addModule(std::shared_ptr<IndexerFactoryModule> module)
{
m_modules.push_back(module);
}
std::shared_ptr<IndexerComposite> IndexerFactory::createCompositeIndexerForAllRegisteredModules()
{
std::shared_ptr<IndexerComposite> composite = std::make_shared<IndexerComposite>();
for (auto it: m_modules)
{
composite->addIndexer(it->createIndexer());
}
return composite;
}
std::shared_ptr<IndexerFactory> IndexerFactory::s_instance;
IndexerFactory::IndexerFactory()
{
}