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.
This commit is contained in:
malte_langkabel
2017-02-22 16:42:20 +01:00
parent 650cd8101e
commit 4563cbe90a
101 changed files with 1908 additions and 1120 deletions
+54
View File
@@ -0,0 +1,54 @@
#ifndef TASK_SET_VALUE_H
#define TASK_SET_VALUE_H
#include "utility/scheduling/Task.h"
#include "utility/scheduling/Blackboard.h"
template <typename T>
class TaskSetValue:
public Task
{
public:
TaskSetValue(const std::string& valueName, T value);
private:
virtual void doEnter(std::shared_ptr<Blackboard> blackboard);
virtual TaskState doUpdate(std::shared_ptr<Blackboard> blackboard);
virtual void doExit(std::shared_ptr<Blackboard> blackboard);
virtual void doReset(std::shared_ptr<Blackboard> blackboard);
const std::string m_valueName;
const T m_value;
};
template <typename T>
TaskSetValue<T>::TaskSetValue(const std::string& valueName, T value)
: m_valueName(valueName)
, m_value(value)
{
}
template <typename T>
void TaskSetValue<T>::doEnter(std::shared_ptr<Blackboard> blackboard)
{
}
template <typename T>
Task::TaskState TaskSetValue<T>::doUpdate(std::shared_ptr<Blackboard> blackboard)
{
std::lock_guard<std::mutex> lock(blackboard->getMutex());
blackboard->set<T>(m_valueName, m_value);
return STATE_SUCCESS;
}
template <typename T>
void TaskSetValue<T>::doExit(std::shared_ptr<Blackboard> blackboard)
{
}
template <typename T>
void TaskSetValue<T>::doReset(std::shared_ptr<Blackboard> blackboard)
{
}
#endif // TASK_SET_VALUE_H