#ifndef COMPILERFACTORY_H
#define COMPILERFACTORY_H

#include "settings.h"
#include "compiler.h"

// Well, not really a factory ;)

WX_DEFINE_ARRAY(Compiler*, CompilersArray);

class DLLIMPORT CompilerFactory
{
    public:
        static void RegisterCompiler(Compiler* compiler);
        static void RegisterUserCompilers();
        static int CreateCompilerCopy(Compiler* compiler);
        static void RemoveCompiler(Compiler* compiler);
        static void UnregisterCompilers();
        static void SaveSettings();
        static void LoadSettings();
        static bool CompilerIndexOK(int compilerIdx);
        static int GetDefaultCompilerIndex();
        static void SetDefaultCompilerIndex(int compilerIdx);
        static Compiler* GetDefaultCompiler();
        static void SetDefaultCompiler(Compiler* compiler);
        static CompilersArray Compilers;
    private:
        static int s_DefaultCompilerIdx;
};

#endif // COMPILERFACTORY_H


syntax highlighted by Code2HTML, v. 0.9.1