Doxygen
Loading...
Searching...
No Matches
ClassDefImpl::IMPL Class Reference

Private data associated with a ClassDef object. More...

+ Collaboration diagram for ClassDefImpl::IMPL:

Public Member Functions

void init (const QCString &defFileName, const QCString &name, const QCString &ctStr, const QCString &fName)
 
std::unique_ptr< ClassDefImpl::IMPLdeepCopy () const
 

Public Attributes

QCString fileName
 
QCString memberListFileName
 
QCString collabFileName
 
QCString inheritFileName
 
std::unique_ptr< IncludeInfoincInfo
 
BaseClassList inherits
 
BaseClassList inheritedBy
 
FileDeffileDef = nullptr
 
ModuleDefmoduleDef = nullptr
 
MemberNameInfoLinkedMap allMemberNameInfoLinkedMap
 
ArgumentList tempArgs
 
ArgumentList typeConstraints
 
FileList files
 
ExampleList examples
 
ClassDef::CompoundType compType
 
Protection prot
 
ClassLinkedRefMap innerClasses
 
UsesClassList usesImplClassList
 
UsesClassList usedByImplClassList
 
ConstraintClassList constraintClassList
 
TemplateInstanceList templateInstances
 
TemplateNameMap templBaseClassNames
 
const ClassDeftemplateMaster = nullptr
 
QCString className
 
ClassDefcategoryOf = nullptr
 
MemberLists memberLists
 
MemberGroupList memberGroups
 
bool isAbstract = false
 
bool isStatic = false
 
bool membersMerged = false
 
bool isLocal = false
 
bool isTemplArg = false
 
bool subGrouping = false
 
bool usedOnly = false
 Reason of existence is a "use" relation.
 
StringSet vhdlSummaryTitles
 List of titles to use for the summary.
 
bool isSimple = false
 Is this a simple (non-nested) C structure?
 
const MemberDefarrowOperator = nullptr
 Does this class overloaded the -> operator?
 
const ClassDeftagLessRef = nullptr
 
bool isJavaEnum = false
 Does this class represent a Java style enum?
 
TypeSpecifier spec
 
QCString metaData
 
QCString requiresClause
 C++20 requires clause.
 
StringVector qualifiers
 
bool hasCollaborationGraph = false
 
CLASS_GRAPH_t typeInheritanceGraph = CLASS_GRAPH_t::NO
 
bool implicitTemplateInstance = false
 

Detailed Description

Private data associated with a ClassDef object.

Definition at line 654 of file classdef.cpp.

Member Function Documentation

◆ deepCopy()

std::unique_ptr< ClassDefImpl::IMPL > ClassDefImpl::IMPL::deepCopy ( ) const

Definition at line 881 of file classdef.cpp.

882{
883 auto result = std::make_unique<ClassDefImpl::IMPL>();
884
885 result->memberListFileName = memberListFileName;
886 result->collabFileName = collabFileName;
887 result->inheritFileName = inheritFileName;
888 if (incInfo)
889 {
890 result->incInfo = std::make_unique<IncludeInfo>();
891 *(result->incInfo) = *incInfo;
892 }
893 result->inherits = inherits;
894 result->inheritedBy = inheritedBy;
895 result->fileDef = fileDef;
896 result->moduleDef = moduleDef;
897 result->tempArgs = tempArgs;
898 result->typeConstraints = typeConstraints;
899 result->files = files;
900 result->examples = examples;
901 result->compType = compType;
902 result->prot = prot;
903 result->usesImplClassList = usesImplClassList;
904 result->usedByImplClassList = usedByImplClassList;
905 result->constraintClassList = constraintClassList;
906 result->templateInstances = templateInstances;
907 result->templBaseClassNames = templBaseClassNames;
908 result->templateMaster = templateMaster;
909 result->className = className;
910 result->categoryOf = categoryOf;
911 result->isAbstract = isAbstract;
912 result->isStatic = isStatic;
913 result->membersMerged = membersMerged;
914 result->isLocal = isLocal;
915 result->isTemplArg = isTemplArg;
916 result->subGrouping = subGrouping;
917 result->usedOnly = usedOnly;
918 result->vhdlSummaryTitles = vhdlSummaryTitles;
919 result->isSimple = isSimple;
920 result->arrowOperator = arrowOperator;
921 result->tagLessRef = tagLessRef;
922 result->isJavaEnum = isJavaEnum;
923 result->spec = spec;
924 result->metaData = metaData;
925 result->requiresClause = requiresClause;
926 result->qualifiers = qualifiers;
927 result->hasCollaborationGraph = hasCollaborationGraph;
928 result->typeInheritanceGraph = typeInheritanceGraph;
929
930 return result;
931}
ModuleDef * moduleDef
Definition classdef.cpp:699
const MemberDef * arrowOperator
Does this class overloaded the -> operator?
Definition classdef.cpp:789
QCString collabFileName
Definition classdef.cpp:671
BaseClassList inheritedBy
Definition classdef.cpp:688
UsesClassList usesImplClassList
Definition classdef.cpp:731
ArgumentList tempArgs
Definition classdef.cpp:705
bool usedOnly
Reason of existence is a "use" relation.
Definition classdef.cpp:780
TemplateInstanceList templateInstances
Definition classdef.cpp:739
TemplateNameMap templBaseClassNames
Definition classdef.cpp:741
ExampleList examples
Definition classdef.cpp:714
QCString requiresClause
C++20 requires clause.
Definition classdef.cpp:801
CLASS_GRAPH_t typeInheritanceGraph
Definition classdef.cpp:806
ConstraintClassList constraintClassList
Definition classdef.cpp:734
ClassDef * categoryOf
Definition classdef.cpp:752
UsesClassList usedByImplClassList
Definition classdef.cpp:732
BaseClassList inherits
Definition classdef.cpp:684
bool isJavaEnum
Does this class represent a Java style enum?
Definition classdef.cpp:794
ArgumentList typeConstraints
Definition classdef.cpp:708
TypeSpecifier spec
Definition classdef.cpp:796
StringSet vhdlSummaryTitles
List of titles to use for the summary.
Definition classdef.cpp:783
std::unique_ptr< IncludeInfo > incInfo
Definition classdef.cpp:679
ClassDef::CompoundType compType
Definition classdef.cpp:717
const ClassDef * tagLessRef
Definition classdef.cpp:791
StringVector qualifiers
Definition classdef.cpp:803
QCString inheritFileName
Definition classdef.cpp:674
const ClassDef * templateMaster
Definition classdef.cpp:744
QCString memberListFileName
Definition classdef.cpp:668
bool isSimple
Is this a simple (non-nested) C structure?
Definition classdef.cpp:786

References arrowOperator, categoryOf, className, collabFileName, compType, constraintClassList, examples, fileDef, files, hasCollaborationGraph, incInfo, inheritedBy, inheritFileName, inherits, isAbstract, isJavaEnum, isLocal, isSimple, isStatic, isTemplArg, memberListFileName, membersMerged, metaData, moduleDef, prot, qualifiers, requiresClause, spec, subGrouping, tagLessRef, tempArgs, templateInstances, templateMaster, templBaseClassNames, typeConstraints, typeInheritanceGraph, usedByImplClassList, usedOnly, usesImplClassList, and vhdlSummaryTitles.

◆ init()

void ClassDefImpl::IMPL::init ( const QCString & defFileName,
const QCString & name,
const QCString & ctStr,
const QCString & fName )

Definition at line 811 of file classdef.cpp.

813{
814 if (!fName.isEmpty())
815 {
817 }
818 else
819 {
820 fileName=ctStr+name;
821 }
823 //nspace=nullptr;
824 fileDef=nullptr;
825 moduleDef=nullptr;
826 subGrouping=Config_getBool(SUBGROUPING);
827 templateMaster =nullptr;
829 isStatic = FALSE;
832 categoryOf = nullptr;
833 usedOnly = FALSE;
834 isSimple = Config_getBool(INLINE_SIMPLE_STRUCTS);
835 arrowOperator = nullptr;
836 tagLessRef = nullptr;
837 spec=TypeSpecifier();
838 //QCString ns;
839 //extractNamespaceName(name,className,ns);
840 //printf("m_name=%s m_className=%s ns=%s\n",qPrint(m_name),qPrint(m_className),qPrint(ns));
841
842 // we cannot use getLanguage at this point, as setLanguage has not been called.
843 SrcLangExt lang = getLanguageFromFileName(defFileName);
844 if ((lang==SrcLangExt::Cpp || lang==SrcLangExt::ObjC) && guessSection(defFileName).isSource())
845 {
847 }
848 else
849 {
851 }
852 hasCollaborationGraph = Config_getBool(COLLABORATION_GRAPH);
854}
const QCString & name() const override
bool isEmpty() const
Returns TRUE iff the string is empty.
Definition qcstring.h:150
#define Config_getBool(name)
Definition config.h:33
#define Config_getEnum(name)
Definition config.h:35
#define TRUE
Definition qcstring.h:37
#define FALSE
Definition qcstring.h:34
@ Public
Definition types.h:26
SrcLangExt
Language as given by extension.
Definition types.h:42
SrcLangExt getLanguageFromFileName(const QCString &fileName, SrcLangExt defLang)
Definition util.cpp:5549
QCString stripExtension(const QCString &fName)
Definition util.cpp:5265
EntryType guessSection(const QCString &name)
Definition util.cpp:349

References arrowOperator, categoryOf, Config_getBool, Config_getEnum, Cpp, FALSE, fileDef, fileName, getLanguageFromFileName(), guessSection(), hasCollaborationGraph, isAbstract, QCString::isEmpty(), isLocal, isSimple, isStatic, isTemplArg, membersMerged, moduleDef, DefinitionMixin< ClassDefMutable >::name(), ObjC, prot, Public, spec, stripExtension(), subGrouping, tagLessRef, templateMaster, TRUE, typeInheritanceGraph, and usedOnly.

Member Data Documentation

◆ allMemberNameInfoLinkedMap

MemberNameInfoLinkedMap ClassDefImpl::IMPL::allMemberNameInfoLinkedMap

List of all members (including inherited members)

Definition at line 702 of file classdef.cpp.

◆ arrowOperator

const MemberDef* ClassDefImpl::IMPL::arrowOperator = nullptr

Does this class overloaded the -> operator?

Definition at line 789 of file classdef.cpp.

Referenced by deepCopy(), and init().

◆ categoryOf

ClassDef* ClassDefImpl::IMPL::categoryOf = nullptr

If this class is a Objective-C category, then this points to the class which is extended.

Definition at line 752 of file classdef.cpp.

Referenced by deepCopy(), and init().

◆ className

QCString ClassDefImpl::IMPL::className

local class name which could be a typedef'ed alias name.

Definition at line 747 of file classdef.cpp.

Referenced by deepCopy().

◆ collabFileName

QCString ClassDefImpl::IMPL::collabFileName

file name used for the collaboration diagram

Definition at line 671 of file classdef.cpp.

Referenced by deepCopy().

◆ compType

ClassDef::CompoundType ClassDefImpl::IMPL::compType

Holds the kind of "class" this is.

Definition at line 717 of file classdef.cpp.

Referenced by deepCopy().

◆ constraintClassList

ConstraintClassList ClassDefImpl::IMPL::constraintClassList

Definition at line 734 of file classdef.cpp.

Referenced by deepCopy().

◆ examples

ExampleList ClassDefImpl::IMPL::examples

Examples that use this class

Definition at line 714 of file classdef.cpp.

Referenced by deepCopy().

◆ fileDef

FileDef* ClassDefImpl::IMPL::fileDef = nullptr

Namespace this class is part of (this is the inner most namespace in case of nested namespaces)

File this class is defined in

Definition at line 696 of file classdef.cpp.

Referenced by deepCopy(), and init().

◆ fileName

QCString ClassDefImpl::IMPL::fileName

file name that forms the base for the output file containing the class documentation. For compatibility with Qt (e.g. links via tag files) this name cannot be derived from the class name directly.

Definition at line 665 of file classdef.cpp.

Referenced by init().

◆ files

FileList ClassDefImpl::IMPL::files

Files that were used for generating the class documentation.

Definition at line 711 of file classdef.cpp.

Referenced by deepCopy().

◆ hasCollaborationGraph

bool ClassDefImpl::IMPL::hasCollaborationGraph = false

Definition at line 805 of file classdef.cpp.

Referenced by deepCopy(), and init().

◆ implicitTemplateInstance

bool ClassDefImpl::IMPL::implicitTemplateInstance = false

Definition at line 808 of file classdef.cpp.

◆ incInfo

std::unique_ptr<IncludeInfo> ClassDefImpl::IMPL::incInfo

Include information about the header file should be included in the documentation. 0 by default, set by setIncludeFile().

Definition at line 679 of file classdef.cpp.

Referenced by deepCopy().

◆ inheritedBy

BaseClassList ClassDefImpl::IMPL::inheritedBy

List of sub-classes that directly derive from this class

Definition at line 688 of file classdef.cpp.

Referenced by deepCopy().

◆ inheritFileName

QCString ClassDefImpl::IMPL::inheritFileName

file name used for the inheritance graph

Definition at line 674 of file classdef.cpp.

Referenced by deepCopy().

◆ inherits

BaseClassList ClassDefImpl::IMPL::inherits

List of base class (or super-classes) from which this class derives directly.

Definition at line 684 of file classdef.cpp.

Referenced by deepCopy().

◆ innerClasses

ClassLinkedRefMap ClassDefImpl::IMPL::innerClasses

The inner classes contained in this class. Will be 0 if there are no inner classes.

Definition at line 728 of file classdef.cpp.

◆ isAbstract

bool ClassDefImpl::IMPL::isAbstract = false

Is this an abstract class?

Definition at line 760 of file classdef.cpp.

Referenced by deepCopy(), and init().

◆ isJavaEnum

bool ClassDefImpl::IMPL::isJavaEnum = false

Does this class represent a Java style enum?

Definition at line 794 of file classdef.cpp.

Referenced by deepCopy().

◆ isLocal

bool ClassDefImpl::IMPL::isLocal = false

TRUE if the class is defined in a source file rather than a header file.

Definition at line 769 of file classdef.cpp.

Referenced by deepCopy(), and init().

◆ isSimple

bool ClassDefImpl::IMPL::isSimple = false

Is this a simple (non-nested) C structure?

Definition at line 786 of file classdef.cpp.

Referenced by deepCopy(), and init().

◆ isStatic

bool ClassDefImpl::IMPL::isStatic = false

Is the class part of an unnamed namespace?

Definition at line 763 of file classdef.cpp.

Referenced by deepCopy(), and init().

◆ isTemplArg

bool ClassDefImpl::IMPL::isTemplArg = false

Definition at line 771 of file classdef.cpp.

Referenced by deepCopy(), and init().

◆ memberGroups

MemberGroupList ClassDefImpl::IMPL::memberGroups

Definition at line 757 of file classdef.cpp.

◆ memberListFileName

QCString ClassDefImpl::IMPL::memberListFileName

file name used for the list of all members

Definition at line 668 of file classdef.cpp.

Referenced by deepCopy().

◆ memberLists

MemberLists ClassDefImpl::IMPL::memberLists

Definition at line 754 of file classdef.cpp.

◆ membersMerged

bool ClassDefImpl::IMPL::membersMerged = false

TRUE if classes members are merged with those of the base classes.

Definition at line 766 of file classdef.cpp.

Referenced by deepCopy(), and init().

◆ metaData

QCString ClassDefImpl::IMPL::metaData

Definition at line 798 of file classdef.cpp.

Referenced by deepCopy().

◆ moduleDef

ModuleDef* ClassDefImpl::IMPL::moduleDef = nullptr

Module this class is defined in

Definition at line 699 of file classdef.cpp.

Referenced by deepCopy(), and init().

◆ prot

Protection ClassDefImpl::IMPL::prot

The protection level in which this class was found. Typically Public, but for nested classes this can also be Protected or Private.

Definition at line 723 of file classdef.cpp.

Referenced by deepCopy(), and init().

◆ qualifiers

StringVector ClassDefImpl::IMPL::qualifiers

Definition at line 803 of file classdef.cpp.

Referenced by deepCopy().

◆ requiresClause

QCString ClassDefImpl::IMPL::requiresClause

C++20 requires clause.

Definition at line 801 of file classdef.cpp.

Referenced by deepCopy().

◆ spec

TypeSpecifier ClassDefImpl::IMPL::spec

Definition at line 796 of file classdef.cpp.

Referenced by deepCopy(), and init().

◆ subGrouping

bool ClassDefImpl::IMPL::subGrouping = false

Does this class group its user-grouped members as a sub-section of the normal (public/protected/..) groups?

Definition at line 777 of file classdef.cpp.

Referenced by deepCopy(), and init().

◆ tagLessRef

const ClassDef* ClassDefImpl::IMPL::tagLessRef = nullptr

Definition at line 791 of file classdef.cpp.

Referenced by deepCopy(), and init().

◆ tempArgs

ArgumentList ClassDefImpl::IMPL::tempArgs

Template arguments of this class

Definition at line 705 of file classdef.cpp.

Referenced by deepCopy().

◆ templateInstances

TemplateInstanceList ClassDefImpl::IMPL::templateInstances

Template instances that exists of this class, the key in the dictionary is the template argument list.

Definition at line 739 of file classdef.cpp.

Referenced by deepCopy().

◆ templateMaster

const ClassDef* ClassDefImpl::IMPL::templateMaster = nullptr

The class this class is an instance of.

Definition at line 744 of file classdef.cpp.

Referenced by deepCopy(), and init().

◆ templBaseClassNames

TemplateNameMap ClassDefImpl::IMPL::templBaseClassNames

Definition at line 741 of file classdef.cpp.

Referenced by deepCopy().

◆ typeConstraints

ArgumentList ClassDefImpl::IMPL::typeConstraints

Type constraints for template parameters

Definition at line 708 of file classdef.cpp.

Referenced by deepCopy().

◆ typeInheritanceGraph

CLASS_GRAPH_t ClassDefImpl::IMPL::typeInheritanceGraph = CLASS_GRAPH_t::NO

Definition at line 806 of file classdef.cpp.

Referenced by deepCopy(), and init().

◆ usedByImplClassList

UsesClassList ClassDefImpl::IMPL::usedByImplClassList

Definition at line 732 of file classdef.cpp.

Referenced by deepCopy().

◆ usedOnly

bool ClassDefImpl::IMPL::usedOnly = false

Reason of existence is a "use" relation.

Definition at line 780 of file classdef.cpp.

Referenced by deepCopy(), and init().

◆ usesImplClassList

UsesClassList ClassDefImpl::IMPL::usesImplClassList

Definition at line 731 of file classdef.cpp.

Referenced by deepCopy().

◆ vhdlSummaryTitles

StringSet ClassDefImpl::IMPL::vhdlSummaryTitles

List of titles to use for the summary.

Definition at line 783 of file classdef.cpp.

Referenced by deepCopy().


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