CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
clangcms::EDMPluginDumper Class Reference

#include <EDMPluginDumper.h>

Inheritance diagram for clangcms::EDMPluginDumper:

Public Member Functions

void checkASTDecl (const clang::ClassTemplateDecl *TD, clang::ento::AnalysisManager &mgr, clang::ento::BugReporter &BR) const
 

Private Attributes

clang::OwningPtr
< clang::ento::BugType > 
BT
 
CmsException m_exception
 

Detailed Description

Definition at line 21 of file EDMPluginDumper.h.

Member Function Documentation

void clangcms::EDMPluginDumper::checkASTDecl ( const clang::ClassTemplateDecl *  TD,
clang::ento::AnalysisManager &  mgr,
clang::ento::BugReporter &  BR 
) const

Definition at line 15 of file EDMPluginDumper.cc.

References RefreshWebPage::dname, F(), mergeVDriftHistosByStation::file, alignmentValidation::fname, Exhume::I, NULL, SD, and AlCaHLTBitMon_QueryRunRegistry::string.

16  {
17  const clang::SourceManager &SM = BR.getSourceManager();
18  std::string tname = TD->getTemplatedDecl()->getQualifiedNameAsString();
19  if ( tname == "edm::WorkerMaker" ) {
20  for ( auto I = TD->spec_begin(), E = TD->spec_end(); I != E; ++I)
21  {
22  for (unsigned J = 0, F = I->getTemplateArgs().size(); J!=F; ++J)
23  {
24  if (const clang::CXXRecordDecl * RD = I->getTemplateArgs().get(J).getAsType().getTypePtr()->getAsCXXRecordDecl()) {
25  const char * pPath = std::getenv("LOCALRT");
26  std::string rname = RD->getQualifiedNameAsString();
27  std::string dname("");
28  if ( pPath != NULL ) dname = std::string(pPath);
29  std::string fname("/tmp/plugins.txt.unsorted");
30  std::string tname = dname + fname;
31  std::string ostring = "edmplugin type '"+ rname +"'\n";
32  std::ofstream file(tname.c_str(),std::ios::app);
33  file<<ostring;
34  if (const ClassTemplateSpecializationDecl *SD = dyn_cast<ClassTemplateSpecializationDecl>(RD)) {
35  for (unsigned J = 0, F = SD->getTemplateArgs().size(); J!=F; ++J) {
36  if (SD->getTemplateArgs().get(J).getKind() == clang::TemplateArgument::Type && SD->getTemplateArgs().get(J).getAsType().getTypePtr()->isRecordType() )
37  {
38  const clang::CXXRecordDecl * D = SD->getTemplateArgs().get(J).getAsType().getTypePtr()->getAsCXXRecordDecl();
39  std::string dname = D->getQualifiedNameAsString();
40  std::string ostring = "edmplugin type '"+rname+"' template arg '"+ dname +"'\n";
41  std::ofstream file(tname.c_str(),std::ios::app);
42  file<<ostring;
43 
44  }
45  }
46  }
47  }
48  }
49  }
50  }
51 } //end class
#define NULL
Definition: scimark2.h:8
static const float SD[]
Definition: sicif.h:67
const std::complex< double > I
Definition: I.h:8
string fname
main script
static uInt32 F(BLOWFISH_CTX *ctx, uInt32 x)
Definition: blowfish.cc:281
DecomposeProduct< arg, typename Div::arg > D
Definition: Factorize.h:150

Member Data Documentation

clang::OwningPtr< clang::ento::BugType> clangcms::EDMPluginDumper::BT
mutableprivate

Definition at line 22 of file EDMPluginDumper.h.

CmsException clangcms::EDMPluginDumper::m_exception
private

Definition at line 30 of file EDMPluginDumper.h.