VTK
vtkParseHierarchy.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkParseHierarchy.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
15 /*-------------------------------------------------------------------------
16  Copyright (c) 2010 David Gobbi.
17 
18  Contributed to the VisualizationToolkit by the author in June 2010
19  under the terms of the Visualization Toolkit 2008 copyright.
20 --------------------------------------------------------------------------*/
21 
39 #ifndef VTK_PARSE_HIERARCHY_H
40 #define VTK_PARSE_HIERARCHY_H
41 
42 /* Need the ValueInfo struct for typedefs */
43 #include "vtkParseData.h"
44 
49 typedef struct _HierarchyEntry
50 {
51  const char *Name; /* the class or type name */
52  const char *HeaderFile; /* header file the class is defined in */
53  const char *Module; /* library the class is defined in */
54  int NumberOfTemplateParameters; /* number of template params */
55  const char **TemplateParameters;
56  const char **TemplateDefaults;
57  int NumberOfProperties; /* number of properties */
58  const char **Properties;
59  int NumberOfSuperClasses; /* number of superclasses */
60  const char **SuperClasses;
61  int *SuperClassIndex; /* for internal use only */
62  ValueInfo *Typedef; /* for typedefs */
63  int IsEnum; /* this entry is for an enum type */
64  int IsTypedef; /* this entry is for a typedef */
66 
70 typedef struct _HierarchyInfo
71 {
76 
77 #ifdef __cplusplus
78 extern "C" {
79 #endif
80 
84 HierarchyInfo *vtkParseHierarchy_ReadFile(const char *filename);
85 
90 
95  const HierarchyInfo *info, const char *classname);
96 
104  const HierarchyEntry *entry, const char *property);
105 
110  const HierarchyEntry *entry, const char *baseclass);
111 
122  const HierarchyEntry *entry, const char *classname,
123  const char *baseclass, const char **baseclass_with_args);
124 
128 void vtkParseHierarchy_FreeTemplateArgs(int n, const char *args[]);
129 
137  const HierarchyEntry *entry, const char *classname, int i);
138 
144  const HierarchyInfo *info, ValueInfo *data, StringCache *cache,
145  const char *scope);
146 
153  const HierarchyInfo *info, const char *text, const char *scope);
154 
161  HierarchyInfo *hinfo, ClassInfo *data, StringCache *cache,
162  const char *name);
163 
164 #ifdef __cplusplus
165 } /* extern "C" */
166 #endif
167 
168 #endif
ValueInfo * Typedef
All the entries from a hierarchy file.
void vtkParseHierarchy_FreeTemplateArgs(int n, const char *args[])
Free the template args returned by IsTypeOfTemplated.
const char * Module
HierarchyEntry * Entries
struct _HierarchyEntry HierarchyEntry
This file contains utility functions for loading and parsing a VTK hierarchy file.
This file contains utility functions for loading and parsing a VTK hierarchy file.
const char * vtkParseHierarchy_GetProperty(const HierarchyEntry *entry, const char *property)
Get properties for the class.
const char * HeaderFile
const char ** TemplateDefaults
const char ** SuperClasses
int vtkParseHierarchy_IsTypeOf(const HierarchyInfo *info, const HierarchyEntry *entry, const char *baseclass)
Check whether class is derived from baseclass.
int vtkParseHierarchy_IsTypeOfTemplated(const HierarchyInfo *info, const HierarchyEntry *entry, const char *classname, const char *baseclass, const char **baseclass_with_args)
Check whether class is derived from baseclass.
struct _HierarchyInfo HierarchyInfo
All the entries from a hierarchy file.
const char * vtkParseHierarchy_QualifiedEnumName(HierarchyInfo *hinfo, ClassInfo *data, StringCache *cache, const char *name)
Check whether the named type is an enum type that appears either in the HierarchyInfo or within the C...
void vtkParseHierarchy_Free(HierarchyInfo *info)
Free a HierarchyInfo struct.
const char * vtkParseHierarchy_ExpandTypedefsInName(const HierarchyInfo *info, const char *text, const char *scope)
Expand typedefs found in a name stored as a string.
const char ** TemplateParameters
HierarchyEntry * vtkParseHierarchy_FindEntry(const HierarchyInfo *info, const char *classname)
Return the entry for a class or type, or null if not found.
ValueInfo is for typedefs, constants, variables, function parameters, and return values.
Definition: vtkParseData.h:98
const char * Name
const char ** Properties
StringCache * Strings
HierarchyInfo * vtkParseHierarchy_ReadFile(const char *filename)
Read a hierarchy file into a HeirarchyInfo struct, or return NULL.
ClassInfo is for classes, structs, unions, and namespaces.
Definition: vtkParseData.h:175
StringCache provides a simple way of allocating strings centrally.
const char * vtkParseHierarchy_TemplatedSuperClass(const HierarchyEntry *entry, const char *classname, int i)
Given a classname with template parameters, get the superclass name with corresponding template param...
int vtkParseHierarchy_ExpandTypedefsInValue(const HierarchyInfo *info, ValueInfo *data, StringCache *cache, const char *scope)
Expand all unrecognized types in a ValueInfo struct by using the typedefs in the HierarchyInfo struct...