File indexing completed on 2024-05-19 05:42:29
0001 // ct_lvtshr_graphenums.h -*-C++-*- 0002 0003 /* 0004 // Copyright 2023 Codethink Ltd <codethink@codethink.co.uk> 0005 // SPDX-License-Identifier: Apache-2.0 0006 // 0007 // Licensed under the Apache License, Version 2.0 (the "License"); 0008 // you may not use this file except in compliance with the License. 0009 // You may obtain a copy of the License at 0010 // 0011 // http://www.apache.org/licenses/LICENSE-2.0 0012 // 0013 // Unless required by applicable law or agreed to in writing, software 0014 // distributed under the License is distributed on an "AS IS" BASIS, 0015 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 0016 // See the License for the specific language governing permissions and 0017 // limitations under the License. 0018 */ 0019 #ifndef INCLUDED_CT_LVTSHR_GRAPHENUMS 0020 #define INCLUDED_CT_LVTSHR_GRAPHENUMS 0021 0022 #include <lvtshr_export.h> 0023 0024 namespace Codethink::lvtshr { 0025 0026 // Defines how the load algorithm will handle the classes 0027 enum ClassView { TraverseByRelation, TraverseAllPaths, ClassHierarchyGraph, ClassHierarchyTree }; 0028 0029 /*! Type has a value for each type of LakosRelation */ 0030 enum LakosRelationType { 0031 IsA = 0x1, /*!< The IsA relation */ 0032 PackageDependency = 0x2, /*!< The Package-Dependency relation */ 0033 UsesInNameOnly = 0x4, /*!< The Uses-In-Name-Only relation */ 0034 UsesInTheImplementation = 0x8, /*!< The Uses-In-The-Implementation relation */ 0035 UsesInTheInterface = 0x10, /*!< The Uses-In-The-Interface relation */ 0036 None = 0, 0037 }; 0038 0039 /*! ClassScope specifies the scope of the classes to be loaded */ 0040 enum class ClassScope { 0041 All, /*!< Load all classes */ 0042 PackageOnly, /*!< Load only classes in same package */ 0043 NamespaceOnly /*!< Load only classes in same namespace */ 0044 }; 0045 0046 enum class DiagramType { 0047 ClassType = 1, 0048 ComponentType = 10, 0049 PackageType = 100, 0050 RepositoryType = 1000, 0051 NoneType = 1001, 0052 FreeFunctionType = 10000, 0053 }; 0054 0055 enum class AccessSpecifier { 0056 // AccessSpecifier A C++ access specifier (public, private, protected), plus the 0057 // special value "none" which means different things in different contexts. 0058 0059 e_public = 0, // public access 0060 e_protected = 1, // protected access 0061 e_private = 2, // private access 0062 e_none = 3, // undefined access 0063 }; 0064 0065 // enum for backwards / forward navigation. 0066 enum class HistoryType { 0067 NoHistory, // don't record on history 0068 History // record on history 0069 }; 0070 0071 enum class UDTKind { Class, Enum, Struct, TypeAlias, Union, Unknown }; 0072 0073 /*! Defines how searches on the Diagram should be handled. */ 0074 enum class SearchMode { CaseInsensitive, CaseSensitive, RegularExpressions }; 0075 0076 } // end namespace Codethink::lvtshr 0077 0078 #endif