blob: 91c16a541dfeca23caa622f3ad457a0099082161 [file] [log] [blame]
// Copyright 2018 The Goma Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef DEVTOOLS_GOMA_CLIENT_COMPILER_TYPE_SPECIFIC_COLLECTION_H_
#define DEVTOOLS_GOMA_CLIENT_COMPILER_TYPE_SPECIFIC_COLLECTION_H_
#include "clang_tidy/clang_tidy_compiler_type_specific.h"
#include "compiler_flag_type.h"
#include "compiler_type_specific.h"
#include "cxx/gcc_compiler_type_specific.h"
#include "cxx/vc_compiler_type_specific.h"
#include "java/java_compiler_type_specific.h"
namespace devtools_goma {
// CompilerTypeSpecificCollection contains all CompilerTypeSpecific.
// TODO: Instead of having all at once, register?
class CompilerTypeSpecificCollection {
public:
// Takes CompilerTypeSpecific from CompilerFlagType.
CompilerTypeSpecific* Get(CompilerFlagType type);
private:
// TODO: Consider using map (FlagType -> CompilerTypeSpecific)
// instead of listing all compiler type specific here?
GCCCompilerTypeSpecific gcc_;
VCCompilerTypeSpecific vc_;
ClangTidyCompilerTypeSpecific clang_tidy_;
JavacCompilerTypeSpecific javac_;
JavaCompilerTypeSpecific java_;
};
} // namespace devtools_goma
#endif // DEVTOOLS_GOMA_CLIENT_COMPILER_TYPE_SPECIFIC_COLLECTION_H_