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 
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
_HierarchyEntry::Typedef
ValueInfo * Typedef
Definition: vtkParseHierarchy.h:62
vtkgl::data
GLsizei GLsizei GLenum GLenum const GLvoid * data
Definition: vtkgl.h:11339
vtkParseHierarchy_TemplatedSuperClass
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...
_ValueInfo
ValueInfo is for typedefs, constants, variables, function parameters, and return values.
Definition: vtkParseData.h:99
_ClassInfo
ClassInfo is for classes, structs, unions, and namespaces.
Definition: vtkParseData.h:176
_HierarchyEntry::Module
const char * Module
Definition: vtkParseHierarchy.h:53
vtkgl::n
GLclampd n
Definition: vtkgl.h:14370
_HierarchyEntry::HeaderFile
const char * HeaderFile
Definition: vtkParseHierarchy.h:52
vtkParseHierarchy_ExpandTypedefsInValue
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...
vtkParseHierarchy_IsTypeOf
int vtkParseHierarchy_IsTypeOf(const HierarchyInfo *info, const HierarchyEntry *entry, const char *baseclass)
Check whether class is derived from baseclass.
_HierarchyEntry::SuperClasses
const char ** SuperClasses
Definition: vtkParseHierarchy.h:60
_HierarchyInfo::Entries
HierarchyEntry * Entries
Definition: vtkParseHierarchy.h:73
_HierarchyEntry::SuperClassIndex
int * SuperClassIndex
Definition: vtkParseHierarchy.h:61
_HierarchyEntry::NumberOfTemplateParameters
int NumberOfTemplateParameters
Definition: vtkParseHierarchy.h:54
_HierarchyEntry::NumberOfProperties
int NumberOfProperties
Definition: vtkParseHierarchy.h:57
vtkParseHierarchy_GetProperty
const char * vtkParseHierarchy_GetProperty(const HierarchyEntry *entry, const char *property)
Get properties for the class.
_HierarchyEntry::IsEnum
int IsEnum
Definition: vtkParseHierarchy.h:63
HierarchyEntry
struct _HierarchyEntry HierarchyEntry
This file contains utility functions for loading and parsing a VTK hierarchy file.
_HierarchyEntry::TemplateDefaults
const char ** TemplateDefaults
Definition: vtkParseHierarchy.h:56
vtkgl::name
GLuint const GLchar * name
Definition: vtkgl.h:11983
vtkParseData.h
_HierarchyEntry::NumberOfSuperClasses
int NumberOfSuperClasses
Definition: vtkParseHierarchy.h:59
HierarchyInfo
struct _HierarchyInfo HierarchyInfo
All the entries from a hierarchy file.
_HierarchyEntry
This file contains utility functions for loading and parsing a VTK hierarchy file.
Definition: vtkParseHierarchy.h:50
vtkParseHierarchy_FreeTemplateArgs
void vtkParseHierarchy_FreeTemplateArgs(int n, const char *args[])
Free the template args returned by IsTypeOfTemplated.
_HierarchyEntry::IsTypedef
int IsTypedef
Definition: vtkParseHierarchy.h:64
_HierarchyInfo::Strings
StringCache * Strings
Definition: vtkParseHierarchy.h:74
_StringCache
StringCache provides a simple way of allocating strings centrally.
Definition: vtkParseString.h:209
_HierarchyInfo
All the entries from a hierarchy file.
Definition: vtkParseHierarchy.h:71
_HierarchyEntry::TemplateParameters
const char ** TemplateParameters
Definition: vtkParseHierarchy.h:55
_HierarchyEntry::Name
const char * Name
Definition: vtkParseHierarchy.h:51
vtkX3D::info
@ info
Definition: vtkX3D.h:376
_HierarchyEntry::Properties
const char ** Properties
Definition: vtkParseHierarchy.h:58
vtkParseHierarchy_IsTypeOfTemplated
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.
_HierarchyInfo::NumberOfEntries
int NumberOfEntries
Definition: vtkParseHierarchy.h:72
vtkParseHierarchy_ReadFile
HierarchyInfo * vtkParseHierarchy_ReadFile(const char *filename)
Read a hierarchy file into a HeirarchyInfo struct, or return NULL.
vtkParseHierarchy_FindEntry
HierarchyEntry * vtkParseHierarchy_FindEntry(const HierarchyInfo *info, const char *classname)
Return the entry for a class or type, or null if not found.
vtkParseHierarchy_QualifiedEnumName
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...
vtkParseHierarchy_Free
void vtkParseHierarchy_Free(HierarchyInfo *info)
Free a HierarchyInfo struct.
vtkParseHierarchy_ExpandTypedefsInName
const char * vtkParseHierarchy_ExpandTypedefsInName(const HierarchyInfo *info, const char *text, const char *scope)
Expand typedefs found in a name stored as a string.