本文整理汇总了C++中DirDef类的典型用法代码示例。如果您正苦于以下问题:C++ DirDef类的具体用法?C++ DirDef怎么用?C++ DirDef使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了DirDef类的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: it
void GroupDef::writeDirs(OutputList &ol,const QCString &title)
{
// write list of directories
if (dirList->count()>0)
{
ol.startMemberHeader("dirs");
ol.parseText(title);
ol.endMemberHeader();
ol.startMemberList();
QListIterator<DirDef> it(*dirList);
DirDef *dd;
for (;(dd=it.current());++it)
{
if (!dd->hasDocumentation()) continue;
ol.startMemberDeclaration();
ol.startMemberItem(dd->getOutputFileBase(),0);
ol.parseText(theTranslator->trDir(FALSE,TRUE));
ol.insertMemberAlign();
ol.writeObjectLink(dd->getReference(),dd->getOutputFileBase(),0,dd->shortName());
ol.endMemberItem();
if (!dd->briefDescription().isEmpty() && Config_getBool(BRIEF_MEMBER_DESC))
{
ol.startMemberDescription(dd->getOutputFileBase());
ol.generateDoc(briefFile(),briefLine(),dd,0,dd->briefDescription(),FALSE,FALSE,0,TRUE,FALSE);
ol.endMemberDescription();
}
ol.endMemberDeclaration(0,0);
}
ol.endMemberList();
}
}
示例2: it
void GroupDef::writeDirs(OutputList &ol,const QCString &title)
{
// write list of directories
if (dirList->count()>0)
{
ol.startMemberHeader("dirs");
ol.parseText(title);
ol.endMemberHeader();
ol.startMemberList();
QListIterator<DirDef> it(*dirList);
DirDef *dd;
for (;(dd=it.current());++it)
{
ol.startMemberDeclaration();
ol.startMemberItem(dd->getOutputFileBase(),0);
ol.parseText(theTranslator->trDir(FALSE,TRUE));
ol.insertMemberAlign();
ol.writeObjectLink(dd->getReference(),dd->getOutputFileBase(),0,dd->shortName());
ol.endMemberItem();
if (!Config_getString("GENERATE_TAGFILE").isEmpty())
{
Doxygen::tagFile << " <dir>" << convertToXML(dd->displayName()) << "</dir>" << endl;
}
if (!dd->briefDescription().isEmpty() && Config_getBool("BRIEF_MEMBER_DESC"))
{
ol.startMemberDescription(dd->getOutputFileBase());
ol.generateDoc(briefFile(),briefLine(),dd,0,dd->briefDescription(),FALSE,FALSE,0,TRUE,FALSE);
ol.endMemberDescription();
}
ol.endMemberDeclaration(0,0);
}
ol.endMemberList();
}
}
示例3: parent
void DirDef::setLevel()
{
if (m_level==-1) // level not set before
{
DirDef *p = parent();
if (p)
{
p->setLevel();
m_level = p->level()+1;
}
else
{
m_level = 0;
}
}
}
示例4: computeDirDependencies
void computeDirDependencies()
{
DirDef *dir;
DirSDict::Iterator sdi(*Doxygen::directories);
// compute nesting level for each directory
for (sdi.toFirst();(dir=sdi.current());++sdi)
{
dir->setLevel();
}
// compute uses dependencies between directories
for (sdi.toFirst();(dir=sdi.current());++sdi)
{
//printf("computeDependencies for %s: #dirs=%d\n",dir->name().data(),Doxygen::directories.count());
dir->computeDependencies();
}
}
示例5: convertToXML
void DirDef::writeTagFile(FTextStream &tagFile)
{
tagFile << " <compound kind=\"dir\">" << endl;
tagFile << " <name>" << convertToXML(displayName()) << "</name>" << endl;
tagFile << " <path>" << convertToXML(name()) << "</path>" << endl;
tagFile << " <filename>" << convertToXML(getOutputFileBase()) << Doxygen::htmlFileExtension << "</filename>" << endl;
QListIterator<LayoutDocEntry> eli(
LayoutDocManager::instance().docEntries(LayoutDocManager::Directory));
LayoutDocEntry *lde;
for (eli.toFirst();(lde=eli.current());++eli)
{
switch (lde->kind())
{
case LayoutDocEntry::DirSubDirs:
{
if (m_subdirs.count()>0)
{
DirDef *dd;
QListIterator<DirDef> it(m_subdirs);
for (;(dd=it.current());++it)
{
tagFile << " <dir>" << convertToXML(dd->displayName()) << "</dir>" << endl;
}
}
}
break;
case LayoutDocEntry::DirFiles:
{
if (m_fileList->count()>0)
{
QListIterator<FileDef> it(*m_fileList);
FileDef *fd;
for (;(fd=it.current());++it)
{
tagFile << " <file>" << convertToXML(fd->name()) << "</file>" << endl;
}
}
}
break;
default:
break;
}
}
writeDocAnchorsToTagFile(tagFile);
tagFile << " </compound>" << endl;
}
示例6: generateDirDocs
void generateDirDocs(OutputList &ol)
{
DirDef *dir;
DirSDict::Iterator sdi(*Doxygen::directories);
for (sdi.toFirst();(dir=sdi.current());++sdi)
{
dir->writeDocumentation(ol);
}
if (Config_getBool("DIRECTORY_GRAPH"))
{
SDict<DirRelation>::Iterator rdi(Doxygen::dirRelations);
DirRelation *dr;
for (rdi.toFirst();(dr=rdi.current());++rdi)
{
dr->writeDocumentation(ol);
}
}
}
示例7: buildDirectories
void buildDirectories()
{
// for each input file
FileNameListIterator fnli(*Doxygen::inputNameList);
FileName *fn;
for (fnli.toFirst();(fn=fnli.current());++fnli)
{
FileNameIterator fni(*fn);
FileDef *fd;
for (;(fd=fni.current());++fni)
{
//printf("buildDirectories %s\n",fd->name().data());
if (fd->getReference().isEmpty())
{
DirDef *dir;
if ((dir=Doxygen::directories->find(fd->getPath()))==0) // new directory
{
dir = DirDef::mergeDirectoryInTree(fd->getPath());
}
if (dir && !fd->isDocumentationFile()) dir->addFile(fd);
}
else
{
// do something for file imported via tag files.
}
}
}
//DirDef *root = new DirDef("root:");
// compute relations between directories => introduce container dirs.
DirDef *dir;
DirSDict::Iterator sdi(*Doxygen::directories);
for (sdi.toFirst();(dir=sdi.current());++sdi)
{
QCString name = dir->name();
int i=name.findRev('/',name.length()-2);
if (i>0)
{
DirDef *parent = Doxygen::directories->find(name.left(i+1));
//if (parent==0) parent=root;
if (parent)
{
parent->addSubDir(dir);
//printf("DirDef::addSubdir(): Adding subdir\n%s to\n%s\n",
// dir->displayName().data(), parent->displayName().data());
}
}
}
for (sdi.toFirst();(dir=sdi.current());++sdi)
{
dir->sort();
}
Doxygen::directories->sort();
computeCommonDirPrefix();
}
示例8: generateDirDocs
void generateDirDocs(OutputList &ol)
{
DirDef *dir;
DirSDict::Iterator sdi(*Doxygen::directories);
for (sdi.toFirst();(dir=sdi.current());++sdi)
{
ol.pushGeneratorState();
if (!dir->hasDocumentation())
{
ol.disableAllBut(OutputGenerator::Html);
}
dir->writeDocumentation(ol);
ol.popGeneratorState();
}
if (Config_getBool(DIRECTORY_GRAPH))
{
SDict<DirRelation>::Iterator rdi(Doxygen::dirRelations);
DirRelation *dr;
for (rdi.toFirst();(dr=rdi.current());++rdi)
{
dr->writeDocumentation(ol);
}
}
}
示例9: it
void DirDef::writeSubDirList(OutputList &ol)
{
// write subdir list
if (m_subdirs.count()>0)
{
ol.startMemberHeader("subdirs");
ol.parseText(theTranslator->trDir(TRUE,FALSE));
ol.endMemberHeader();
ol.startMemberList();
QListIterator<DirDef> it(m_subdirs);
DirDef *dd;
for (;(dd=it.current());++it)
{
if (!dd->hasDocumentation()) continue;
ol.startMemberDeclaration();
ol.startMemberItem(dd->getOutputFileBase(),0);
ol.parseText(theTranslator->trDir(FALSE,TRUE)+" ");
ol.insertMemberAlign();
ol.writeObjectLink(dd->getReference(),dd->getOutputFileBase(),0,dd->shortName());
ol.endMemberItem();
if (!dd->briefDescription().isEmpty() && Config_getBool("BRIEF_MEMBER_DESC"))
{
ol.startMemberDescription(dd->getOutputFileBase());
ol.generateDoc(briefFile(),briefLine(),dd,0,dd->briefDescription(),
FALSE, // indexWords
FALSE, // isExample
0, // exampleName
TRUE, // single line
TRUE // link from index
);
ol.endMemberDescription();
}
ol.endMemberDeclaration(0,0);
}
ol.endMemberList();
}
}
示例10: writeDirDependencyGraph
void writeDirDependencyGraph(const char *dirName)
{
QString path;
DirDef *dir;
DirSDict::Iterator sdi(*Doxygen::directories);
QFile htmlPage(QCString(dirName)+"/dirdeps.html");
if (htmlPage.open(IO_WriteOnly))
{
QTextStream out(&htmlPage);
out << "<html><body>";
for (sdi.toFirst();(dir=sdi.current());++sdi)
{
path=dirName;
path+="/";
path+=dir->getOutputFileBase();
path+="_dep.dot";
out << "<h4>" << dir->displayName() << "</h4>" << endl;
out << "<img src=\"" << dir->getOutputFileBase() << "_dep.gif\">" << endl;
QFile f(path);
if (f.open(IO_WriteOnly))
{
QTextStream t(&f);
dir->writeDepGraph(t);
}
f.close();
QCString imgExt = Config_getEnum("DOT_IMAGE_FORMAT");
QCString outFile = QCString(dirName)+"/"+
dir->getOutputFileBase()+"_dep."+imgExt;
DotRunner dotRun(path);
dotRun.addJob(imgExt,outFile);
dotRun.run();
//QCString dotArgs(4096);
//dotArgs.sprintf("%s -Tgif -o %s",path.data(),outFile.data());
//if (portable_system(Config_getString("DOT_PATH")+"dot",dotArgs,FALSE)!=0)
//{
// err("Problems running dot. Check your installation!\n");
//}
}
out << "</body></html>";
}
htmlPage.close();
}
示例11: computeDirDependencies
void computeDirDependencies()
{
DirDef *dir;
DirSDict::Iterator sdi(*Doxygen::directories);
// compute nesting level for each directory
for (sdi.toFirst();(dir=sdi.current());++sdi)
{
dir->setLevel();
}
// compute uses dependencies between directories
for (sdi.toFirst();(dir=sdi.current());++sdi)
{
//printf("computeDependencies for %s: #dirs=%d\n",dir->name().data(),Doxygen::directories.count());
dir->computeDependencies();
}
#if 0
printf("-------------------------------------------------------------\n");
// print dependencies (for debugging)
for (sdi.toFirst();(dir=sdi.current());++sdi)
{
if (dir->usedDirs())
{
QDictIterator<UsedDir> udi(*dir->usedDirs());
UsedDir *usedDir;
for (udi.toFirst();(usedDir=udi.current());++udi)
{
printf("%s depends on %s due to ",
dir->shortName().data(),usedDir->dir()->shortName().data());
QDictIterator<FileDef> fdi(usedDir->files());
FileDef *fd;
for (fdi.toFirst();(fd=fdi.current());++fdi)
{
printf("%s ",fd->name().data());
}
printf("\n");
}
}
}
printf("^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^\n");
#endif
}
示例12: computeCommonDirPrefix
/** In order to create stable, but unique directory names,
* we compute the common part of the path shared by all directories.
*/
static void computeCommonDirPrefix()
{
QCString path;
DirDef *dir;
DirSDict::Iterator sdi(*Doxygen::directories);
if (Doxygen::directories->count()>0) // we have at least one dir
{
// start will full path of first dir
sdi.toFirst();
dir=sdi.current();
path=dir->name();
int i=path.findRev('/',path.length()-2);
path=path.left(i+1);
bool done=FALSE;
if (i==-1)
{
path="";
}
else
{
while (!done)
{
int l = path.length();
int count=0;
for (sdi.toFirst();(dir=sdi.current());++sdi)
{
QCString dirName = dir->name();
if (dirName.length()>path.length())
{
if (qstrncmp(dirName,path,l)!=0) // dirName does not start with path
{
int i=path.findRev('/',l-2);
if (i==-1) // no unique prefix -> stop
{
path="";
done=TRUE;
}
else // restart with shorter path
{
path=path.left(i+1);
break;
}
}
}
else // dir is shorter than path -> take path of dir as new start
{
path=dir->name();
l=path.length();
int i=path.findRev('/',l-2);
if (i==-1) // no unique prefix -> stop
{
path="";
done=TRUE;
}
else // restart with shorter path
{
path=path.left(i+1);
}
break;
}
count++;
}
if (count==Doxygen::directories->count())
// path matches for all directories -> found the common prefix
{
done=TRUE;
}
}
}
}
for (sdi.toFirst();(dir=sdi.current());++sdi)
{
QCString diskName = dir->name().right(dir->name().length()-path.length());
dir->setDiskName(diskName);
//printf("set disk name: %s -> %s\n",dir->name().data(),diskName.data());
}
}
示例13: convertToXML
void GroupDef::writeTagFile(FTextStream &tagFile)
{
tagFile << " <compound kind=\"group\">" << endl;
tagFile << " <name>" << convertToXML(name()) << "</name>" << endl;
tagFile << " <title>" << convertToXML(title) << "</title>" << endl;
tagFile << " <filename>" << convertToXML(getOutputFileBase()) << Doxygen::htmlFileExtension << "</filename>" << endl;
QListIterator<LayoutDocEntry> eli(
LayoutDocManager::instance().docEntries(LayoutDocManager::Group));
LayoutDocEntry *lde;
for (eli.toFirst();(lde=eli.current());++eli)
{
switch (lde->kind())
{
case LayoutDocEntry::GroupClasses:
{
if (classSDict)
{
SDict<ClassDef>::Iterator ci(*classSDict);
ClassDef *cd;
for (ci.toFirst();(cd=ci.current());++ci)
{
if (cd->isLinkableInProject())
{
tagFile << " <class kind=\"" << cd->compoundTypeString()
<< "\">" << convertToXML(cd->name()) << "</class>" << endl;
}
}
}
}
break;
case LayoutDocEntry::GroupNamespaces:
{
if (namespaceSDict)
{
SDict<NamespaceDef>::Iterator ni(*namespaceSDict);
NamespaceDef *nd;
for (ni.toFirst();(nd=ni.current());++ni)
{
if (nd->isLinkableInProject())
{
tagFile << " <namespace>" << convertToXML(nd->name())
<< "</namespace>" << endl;
}
}
}
}
break;
case LayoutDocEntry::GroupFiles:
{
if (fileList)
{
QListIterator<FileDef> it(*fileList);
FileDef *fd;
for (;(fd=it.current());++it)
{
if (fd->isLinkableInProject())
{
tagFile << " <file>" << convertToXML(fd->name()) << "</file>" << endl;
}
}
}
}
break;
case LayoutDocEntry::GroupPageDocs:
{
if (pageDict)
{
PageSDict::Iterator pdi(*pageDict);
PageDef *pd=0;
for (pdi.toFirst();(pd=pdi.current());++pdi)
{
QCString pageName = pd->getOutputFileBase();
if (pd->isLinkableInProject())
{
tagFile << " <page>" << convertToXML(pageName) << "</page>" << endl;
}
}
}
}
break;
case LayoutDocEntry::GroupDirs:
{
if (dirList)
{
QListIterator<DirDef> it(*dirList);
DirDef *dd;
for (;(dd=it.current());++it)
{
if (dd->isLinkableInProject())
{
tagFile << " <dir>" << convertToXML(dd->displayName()) << "</dir>" << endl;
}
}
}
}
break;
case LayoutDocEntry::GroupNestedGroups:
{
if (groupList)
{
//.........这里部分代码省略.........
示例14: generateSqlite3
void generateSqlite3()
{
// + classes
// + namespaces
// + files
// + groups
// + related pages
// + examples
// + main page
QCString outputDirectory = Config_getString("OUTPUT_DIRECTORY");
QDir sqlite3Dir(outputDirectory);
sqlite3 *db;
sqlite3_initialize();
int rc = sqlite3_open_v2(outputDirectory+"/doxygen_sqlite3.db", &db, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, 0);
if (rc != SQLITE_OK)
{
sqlite3_close(db);
msg("database open failed: %s\n", "doxygen_sqlite3.db");
return;
}
beginTransaction(db);
pragmaTuning(db);
if (-1==initializeSchema(db))
return;
if ( -1 == prepareStatements(db) )
{
err("sqlite generator: prepareStatements failed!");
return;
}
// + classes
ClassSDict::Iterator cli(*Doxygen::classSDict);
ClassDef *cd;
for (cli.toFirst();(cd=cli.current());++cli)
{
msg("Generating Sqlite3 output for class %s\n",cd->name().data());
generateSqlite3ForClass(db,cd);
}
// + namespaces
NamespaceSDict::Iterator nli(*Doxygen::namespaceSDict);
NamespaceDef *nd;
for (nli.toFirst();(nd=nli.current());++nli)
{
msg("Generating Sqlite3 output for namespace %s\n",nd->name().data());
generateSqlite3ForNamespace(db,nd);
}
// + files
FileNameListIterator fnli(*Doxygen::inputNameList);
FileName *fn;
for (;(fn=fnli.current());++fnli)
{
FileNameIterator fni(*fn);
FileDef *fd;
for (;(fd=fni.current());++fni)
{
msg("Generating Sqlite3 output for file %s\n",fd->name().data());
generateSqlite3ForFile(db,fd);
}
}
// + groups
GroupSDict::Iterator gli(*Doxygen::groupSDict);
GroupDef *gd;
for (;(gd=gli.current());++gli)
{
msg("Generating Sqlite3 output for group %s\n",gd->name().data());
generateSqlite3ForGroup(db,gd);
}
// + page
{
PageSDict::Iterator pdi(*Doxygen::pageSDict);
PageDef *pd=0;
for (pdi.toFirst();(pd=pdi.current());++pdi)
{
msg("Generating Sqlite3 output for page %s\n",pd->name().data());
generateSqlite3ForPage(db,pd,FALSE);
}
}
// + dirs
{
DirDef *dir;
DirSDict::Iterator sdi(*Doxygen::directories);
for (sdi.toFirst();(dir=sdi.current());++sdi)
{
msg("Generating Sqlite3 output for dir %s\n",dir->name().data());
generateSqlite3ForDir(db,dir);
}
}
// + examples
{
PageSDict::Iterator pdi(*Doxygen::exampleSDict);
PageDef *pd=0;
//.........这里部分代码省略.........