PathDiagnosticConsumers.h revision 1eb4433ac451dc16f4133a88af2d002ac26c58ef
15d866256333fb6115a8a86ac4f89b2ca36e20c70Ted Kremenek//===--- PathDiagnosticClients.h - Path Diagnostic Clients ------*- C++ -*-===// 288f5cde90dbb5f28cc269071d5ab11436767a1e1Ted Kremenek// 388f5cde90dbb5f28cc269071d5ab11436767a1e1Ted Kremenek// The LLVM Compiler Infrastructure 488f5cde90dbb5f28cc269071d5ab11436767a1e1Ted Kremenek// 588f5cde90dbb5f28cc269071d5ab11436767a1e1Ted Kremenek// This file is distributed under the University of Illinois Open Source 688f5cde90dbb5f28cc269071d5ab11436767a1e1Ted Kremenek// License. See LICENSE.TXT for details. 788f5cde90dbb5f28cc269071d5ab11436767a1e1Ted Kremenek// 888f5cde90dbb5f28cc269071d5ab11436767a1e1Ted Kremenek//===----------------------------------------------------------------------===// 988f5cde90dbb5f28cc269071d5ab11436767a1e1Ted Kremenek// 105d866256333fb6115a8a86ac4f89b2ca36e20c70Ted Kremenek// This file defines the interface to create different path diagostic clients. 1188f5cde90dbb5f28cc269071d5ab11436767a1e1Ted Kremenek// 1288f5cde90dbb5f28cc269071d5ab11436767a1e1Ted Kremenek//===----------------------------------------------------------------------===// 1388f5cde90dbb5f28cc269071d5ab11436767a1e1Ted Kremenek 14d37ee16367bbf8058799148d958cbf4fbabc9fb7Daniel Dunbar#ifndef LLVM_CLANG_FRONTEND_PATH_DIAGNOSTIC_CLIENTS_H 15d37ee16367bbf8058799148d958cbf4fbabc9fb7Daniel Dunbar#define LLVM_CLANG_FRONTEND_PATH_DIAGNOSTIC_CLiENTS_H 1688f5cde90dbb5f28cc269071d5ab11436767a1e1Ted Kremenek 17f75560670bcdd59b051149bdece3eac14e313853Ted Kremenek#include <memory> 1888f5cde90dbb5f28cc269071d5ab11436767a1e1Ted Kremenek#include <string> 19f75560670bcdd59b051149bdece3eac14e313853Ted Kremenek#include "llvm/ADT/SmallVector.h" 2088f5cde90dbb5f28cc269071d5ab11436767a1e1Ted Kremenek 2188f5cde90dbb5f28cc269071d5ab11436767a1e1Ted Kremeneknamespace clang { 22339b9c27759d7b6a53e2370f83f66e78b3254595Ted Kremenek 23339b9c27759d7b6a53e2370f83f66e78b3254595Ted Kremenekclass PathDiagnosticClient; 24339b9c27759d7b6a53e2370f83f66e78b3254595Ted Kremenekclass Preprocessor; 25339b9c27759d7b6a53e2370f83f66e78b3254595Ted Kremenekclass PreprocessorFactory; 261eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump 27f75560670bcdd59b051149bdece3eac14e313853Ted Kremenekclass PathDiagnosticClientFactory { 28f75560670bcdd59b051149bdece3eac14e313853Ted Kremenekpublic: 29f75560670bcdd59b051149bdece3eac14e313853Ted Kremenek PathDiagnosticClientFactory() {} 30f75560670bcdd59b051149bdece3eac14e313853Ted Kremenek virtual ~PathDiagnosticClientFactory() {} 311eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump 32f75560670bcdd59b051149bdece3eac14e313853Ted Kremenek virtual const char *getName() const = 0; 33339b9c27759d7b6a53e2370f83f66e78b3254595Ted Kremenek 34f75560670bcdd59b051149bdece3eac14e313853Ted Kremenek virtual PathDiagnosticClient* 35f75560670bcdd59b051149bdece3eac14e313853Ted Kremenek createPathDiagnosticClient(llvm::SmallVectorImpl<std::string> *FilesMade) = 0; 36f75560670bcdd59b051149bdece3eac14e313853Ted Kremenek}; 37f75560670bcdd59b051149bdece3eac14e313853Ted Kremenek 38f75560670bcdd59b051149bdece3eac14e313853Ted KremenekPathDiagnosticClient* 39f75560670bcdd59b051149bdece3eac14e313853Ted KremenekCreateHTMLDiagnosticClient(const std::string& prefix, Preprocessor* PP = 0, 40f75560670bcdd59b051149bdece3eac14e313853Ted Kremenek PreprocessorFactory* PPF = 0, 41f75560670bcdd59b051149bdece3eac14e313853Ted Kremenek llvm::SmallVectorImpl<std::string>* FilesMade = 0); 421eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump 43f75560670bcdd59b051149bdece3eac14e313853Ted KremenekPathDiagnosticClientFactory* 44f75560670bcdd59b051149bdece3eac14e313853Ted KremenekCreateHTMLDiagnosticClientFactory(const std::string& prefix, 45f75560670bcdd59b051149bdece3eac14e313853Ted Kremenek Preprocessor* PP = 0, 46f75560670bcdd59b051149bdece3eac14e313853Ted Kremenek PreprocessorFactory* PPF = 0); 471eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump 48f75560670bcdd59b051149bdece3eac14e313853Ted KremenekPathDiagnosticClient* 49f75560670bcdd59b051149bdece3eac14e313853Ted KremenekCreatePlistDiagnosticClient(const std::string& prefix, Preprocessor* PP, 50f75560670bcdd59b051149bdece3eac14e313853Ted Kremenek PreprocessorFactory* PPF, 51f75560670bcdd59b051149bdece3eac14e313853Ted Kremenek PathDiagnosticClientFactory *PF = 0); 5288f5cde90dbb5f28cc269071d5ab11436767a1e1Ted Kremenek 53f75560670bcdd59b051149bdece3eac14e313853Ted Kremenek} // end clang namespace 5488f5cde90dbb5f28cc269071d5ab11436767a1e1Ted Kremenek#endif 55