This file is indexed.

/usr/include/vtk-5.8/vtkInstantiator.h is in libvtk5-dev 5.8.0-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
/*=========================================================================

  Program:   Visualization Toolkit
  Module:    vtkInstantiator.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.

=========================================================================*/
// .NAME vtkInstantiator - create an instance of any VTK class from its name.
// .SECTION Description
// vtkInstantiator provides an interface to create an instance of any
// VTK class from its name.  Instances are created through registered
// pointers to functions returning the objects.  New classes can also be
// registered with the creator.  VTK libraries automatically register
// their classes with the creator when they are loaded.  Instances are
// created using the static New() method, so the normal vtkObjectFactory
// mechanism is still invoked.
//
// When using this class from language wrappers (Tcl, Python, or Java),
// the vtkInstantiator should be able to create any class from any kit
// that has been loaded.
//
// In C++ code, one should include the header for each kit from which
// one wishes to create instances through vtkInstantiator.  This is
// necessary to ensure proper linking when building static libraries.
// Be careful, though, because including each kit's header means every
// class from that kit will be linked into your executable whether or
// not the class is used.  The headers are:
//
//   vtkCommon          - vtkCommonInstantiator.h
//   vtkFiltering       - vtkFilteringInstantiator.h
//   vtkIO              - vtkIOInstantiator.h
//   vtkImaging         - vtkImagingInstantiator.h
//   vtkGraphics        - vtkGraphicsInstantiator.h
//   vtkRendering       - vtkRenderingInstantiator.h
//   vtkVolumeRendering - vtkVolumeRenderingInstantiator.h
//   vtkHybrid          - vtkHybridInstantiator.h
//   vtkParallel        - vtkParallelInstantiator.h
//
// The VTK_MAKE_INSTANTIATOR() command in CMake is used to automatically
// generate the creator registration for each VTK library.  It can also
// be used to create registration code for VTK-style user libraries
// that are linked to vtkCommon.  After using this command to register
// classes from a new library, the generated header must be included.
//

#ifndef __vtkInstantiator_h
#define __vtkInstantiator_h

#include "vtkObject.h"

// The vtkDebugLeaks singleton must be initialized before and
// destroyed after the vtkInstantiator singleton.
#include "vtkDebugLeaksManager.h" // Needed for proper singleton initialization

class vtkInstantiatorInitialize;
class vtkInstantiatorHashTable;

class VTK_COMMON_EXPORT vtkInstantiator : public vtkObject
{
public:
  static vtkInstantiator* New();
  vtkTypeMacro(vtkInstantiator,vtkObject);
  void PrintSelf(ostream& os, vtkIndent indent);
  
  // Description:
  // Create an instance of the class whose name is given.  If creation
  // fails, a NULL pointer is returned.
  static vtkObject* CreateInstance(const char* className);
  
  //BTX
  typedef vtkObject* (*CreateFunction)();

  // Description:
  // Register a function to create instances of the class whose name
  // is given.  This allows more than one create function to be
  // registered for the same class.  The first one registered is used
  // until it is unregistered.
  static void RegisterInstantiator(const char* className,
                                   CreateFunction createFunction);

  // Description:
  // Unregister the instance creation of the class whose name is
  // given.  This will unregister the function given, but any other
  // function registered for the same class will be left untouched.
  static void UnRegisterInstantiator(const char* className,
                                     CreateFunction createFunction);
  //ETX
  
protected:
  vtkInstantiator();
  ~vtkInstantiator();
  
  // Internal storage for registered creation functions.
  static vtkInstantiatorHashTable* CreatorTable;
  
  static void ClassInitialize();
  static void ClassFinalize();
  
  //BTX
  friend class vtkInstantiatorInitialize;
  //ETX
  
private:
  vtkInstantiator(const vtkInstantiator&);  // Not implemented.
  void operator=(const vtkInstantiator&);  // Not implemented.
};

//BTX
// Utility class to make sure vtkInstantiator is initialized before it
// is used.
class VTK_COMMON_EXPORT vtkInstantiatorInitialize
{
public:
  vtkInstantiatorInitialize();
  ~vtkInstantiatorInitialize();
private:
  static unsigned int Count;
};

// This instance will show up in any translation unit that uses
// vtkInstantiator.  It will make sure vtkInstantiator is initialized
// before it is used.
static vtkInstantiatorInitialize vtkInstantiatorInitializer;
//ETX

#endif