Blame src/entry.h

Packit Service 50c9f2
/******************************************************************************
Packit Service 50c9f2
 *
Packit Service 50c9f2
 * 
Packit Service 50c9f2
 *
Packit Service 50c9f2
 * Copyright (C) 1997-2015 by Dimitri van Heesch.
Packit Service 50c9f2
 *
Packit Service 50c9f2
 * Permission to use, copy, modify, and distribute this software and its
Packit Service 50c9f2
 * documentation under the terms of the GNU General Public License is hereby 
Packit Service 50c9f2
 * granted. No representations are made about the suitability of this software 
Packit Service 50c9f2
 * for any purpose. It is provided "as is" without express or implied warranty.
Packit Service 50c9f2
 * See the GNU General Public License for more details.
Packit Service 50c9f2
 *
Packit Service 50c9f2
 * Documents produced by Doxygen are derivative works derived from the
Packit Service 50c9f2
 * input used in their production; they are not affected by this license.
Packit Service 50c9f2
 *
Packit Service 50c9f2
 */
Packit Service 50c9f2
Packit Service 50c9f2
#ifndef ENTRY_H
Packit Service 50c9f2
#define ENTRY_H
Packit Service 50c9f2
Packit Service 50c9f2
#include "types.h"
Packit Service 50c9f2
Packit Service 50c9f2
#include <qlist.h>
Packit Service 50c9f2
#include <qgstring.h>
Packit Service 50c9f2
Packit Service 50c9f2
struct SectionInfo;
Packit Service 50c9f2
class QFile;
Packit Service 50c9f2
class EntryNav;
Packit Service 50c9f2
class FileDef;
Packit Service 50c9f2
class FileStorage;
Packit Service 50c9f2
class StorageIntf;
Packit Service 50c9f2
class ArgumentList;
Packit Service 50c9f2
struct ListItemInfo;
Packit Service 50c9f2
Packit Service 50c9f2
/** This class stores information about an inheritance relation
Packit Service 50c9f2
 */ 
Packit Service 50c9f2
struct BaseInfo 
Packit Service 50c9f2
{
Packit Service 50c9f2
  /*! Creates an object representing an inheritance relation */
Packit Service 50c9f2
  BaseInfo(const char *n,Protection p,Specifier v) : 
Packit Service 50c9f2
    name(n),prot(p),virt(v) {}
Packit Service 50c9f2
  QCString   name; //!< the name of the base class
Packit Service 50c9f2
  Protection prot; //!< inheritance type
Packit Service 50c9f2
  Specifier  virt; //!< virtualness
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
/** This struct is used to capture the tag file information 
Packit Service 50c9f2
 *  for an Entry. 
Packit Service 50c9f2
 */
Packit Service 50c9f2
struct TagInfo 
Packit Service 50c9f2
{
Packit Service 50c9f2
  QCString tagName;
Packit Service 50c9f2
  QCString fileName;
Packit Service 50c9f2
  QCString anchor;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
/** Represents an unstructured piece of information, about an
Packit Service 50c9f2
 *  entity found in the sources. 
Packit Service 50c9f2
 *
Packit Service 50c9f2
 *  parseMain() in scanner.l will generate a tree of these
Packit Service 50c9f2
 *  entries.
Packit Service 50c9f2
 */
Packit Service 50c9f2
class Entry
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
Packit Service 50c9f2
    /*! Kind of entries that are supported */
Packit Service 50c9f2
    enum Sections { 
Packit Service 50c9f2
      CLASS_SEC        = 0x00000001, 
Packit Service 50c9f2
      NAMESPACE_SEC    = 0x00000010,
Packit Service 50c9f2
      COMPOUND_MASK    = CLASS_SEC,
Packit Service 50c9f2
      SCOPE_MASK       = COMPOUND_MASK | NAMESPACE_SEC,
Packit Service 50c9f2
      
Packit Service 50c9f2
      CLASSDOC_SEC     = 0x00000800, 
Packit Service 50c9f2
      STRUCTDOC_SEC    = 0x00001000,
Packit Service 50c9f2
      UNIONDOC_SEC     = 0x00002000,
Packit Service 50c9f2
      EXCEPTIONDOC_SEC = 0x00004000,
Packit Service 50c9f2
      NAMESPACEDOC_SEC = 0x00008000,
Packit Service 50c9f2
      INTERFACEDOC_SEC = 0x00010000,
Packit Service 50c9f2
      PROTOCOLDOC_SEC  = 0x00020000,
Packit Service 50c9f2
      CATEGORYDOC_SEC  = 0x00040000,
Packit Service 50c9f2
      SERVICEDOC_SEC   = 0x00080000,
Packit Service 50c9f2
      SINGLETONDOC_SEC = 0x00100000,
Packit Service 50c9f2
      COMPOUNDDOC_MASK = CLASSDOC_SEC | STRUCTDOC_SEC | UNIONDOC_SEC | 
Packit Service 50c9f2
                         INTERFACEDOC_SEC | EXCEPTIONDOC_SEC | PROTOCOLDOC_SEC |
Packit Service 50c9f2
                         CATEGORYDOC_SEC | SERVICEDOC_SEC | SINGLETONDOC_SEC,
Packit Service 50c9f2
Packit Service 50c9f2
      SOURCE_SEC       = 0x00400000,
Packit Service 50c9f2
      HEADER_SEC       = 0x00800000,
Packit Service 50c9f2
      FILE_MASK        = SOURCE_SEC | HEADER_SEC,
Packit Service 50c9f2
Packit Service 50c9f2
      ENUMDOC_SEC      = 0x01000000,
Packit Service 50c9f2
      ENUM_SEC         = 0x02000000,
Packit Service 50c9f2
      EMPTY_SEC        = 0x03000000, 
Packit Service 50c9f2
      PAGEDOC_SEC      = 0x04000000, 
Packit Service 50c9f2
      VARIABLE_SEC     = 0x05000000,
Packit Service 50c9f2
      FUNCTION_SEC     = 0x06000000,
Packit Service 50c9f2
      TYPEDEF_SEC      = 0x07000000,
Packit Service 50c9f2
      MEMBERDOC_SEC    = 0x08000000, 
Packit Service 50c9f2
      OVERLOADDOC_SEC  = 0x09000000,
Packit Service 50c9f2
      EXAMPLE_SEC      = 0x0a000000, 
Packit Service 50c9f2
      VARIABLEDOC_SEC  = 0x0b000000,
Packit Service 50c9f2
      FILEDOC_SEC      = 0x0c000000,
Packit Service 50c9f2
      DEFINEDOC_SEC    = 0x0d000000,
Packit Service 50c9f2
      INCLUDE_SEC      = 0x0e000000,
Packit Service 50c9f2
      DEFINE_SEC       = 0x0f000000,
Packit Service 50c9f2
      GROUPDOC_SEC     = 0x10000000,
Packit Service 50c9f2
      USINGDIR_SEC     = 0x11000000,
Packit Service 50c9f2
      MAINPAGEDOC_SEC  = 0x12000000,
Packit Service 50c9f2
      MEMBERGRP_SEC    = 0x13000000,
Packit Service 50c9f2
      USINGDECL_SEC    = 0x14000000,
Packit Service 50c9f2
      PACKAGE_SEC      = 0x15000000,
Packit Service 50c9f2
      PACKAGEDOC_SEC   = 0x16000000,
Packit Service 50c9f2
      OBJCIMPL_SEC     = 0x17000000,
Packit Service 50c9f2
      DIRDOC_SEC       = 0x18000000
Packit Service 50c9f2
      ,EXPORTED_INTERFACE_SEC = 0x19000000
Packit Service 50c9f2
      ,INCLUDED_SERVICE_SEC = 0x1A000000
Packit Service 50c9f2
    };
Packit Service 50c9f2
Packit Service 50c9f2
    // class specifiers (add new items to the end)
Packit Service 50c9f2
    static const uint64 Template        = (1ULL<<0);
Packit Service 50c9f2
    static const uint64 Generic         = (1ULL<<1);
Packit Service 50c9f2
    static const uint64 Ref             = (1ULL<<2);
Packit Service 50c9f2
    static const uint64 Value           = (1ULL<<3);
Packit Service 50c9f2
    static const uint64 Interface       = (1ULL<<4);
Packit Service 50c9f2
    static const uint64 Struct          = (1ULL<<5);
Packit Service 50c9f2
    static const uint64 Union           = (1ULL<<6);
Packit Service 50c9f2
    static const uint64 Exception       = (1ULL<<7);
Packit Service 50c9f2
    static const uint64 Protocol        = (1ULL<<8);
Packit Service 50c9f2
    static const uint64 Category        = (1ULL<<9);
Packit Service 50c9f2
    static const uint64 SealedClass     = (1ULL<<10);
Packit Service 50c9f2
    static const uint64 AbstractClass   = (1ULL<<11);
Packit Service 50c9f2
    static const uint64 Enum            = (1ULL<<12); // for Java-style enums
Packit Service 50c9f2
    static const uint64 Service         = (1ULL<<13); // UNO IDL
Packit Service 50c9f2
    static const uint64 Singleton       = (1ULL<<14); // UNO IDL
Packit Service 50c9f2
    static const uint64 ForwardDecl     = (1ULL<<15); // forward declarad template classes
Packit Service 50c9f2
Packit Service 50c9f2
    // member specifiers (add new items to the beginning)
Packit Service 50c9f2
    static const uint64 PrivateGettable     = (1ULL<<20); // C# private getter
Packit Service 50c9f2
    static const uint64 ProtectedGettable   = (1ULL<<21); // C# protected getter
Packit Service 50c9f2
    static const uint64 PrivateSettable     = (1ULL<<22); // C# private setter
Packit Service 50c9f2
    static const uint64 ProtectedSettable   = (1ULL<<23); // C# protected setter
Packit Service 50c9f2
    static const uint64 Inline          = (1ULL<<24);
Packit Service 50c9f2
    static const uint64 Explicit        = (1ULL<<25);
Packit Service 50c9f2
    static const uint64 Mutable         = (1ULL<<26);
Packit Service 50c9f2
    static const uint64 Settable        = (1ULL<<27);
Packit Service 50c9f2
    static const uint64 Gettable        = (1ULL<<28);
Packit Service 50c9f2
    static const uint64 Readable        = (1ULL<<29);
Packit Service 50c9f2
    static const uint64 Writable        = (1ULL<<30);
Packit Service 50c9f2
    static const uint64 Final           = (1ULL<<31);
Packit Service 50c9f2
    static const uint64 Abstract        = (1ULL<<32);
Packit Service 50c9f2
    static const uint64 Addable         = (1ULL<<33);
Packit Service 50c9f2
    static const uint64 Removable       = (1ULL<<34);
Packit Service 50c9f2
    static const uint64 Raisable        = (1ULL<<35);
Packit Service 50c9f2
    static const uint64 Override        = (1ULL<<36);
Packit Service 50c9f2
    static const uint64 New             = (1ULL<<37);
Packit Service 50c9f2
    static const uint64 Sealed          = (1ULL<<38);
Packit Service 50c9f2
    static const uint64 Initonly        = (1ULL<<39);
Packit Service 50c9f2
    static const uint64 Optional        = (1ULL<<40);
Packit Service 50c9f2
    static const uint64 Required        = (1ULL<<41);
Packit Service 50c9f2
    static const uint64 NonAtomic       = (1ULL<<42);
Packit Service 50c9f2
    static const uint64 Copy            = (1ULL<<43);
Packit Service 50c9f2
    static const uint64 Retain          = (1ULL<<44);
Packit Service 50c9f2
    static const uint64 Assign          = (1ULL<<45);
Packit Service 50c9f2
    static const uint64 Strong          = (1ULL<<46);
Packit Service 50c9f2
    static const uint64 Weak            = (1ULL<<47);
Packit Service 50c9f2
    static const uint64 Unretained      = (1ULL<<48);
Packit Service 50c9f2
    static const uint64 Alias           = (1ULL<<49);
Packit Service 50c9f2
    static const uint64 ConstExp        = (1ULL<<50);
Packit Service 50c9f2
    static const uint64 Default         = (1ULL<<51);
Packit Service 50c9f2
    static const uint64 Delete          = (1ULL<<52);
Packit Service 50c9f2
    static const uint64 NoExcept        = (1ULL<<53);
Packit Service 50c9f2
    static const uint64 Attribute       = (1ULL<<54); // UNO IDL attribute
Packit Service 50c9f2
    static const uint64 Property        = (1ULL<<55); // UNO IDL property
Packit Service 50c9f2
    static const uint64 Readonly        = (1ULL<<56); // on UNO IDL attribute or property
Packit Service 50c9f2
    static const uint64 Bound           = (1ULL<<57); // on UNO IDL attribute or property
Packit Service 50c9f2
    static const uint64 Constrained     = (1ULL<<58); // on UNO IDL property
Packit Service 50c9f2
    static const uint64 Transient       = (1ULL<<59); // on UNO IDL property
Packit Service 50c9f2
    static const uint64 MaybeVoid       = (1ULL<<60); // on UNO IDL property
Packit Service 50c9f2
    static const uint64 MaybeDefault    = (1ULL<<61); // on UNO IDL property
Packit Service 50c9f2
    static const uint64 MaybeAmbiguous  = (1ULL<<62); // on UNO IDL property
Packit Service 50c9f2
    static const uint64 Published       = (1ULL<<63); // UNO IDL keyword
Packit Service 50c9f2
Packit Service 50c9f2
    enum GroupDocType
Packit Service 50c9f2
    {
Packit Service 50c9f2
      GROUPDOC_NORMAL,        //!< defgroup
Packit Service 50c9f2
      GROUPDOC_ADD,           //!< addgroup
Packit Service 50c9f2
      GROUPDOC_WEAK           //!< weakgroup
Packit Service 50c9f2
    };                        //!< kind of group
Packit Service 50c9f2
Packit Service 50c9f2
    Entry();
Packit Service 50c9f2
    Entry(const Entry &);
Packit Service 50c9f2
   ~Entry();
Packit Service 50c9f2
Packit Service 50c9f2
    /*! Returns the static size of the Entry (so excluding any dynamic memory) */
Packit Service 50c9f2
    int getSize();
Packit Service 50c9f2
Packit Service 50c9f2
    void addSpecialListItem(const char *listName,int index);
Packit Service 50c9f2
    void createNavigationIndex(EntryNav *rootNav,FileStorage *storage,FileDef *fd);
Packit Service 50c9f2
Packit Service 50c9f2
    // while parsing a file these function can be used to navigate/build the tree
Packit Service 50c9f2
    void setParent(Entry *parent) { m_parent = parent; }
Packit Service 50c9f2
Packit Service 50c9f2
    /*! Returns the parent for this Entry or 0 if this entry has no parent. */
Packit Service 50c9f2
    Entry *parent() const { return m_parent; }
Packit Service 50c9f2
Packit Service 50c9f2
    /*! Returns the list of children for this Entry 
Packit Service 50c9f2
     *  @see addSubEntry() and removeSubEntry()
Packit Service 50c9f2
     */
Packit Service 50c9f2
    const QList<Entry> *children() const { return m_sublist; }
Packit Service 50c9f2
Packit Service 50c9f2
    /*! Adds entry \a e as a child to this entry */
Packit Service 50c9f2
    void addSubEntry (Entry* e) ;
Packit Service 50c9f2
Packit Service 50c9f2
    /*! Removes entry \a e from the list of children. 
Packit Service 50c9f2
     *  Returns a pointer to the entry or 0 if the entry was not a child. 
Packit Service 50c9f2
     *  Note the entry will not be deleted.
Packit Service 50c9f2
     */ 
Packit Service 50c9f2
    Entry *removeSubEntry(Entry *e);
Packit Service 50c9f2
Packit Service 50c9f2
    /*! Restore the state of this Entry to the default value it has
Packit Service 50c9f2
     *  at construction time. 
Packit Service 50c9f2
     */
Packit Service 50c9f2
    void reset();
Packit Service 50c9f2
Packit Service 50c9f2
    /*! Serialize this entry to a persistent storage stream. */
Packit Service 50c9f2
    void marshall(StorageIntf *);
Packit Service 50c9f2
Packit Service 50c9f2
    /*! Reinitialize this entry from a persistent storage stream. */
Packit Service 50c9f2
    void unmarshall(StorageIntf *);
Packit Service 50c9f2
Packit Service 50c9f2
  public:
Packit Service 50c9f2
Packit Service 50c9f2
    // identification
Packit Service 50c9f2
    int          section;     //!< entry type (see Sections);
Packit Service 50c9f2
    QCString	 type;        //!< member type 
Packit Service 50c9f2
    QCString	 name;        //!< member name
Packit Service 50c9f2
    TagInfo     *tagInfo;     //!< tag file info
Packit Service 50c9f2
Packit Service 50c9f2
    // content
Packit Service 50c9f2
    Protection protection;    //!< class protection
Packit Service 50c9f2
    MethodTypes mtype;        //!< signal, slot, (dcop) method, or property?
Packit Service 50c9f2
    uint64 spec;              //!< class/member specifiers
Packit Service 50c9f2
    int  initLines;           //!< define/variable initializer lines to show 
Packit Service 50c9f2
    bool stat;                //!< static ?
Packit Service 50c9f2
    bool explicitExternal;    //!< explicitly defined as external?
Packit Service 50c9f2
    bool proto;               //!< prototype ?
Packit Service 50c9f2
    bool subGrouping;         //!< automatically group class members?
Packit Service 50c9f2
    bool callGraph;           //!< do we need to draw the call graph?
Packit Service 50c9f2
    bool callerGraph;         //!< do we need to draw the caller graph?
Packit Service 50c9f2
    Specifier    virt;        //!< virtualness of the entry 
Packit Service 50c9f2
    QCString     args;        //!< member argument string
Packit Service 50c9f2
    QCString     bitfields;   //!< member's bit fields
Packit Service 50c9f2
    ArgumentList *argList;    //!< member arguments as a list
Packit Service 50c9f2
    QList<ArgumentList> *tArgLists; //!< template argument declarations
Packit Service 50c9f2
    QGString	 program;     //!< the program text
Packit Service 50c9f2
    QGString     initializer; //!< initial value (for variables)
Packit Service 50c9f2
    QCString     includeFile; //!< include file (2 arg of \\class, must be unique)
Packit Service 50c9f2
    QCString     includeName; //!< include name (3 arg of \\class)
Packit Service 50c9f2
    QCString     doc;         //!< documentation block (partly parsed)
Packit Service 50c9f2
    int          docLine;     //!< line number at which the documentation was found
Packit Service 50c9f2
    QCString     docFile;     //!< file in which the documentation was found
Packit Service 50c9f2
    QCString     brief;       //!< brief description (doc block)
Packit Service 50c9f2
    int          briefLine;   //!< line number at which the brief desc. was found
Packit Service 50c9f2
    QCString     briefFile;   //!< file in which the brief desc. was found
Packit Service 50c9f2
    QCString     inbodyDocs;  //!< documentation inside the body of a function
Packit Service 50c9f2
    int          inbodyLine;  //!< line number at which the body doc was found
Packit Service 50c9f2
    QCString     inbodyFile;  //!< file in which the body doc was found
Packit Service 50c9f2
    QCString     relates;     //!< related class (doc block)
Packit Service 50c9f2
    RelatesType  relatesType; //!< how relates is handled
Packit Service 50c9f2
    QCString     read;        //!< property read accessor
Packit Service 50c9f2
    QCString     write;       //!< property write accessor
Packit Service 50c9f2
    QCString     inside;      //!< name of the class in which documents are found
Packit Service 50c9f2
    QCString     exception;   //!< throw specification
Packit Service 50c9f2
    ArgumentList *typeConstr; //!< where clause (C#) for type constraints
Packit Service 50c9f2
    int          bodyLine;    //!< line number of the definition in the source
Packit Service 50c9f2
    int          endBodyLine; //!< line number where the definition ends
Packit Service 50c9f2
    int          mGrpId;      //!< member group id
Packit Service 50c9f2
    QList<BaseInfo> *extends; //!< list of base classes    
Packit Service 50c9f2
    QList<Grouping> *groups;  //!< list of groups this entry belongs to
Packit Service 50c9f2
    QList<SectionInfo> *anchors; //!< list of anchors defined in this entry
Packit Service 50c9f2
    QCString	fileName;     //!< file this entry was extracted from
Packit Service 50c9f2
    int		startLine;    //!< start line of entry in the source
Packit Service 50c9f2
    int		startColumn;  //!< start column of entry in the source
Packit Service 50c9f2
    QList<ListItemInfo> *sli; //!< special lists (test/todo/bug/deprecated/..) this entry is in
Packit Service 50c9f2
    SrcLangExt  lang;         //!< programming language in which this entry was found
Packit Service 50c9f2
    bool        hidden;       //!< does this represent an entity that is hidden from the output
Packit Service 50c9f2
    bool        artificial;   //!< Artificially introduced item
Packit Service 50c9f2
    GroupDocType groupDocType;
Packit Service 50c9f2
    QCString    id;           //!< libclang id
Packit Service 50c9f2
Packit Service 50c9f2
Packit Service 50c9f2
    static int  num;          //!< counts the total number of entries
Packit Service 50c9f2
Packit Service 50c9f2
    /// return the command name used to define GROUPDOC_SEC
Packit Service 50c9f2
    const char *groupDocCmd() const
Packit Service 50c9f2
    {
Packit Service 50c9f2
      switch( groupDocType ) 
Packit Service 50c9f2
      {
Packit Service 50c9f2
        case GROUPDOC_NORMAL: return "\\defgroup";
Packit Service 50c9f2
        case GROUPDOC_ADD: return "\\addgroup";
Packit Service 50c9f2
        case GROUPDOC_WEAK: return "\\weakgroup";
Packit Service 50c9f2
        default: return "unknown group command";
Packit Service 50c9f2
      }
Packit Service 50c9f2
    }
Packit Service 50c9f2
    Grouping::GroupPri_t groupingPri() const
Packit Service 50c9f2
    {
Packit Service 50c9f2
      if( section != GROUPDOC_SEC ) 
Packit Service 50c9f2
      {
Packit Service 50c9f2
        return Grouping::GROUPING_LOWEST;
Packit Service 50c9f2
      }
Packit Service 50c9f2
      switch( groupDocType ) 
Packit Service 50c9f2
      {
Packit Service 50c9f2
        case GROUPDOC_NORMAL: return Grouping::GROUPING_AUTO_DEF;
Packit Service 50c9f2
        case GROUPDOC_ADD:    return Grouping::GROUPING_AUTO_ADD;
Packit Service 50c9f2
        case GROUPDOC_WEAK:   return Grouping::GROUPING_AUTO_WEAK;
Packit Service 50c9f2
        default: return Grouping::GROUPING_LOWEST;
Packit Service 50c9f2
      }
Packit Service 50c9f2
    }
Packit Service 50c9f2
Packit Service 50c9f2
  private:  
Packit Service 50c9f2
    void createSubtreeIndex(EntryNav *nav,FileStorage *storage,FileDef *fd);
Packit Service 50c9f2
    Entry         *m_parent;    //!< parent node in the tree
Packit Service 50c9f2
    QList<Entry>  *m_sublist;   //!< entries that are children of this one
Packit Service 50c9f2
    Entry &operator=(const Entry &); 
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
/** Wrapper for a node in the Entry tree.
Packit Service 50c9f2
 *
Packit Service 50c9f2
 *  Allows navigating through the Entry tree and load and storing Entry
Packit Service 50c9f2
 *  objects persistently to disk.
Packit Service 50c9f2
 */
Packit Service 50c9f2
class EntryNav
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    EntryNav(EntryNav *parent,Entry *e);
Packit Service 50c9f2
   ~EntryNav();
Packit Service 50c9f2
    void addChild(EntryNav *);
Packit Service 50c9f2
    bool loadEntry(FileStorage *storage);
Packit Service 50c9f2
    bool saveEntry(Entry *e,FileStorage *storage);
Packit Service 50c9f2
    void setEntry(Entry *e);
Packit Service 50c9f2
    void releaseEntry();
Packit Service 50c9f2
    void changeSection(int section) { m_section = section; }
Packit Service 50c9f2
    void setFileDef(FileDef *fd) { m_fileDef = fd; }
Packit Service 50c9f2
Packit Service 50c9f2
    Entry *entry() const { return m_info; }
Packit Service 50c9f2
    int section() const { return m_section; }
Packit Service 50c9f2
    SrcLangExt lang() const { return m_lang; }
Packit Service 50c9f2
    const QCString &type() const { return m_type; }
Packit Service 50c9f2
    const QCString &name() const { return m_name; }
Packit Service 50c9f2
    TagInfo *tagInfo() const { return m_tagInfo; }
Packit Service 50c9f2
    const QList<EntryNav> *children() const { return m_subList; }
Packit Service 50c9f2
    EntryNav *parent() const { return m_parent; }
Packit Service 50c9f2
    FileDef *fileDef() const { return m_fileDef; }
Packit Service 50c9f2
Packit Service 50c9f2
  private:
Packit Service 50c9f2
Packit Service 50c9f2
    // navigation 
Packit Service 50c9f2
    EntryNav        *m_parent;    //!< parent node in the tree
Packit Service 50c9f2
    QList<EntryNav> *m_subList;   //!< entries that are children of this one
Packit Service 50c9f2
Packit Service 50c9f2
    // identification
Packit Service 50c9f2
    int          m_section;     //!< entry type (see Sections);
Packit Service 50c9f2
    QCString	 m_type;        //!< member type 
Packit Service 50c9f2
    QCString	 m_name;        //!< member name
Packit Service 50c9f2
    TagInfo     *m_tagInfo;      //!< tag file info
Packit Service 50c9f2
    FileDef     *m_fileDef;
Packit Service 50c9f2
    SrcLangExt   m_lang;         //!< programming language in which this entry was found
Packit Service 50c9f2
Packit Service 50c9f2
    Entry       *m_info;
Packit Service 50c9f2
    int64        m_offset;
Packit Service 50c9f2
    bool         m_noLoad;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
Packit Service 50c9f2
typedef QList<Entry> EntryList;
Packit Service 50c9f2
typedef QListIterator<Entry> EntryListIterator;
Packit Service 50c9f2
Packit Service 50c9f2
typedef QList<EntryNav> EntryNavList;
Packit Service 50c9f2
typedef QListIterator<EntryNav> EntryNavListIterator;
Packit Service 50c9f2
Packit Service 50c9f2
#endif