3 #define POCO_NO_UNWINDOWS 1
4 #include <Poco/Mutex.h>
7 // defines IPluginInfos
8 #include "DiffContext.h"
9 // defines PackingInfo and PrediffingInfo
10 #include "FileTransform.h"
13 * @brief Cached plugin info for one particular file info
17 PackingInfo m_infoUnpacker;
18 PrediffingInfo m_infoPrediffer;
21 typedef std::shared_ptr<PluginFileInfo> PluginFileInfoPtr;
24 * @brief Cache of known plugin infos
26 class PluginManager : public IPluginInfos
29 typedef std::map<String, PluginFileInfoPtr> PluginFileInfoMap;
32 void Clear() { m_pluginSettings.clear(); };
33 void SetUnpackerSettingAll(bool automatic);
34 void SetPrediffSettingAll(bool automatic);
35 void SetPrediffer(const String& filteredFilenames, const String& predifferPipeline);
36 // Implement IPluginInfos
37 virtual void FetchPluginInfos(const String& filteredFilenames,
38 PackingInfo ** infoUnpacker,
39 PrediffingInfo ** infoPrediffer) override;
42 PluginFileInfoMap m_pluginSettings;
43 Poco::FastMutex m_mutex;