Back to index

salome-paravis  6.5.0
vtkParseHierarchy.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkParseHierarchy.h
00005 
00006   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
00007   All rights reserved.
00008   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
00013 
00014 =========================================================================*/
00015 /*-------------------------------------------------------------------------
00016   Copyright (c) 2010 David Gobbi.
00017 
00018   Contributed to the VisualizationToolkit by the author in June 2010
00019   under the terms of the Visualization Toolkit 2008 copyright.
00020 --------------------------------------------------------------------------*/
00021 
00039 #ifndef VTK_PARSE_HIERARCHY_H
00040 #define VTK_PARSE_HIERARCHY_H
00041 
00042 /* Need the ValueInfo struct for typedefs */
00043 #include "vtkParse.h"
00044 
00049 typedef struct _HierarchyEntry
00050 {
00051   const char  *Name;            /* the class or type name */
00052   const char  *HeaderFile;      /* header file the class is defined in */
00053   const char  *Module;          /* library the class is defined in */
00054   int          NumberOfTemplateArgs; /* number of template arguments */
00055   const char **TemplateArgs;
00056   const char **TemplateArgDefaults;
00057   int          NumberOfProperties;   /* number of properties */
00058   const char **Properties;
00059   int          NumberOfSuperClasses; /* number of superclasses */
00060   const char **SuperClasses;
00061   int         *SuperClassIndex; /* for internal use only */
00062   ValueInfo   *Typedef;         /* for typedefs */
00063   int         IsEnum;           /* this entry is for an enum type */
00064   int         IsTypedef;        /* this entry is for a typedef */
00065 } HierarchyEntry;
00066 
00070 typedef struct _HierarchyInfo
00071 {
00072   int             NumberOfEntries;
00073   HierarchyEntry *Entries;
00074 } HierarchyInfo;
00075 
00076 #ifdef __cplusplus
00077 extern "C" {
00078 #endif
00079 
00083 HierarchyInfo *vtkParseHierarchy_ReadFile(const char *filename);
00084 
00088 void vtkParseHierarchy_Free(HierarchyInfo *info);
00089 
00093 HierarchyEntry *vtkParseHierarchy_FindEntry(
00094   const HierarchyInfo *info, const char *classname);
00095 
00102 const char *vtkParseHierarchy_GetProperty(
00103   const HierarchyEntry *entry, const char *property);
00104 
00108 int vtkParseHierarchy_IsTypeOf(const HierarchyInfo *info,
00109   const HierarchyEntry *entry, const char *baseclass);
00110 
00120 int vtkParseHierarchy_IsTypeOfTemplated(const HierarchyInfo *info,
00121   const HierarchyEntry *entry, const char *classname,
00122   const char *baseclass, const char **baseclass_with_args);
00123 
00127 void vtkParseHierarchy_FreeTemplateArgs(int n, const char *args[]);
00128 
00135 const char *vtkParseHierarchy_TemplatedSuperClass(
00136   const HierarchyEntry *entry, const char *classname, int i);
00137 
00142 int vtkParseHierarchy_ExpandTypedefsInValue(
00143   const HierarchyInfo *info, ValueInfo *data, const char *scope);
00144 
00150 const char *vtkParseHierarchy_ExpandTypedefsInName(
00151   const HierarchyInfo *info, const char *text, const char *scope);
00152 
00153 #ifdef __cplusplus
00154 } /* extern "C" */
00155 #endif
00156 
00157 #endif