Esempio n. 1
0
void NamespaceSDict::writeDeclaration(OutputList &ol,const char *title,
                                      bool const isConstantGroup,bool localName)
{


    if (count()==0) return; // no namespaces in the list

    if (Config_getBool("OPTIMIZE_OUTPUT_VHDL")) return;


    SDict<NamespaceDef>::Iterator ni(*this);
    NamespaceDef *nd;
    bool found=FALSE;
    for (ni.toFirst(); (nd=ni.current()) && !found; ++ni)
    {
        if (nd->isLinkable())
        {
            SrcLangExt lang = nd->getLanguage();
            if (SrcLangExt_IDL==lang)
            {
                if (isConstantGroup == nd->isConstantGroup())
                {
                    found=TRUE;
                    break;
                }
            }
            else if (!isConstantGroup) // ensure we only get extra section in IDL
            {
                if (nd->isConstantGroup())
                {
                    err("Internal inconsistency: constant group but not IDL?\n");
                }
                found=TRUE;
                break;
            }
        }
    }
    if (!found) return; // no linkable namespaces in the list

    // write list of namespaces
    ol.startMemberHeader("namespaces");
    //bool javaOpt    = Config_getBool("OPTIMIZE_OUTPUT_JAVA");
    //bool fortranOpt = Config_getBool("OPTIMIZE_FOR_FORTRAN");
    ol.parseText(title);
    ol.endMemberHeader();
    ol.startMemberList();
    for (ni.toFirst(); (nd=ni.current()); ++ni)
    {
        if (nd->isLinkable())
        {
            SrcLangExt lang = nd->getLanguage();
            if (lang==SrcLangExt_IDL && (isConstantGroup != nd->isConstantGroup()))
                continue; // will be output in another pass, see layout_default.xml
            ol.startMemberDeclaration();
            ol.startMemberItem(nd->getOutputFileBase(),0);
            QCString ct = nd->compoundTypeString();
            ol.docify(ct);
            ol.docify(" ");
            ol.insertMemberAlign();
            QCString name;
            if (localName)
            {
                name = nd->localName();
            }
            else
            {
                name = nd->displayName();
            }
            ol.writeObjectLink(nd->getReference(),nd->getOutputFileBase(),0,name);
            ol.endMemberItem();
            if (!nd->briefDescription().isEmpty() && Config_getBool("BRIEF_MEMBER_DESC"))
            {
                ol.startMemberDescription(nd->getOutputFileBase());
                ol.generateDoc(nd->briefFile(),nd->briefLine(),nd,0,nd->briefDescription(),FALSE,FALSE,0,TRUE);
                ol.endMemberDescription();
            }
            ol.endMemberDeclaration(0,0);
        }
    }
    ol.endMemberList();
}
Esempio n. 2
0
void NamespaceSDict::writeDeclaration(OutputList &ol,const char *title,bool localName)
{
 

  if (count()==0) return; // no namespaces in the list

  if (Config_getBool("OPTIMIZE_OUTPUT_VHDL")) return;
 

  SDict<NamespaceDef>::Iterator ni(*this);
  NamespaceDef *nd;
  bool found=FALSE;
  for (ni.toFirst();(nd=ni.current()) && !found;++ni)
  {
    if (nd->isLinkable()) found=TRUE;
  }
  if (!found) return; // no linkable namespaces in the list

  // write list of namespaces
  ol.startMemberHeader("namespaces");
  //bool javaOpt    = Config_getBool("OPTIMIZE_OUTPUT_JAVA");
  //bool fortranOpt = Config_getBool("OPTIMIZE_FOR_FORTRAN");
  ol.parseText(title);
  ol.endMemberHeader();
  ol.startMemberList();
  for (ni.toFirst();(nd=ni.current());++ni)
  {
    if (nd->isLinkable())
    {
      SrcLangExt lang = nd->getLanguage();
      ol.startMemberItem(nd->getOutputFileBase(),0);
      if (lang==SrcLangExt_Java || lang==SrcLangExt_CSharp)
      {
        ol.docify("package ");
      }
      else if (lang==SrcLangExt_Fortran)
      {
        ol.docify("module ");
      }
      else
      {
        ol.docify("namespace ");
      }
      ol.insertMemberAlign();
      QCString name;
      if (localName)
      {
        name = nd->localName();
      }
      else
      {
        name = nd->displayName();
      }
      ol.writeObjectLink(nd->getReference(),nd->getOutputFileBase(),0,name);
      if (!Config_getString("GENERATE_TAGFILE").isEmpty() && !nd->isReference()) 
      {
        Doxygen::tagFile << "    <namespace>" << convertToXML(nd->name()) << "</namespace>" << endl;
      }
      ol.endMemberItem();
      if (!nd->briefDescription().isEmpty() && Config_getBool("BRIEF_MEMBER_DESC"))
      {
        ol.startMemberDescription(nd->getOutputFileBase());
        ol.parseDoc(nd->briefFile(),nd->briefLine(),nd,0,nd->briefDescription(),FALSE,FALSE,0,TRUE);
        ol.endMemberDescription();
      }
    }
  }
  ol.endMemberList();
}