/usr/include/vtk-6.3/vtkParseHierarchy.h is in libvtk6-dev 6.3.0+dfsg1-5.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 | /*=========================================================================
Program: Visualization Toolkit
Module: vtkParseHierarchy.h
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
/*-------------------------------------------------------------------------
Copyright (c) 2010 David Gobbi.
Contributed to the VisualizationToolkit by the author in June 2010
under the terms of the Visualization Toolkit 2008 copyright.
--------------------------------------------------------------------------*/
/**
This file contains utility functions for loading and parsing
a VTK hierarchy file. The file contains entries like the
following (one per line in the file):
classname [ : superclass ] ; header.h ; vtkKit [; flags]
For each typedef, the output file will have a line like this:
name = &[2][3]* const type ; header.h ; vtkKit [; flags]
For each enum, the output file will have:
enumname : enum ; header.h ; vtkKit [; flags]
*/
#ifndef VTK_PARSE_HIERARCHY_H
#define VTK_PARSE_HIERARCHY_H
/* Need the ValueInfo struct for typedefs */
#include "vtkParseData.h"
/**
* One entry from the hierarchy file.
* It contains a class name, the superclasses, and the header file.
*/
typedef struct _HierarchyEntry
{
const char *Name; /* the class or type name */
const char *HeaderFile; /* header file the class is defined in */
const char *Module; /* library the class is defined in */
int NumberOfTemplateParameters; /* number of template params */
const char **TemplateParameters;
const char **TemplateDefaults;
int NumberOfProperties; /* number of properties */
const char **Properties;
int NumberOfSuperClasses; /* number of superclasses */
const char **SuperClasses;
int *SuperClassIndex; /* for internal use only */
ValueInfo *Typedef; /* for typedefs */
int IsEnum; /* this entry is for an enum type */
int IsTypedef; /* this entry is for a typedef */
} HierarchyEntry;
/**
* All the entries from a hierarchy file.
*/
typedef struct _HierarchyInfo
{
int NumberOfEntries;
HierarchyEntry *Entries;
StringCache *Strings;
} HierarchyInfo;
#ifdef __cplusplus
extern "C" {
#endif
/**
* Read a hierarchy file into a HeirarchyInfo struct, or return NULL
*/
HierarchyInfo *vtkParseHierarchy_ReadFile(const char *filename);
/**
* Free a HierarchyInfo struct
*/
void vtkParseHierarchy_Free(HierarchyInfo *info);
/**
* Return the entry for a class or type, or null if not found
*/
HierarchyEntry *vtkParseHierarchy_FindEntry(
const HierarchyInfo *info, const char *classname);
/**
* Get properties for the class. Returns NULL if the property
* is not set, and returns either an empty string or a value string
* if the property is set. The properties supported are as follows:
* "WRAP_EXCLUDE", "WRAP_SPECIAL", and "ABSTRACT"
*/
const char *vtkParseHierarchy_GetProperty(
const HierarchyEntry *entry, const char *property);
/**
* Check whether class is derived from baseclass.
*/
int vtkParseHierarchy_IsTypeOf(const HierarchyInfo *info,
const HierarchyEntry *entry, const char *baseclass);
/**
* Check whether class is derived from baseclass. You must supply
* the entry for the class (returned by FindEntry) as well as the
* classname. The classname can include template args in angle brackets.
* The baseclass_with_args parameter, if not set to NULL, will be used
* to return the name of base class with the template args in angle
* brackets that classname was derived from. If not set to NULL,
* this should be freed with free() to avoid a memory leak.
*/
int vtkParseHierarchy_IsTypeOfTemplated(const HierarchyInfo *info,
const HierarchyEntry *entry, const char *classname,
const char *baseclass, const char **baseclass_with_args);
/**
* Free the template args returned by IsTypeOfTemplated
*/
void vtkParseHierarchy_FreeTemplateArgs(int n, const char *args[]);
/**
* Given a classname with template parameters, get the superclass name
* with corresponding template parameters. Returns null if 'i' is out
* of range, i.e. greater than or equal to the number of superclasses.
* The returned classname must be freed with "free()".
*/
const char *vtkParseHierarchy_TemplatedSuperClass(
const HierarchyEntry *entry, const char *classname, int i);
/**
* Expand all unrecognized types in a ValueInfo struct by
* using the typedefs in the HierarchyInfo struct.
*/
int vtkParseHierarchy_ExpandTypedefsInValue(
const HierarchyInfo *info, ValueInfo *data, StringCache *cache,
const char *scope);
/**
* Expand typedefs found in a name stored as a string. The value
* of "text" will be returned if no expansion occurred, else a new
* string is returned that must be freed with "free()".
*/
const char *vtkParseHierarchy_ExpandTypedefsInName(
const HierarchyInfo *info, const char *text, const char *scope);
/**
* Check whether the named type is an enum type that appears either in
* the HierarchyInfo or within the ClassInfo. If the enum type is found,
* its qualified name is returned, otherwise NULL is returned.
*/
const char *vtkParseHierarchy_QualifiedEnumName(
HierarchyInfo *hinfo, ClassInfo *data, StringCache *cache,
const char *name);
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif
|