logic: generate indexer commands on demand to reduce shared memory consumption

* implemented task for sending IndexerCommands to shared memory on demand
* SourceGroups now return IndexerCommandProviders instead of just a list of indexer commands. This way information can be stored in a compressed format
* merged IndexerCommandCxxEmpty and IndexerCommandCxxCdb
* moved sorting of indexer commands by file size from IndexerCommandList to TaskFillIndexerCommandQueue
* removed obsolete IndexerCommandList class
* wait for IndexerCommandQueue to be filled before starting the indexers
* restart finished indexer processes while indexerCommandQueue is still running
* restart indexer threads as long as there are indexer commands to process
* removed Blackboard::getMutex() and added an atomic update() method
This commit is contained in:
mlangkabel
2018-09-10 12:40:30 +02:00
parent 92a19869e7
commit 9998855527
77 changed files with 2156 additions and 1244 deletions
@@ -11,17 +11,17 @@ class ProjectSettings;
class SourceGroupSettingsWithJavaStandard
{
public:
static std::string getDefaultJavaStandardStatic();
static std::wstring getDefaultJavaStandardStatic();
SourceGroupSettingsWithJavaStandard() = default;
virtual ~SourceGroupSettingsWithJavaStandard() = default;
bool equals(std::shared_ptr<SourceGroupSettingsWithJavaStandard> other) const;
std::string getJavaStandard() const;
void setJavaStandard(const std::string& standard);
std::wstring getJavaStandard() const;
void setJavaStandard(const std::wstring& standard);
std::vector<std::string> getAvailableJavaStandards() const;
std::vector<std::wstring> getAvailableJavaStandards() const;
protected:
void load(std::shared_ptr<const ConfigManager> config, const std::string& key);
@@ -29,9 +29,9 @@ protected:
private:
virtual const ProjectSettings* getProjectSettings() const = 0;
std::string getDefaultJavaStandard() const;
std::wstring getDefaultJavaStandard() const;
std::string m_javaStandard;
std::wstring m_javaStandard;
};
#endif // SOURCE_GROUP_SETTINGS_WITH_JAVA_STANDARD_H