Doxygen
Loading...
Searching...
No Matches
NamespaceLinkedRefMap Class Referencefinal

#include <src/namespacedef.h>

Inheritance diagram for NamespaceLinkedRefMap:
Collaboration diagram for NamespaceLinkedRefMap:

Public Member Functions

void writeDeclaration (OutputList &ol, const DString &title, bool isConstantGroup=false, bool localName=false)
bool declVisible (bool isContantGroup) const
Public Member Functions inherited from LinkedRefMap< const NamespaceDef >
const const NamespaceDeffind (const std::string &key) const
bool add (const char *k, const NamespaceDef *obj)
bool prepend (const char *k, const NamespaceDef *obj)
bool del (const DString &key)
Ptroperator[] (size_t pos)
iterator begin ()
iterator end ()
reverse_iterator rbegin ()
reverse_iterator rend ()
bool empty () const
size_t size () const
void clear ()

Additional Inherited Members

Public Types inherited from LinkedRefMap< const NamespaceDef >
using Ptr
using Vec
using iterator
using const_iterator
using reverse_iterator
using const_reverse_iterator

Detailed Description

Definition at line 45 of file namespacedef.h.

Member Function Documentation

◆ declVisible()

bool NamespaceLinkedRefMap::declVisible ( bool isContantGroup) const

Definition at line 1434 of file namespacedef.cpp.

1435{
1436 bool found=false;
1437 for (const auto &nd : *this)
1438 {
1439 if (nd->isLinkable() && nd->hasDocumentation())
1440 {
1441 SrcLangExt lang = nd->getLanguage();
1442 if (SrcLangExt::IDL==lang)
1443 {
1444 if (isConstantGroup == nd->isConstantGroup())
1445 {
1446 found=true;
1447 break;
1448 }
1449 }
1450 else if (!isConstantGroup) // ensure we only get extra section in IDL
1451 {
1452 if (nd->isConstantGroup())
1453 {
1454 err("Internal inconsistency: constant group but not IDL?\n");
1455 }
1456 found=true;
1457 break;
1458 }
1459 }
1460 }
1461 return found;
1462}
#define err(fmt,...)
Definition message.h:127
SrcLangExt
Definition types.h:207

References err.

Referenced by writeDeclaration(), FileDefImpl::writeSummaryLinks(), GroupDefImpl::writeSummaryLinks(), and NamespaceDefImpl::writeSummaryLinks().

◆ writeDeclaration()

void NamespaceLinkedRefMap::writeDeclaration ( OutputList & ol,
const DString & title,
bool isConstantGroup = false,
bool localName = false )

Definition at line 1464 of file namespacedef.cpp.

1466{
1467
1468
1469 if (empty()) return; // no namespaces in the list
1470
1471 if (Config_getBool(OPTIMIZE_OUTPUT_VHDL)) return;
1472
1473 if (!declVisible(isConstantGroup)) return;
1474
1475 // write list of namespaces
1476 ol.startMemberHeader(isConstantGroup ? "constantgroups" : "namespaces");
1477 //bool javaOpt = Config_getBool(OPTIMIZE_OUTPUT_JAVA);
1478 //bool fortranOpt = Config_getBool(OPTIMIZE_FOR_FORTRAN);
1479 ol.parseText(title);
1480 ol.endMemberHeader();
1481 ol.startMemberList();
1482 for (const auto &nd : *this)
1483 {
1484 if (nd->isLinkable() && nd->hasDocumentation())
1485 {
1486 SrcLangExt lang = nd->getLanguage();
1487 if (lang==SrcLangExt::IDL && (isConstantGroup != nd->isConstantGroup()))
1488 continue; // will be output in another pass, see layout_default.xml
1490 DString name = localName ? nd->localName() : nd->displayName();
1491 DString anc = nd->anchor();
1492 if (anc.empty()) anc=name; else anc.prepend(name+"_");
1494 DString ct = nd->compoundTypeString();
1495 ol.docify(ct);
1496 ol.docify(" ");
1497 ol.insertMemberAlign();
1498 ol.writeObjectLink(nd->getReference(),nd->getOutputFileBase(),DString(),name);
1500 if (!nd->briefDescription().empty() && Config_getBool(BRIEF_MEMBER_DESC))
1501 {
1502 ol.startMemberDescription(nd->getOutputFileBase());
1503 ol.generateDoc(nd->briefFile(),
1504 nd->briefLine(),
1505 nd,
1506 nullptr,
1507 nd->briefDescription(),
1508 DocOptions()
1509 .setSingleLine(true));
1511 }
1512 ol.endMemberDeclaration(DString(),DString());
1513 }
1514 }
1515 ol.endMemberList();
1516}
bool empty() const
Returns true iff the string is empty (std::string compatible alias for isEmpty()).
Definition dstring.h:148
DString & prepend(const char *s)
Definition dstring.h:515
bool declVisible(bool isContantGroup) const
void startMemberDeclaration()
Definition outputlist.h:565
void parseText(const DString &textStr)
void writeObjectLink(const DString &ref, const DString &file, const DString &anchor, const DString &name)
Definition outputlist.h:435
void endMemberDescription()
Definition outputlist.h:563
void endMemberDeclaration(const DString &anchor, const DString &inheritId)
Definition outputlist.h:567
void docify(const DString &s)
Definition outputlist.h:433
void startMemberHeader(const DString &anchor, int typ=2)
Definition outputlist.h:465
void insertMemberAlign(bool templ=false)
Definition outputlist.h:513
void startMemberList()
Definition outputlist.h:477
void endMemberItem(OutputGenerator::MemberItemType type)
Definition outputlist.h:491
void endMemberList()
Definition outputlist.h:479
void startMemberItem(const DString &anchor, OutputGenerator::MemberItemType type, const DString &id=DString())
Definition outputlist.h:489
void startMemberDescription(const DString &anchor, const DString &inheritId=DString(), bool typ=false)
Definition outputlist.h:561
void generateDoc(const DString &fileName, int startLine, const Definition *ctx, const MemberDef *md, const DString &docStr, const DocOptions &options)
void endMemberHeader()
Definition outputlist.h:467
#define Config_getBool(name)
Definition config.h:33

References Config_getBool, declVisible(), OutputList::docify(), DString::empty(), LinkedRefMap< const NamespaceDef >::empty(), OutputList::endMemberDeclaration(), OutputList::endMemberDescription(), OutputList::endMemberHeader(), OutputList::endMemberItem(), OutputList::endMemberList(), OutputList::generateDoc(), OutputList::insertMemberAlign(), OutputGenerator::Normal, OutputList::parseText(), DString::prepend(), OutputList::startMemberDeclaration(), OutputList::startMemberDescription(), OutputList::startMemberHeader(), OutputList::startMemberItem(), OutputList::startMemberList(), and OutputList::writeObjectLink().

Referenced by FileDefImpl::writeNamespaceDeclarations(), NamespaceDefImpl::writeNamespaceDeclarations(), and GroupDefImpl::writeNamespaces().


The documentation for this class was generated from the following files: