This file is indexed.

/usr/include/vtk-5.8/vtkSocketController.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:    vtkSocketController.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 vtkSocketController - Process communication using Sockets
// .SECTION Description
// This is a concrete implementation of vtkMultiProcessController.
// It supports one-to-one communication using sockets. Note that
// process 0 will always correspond to self and process 1 to the
// remote process. This class is best used with ports.

// .SECTION Bugs
// Note that because process 0 will always correspond to self, this class breaks
// assumptions usually implied when using ad-hoc polymorphism.  That is, the
// vtkSocketController will behave differently than other subclasses of
// vtkMultiProcessController.  If you upcast vtkSocketController to
// vtkMultiProcessController and send it to a method that does not know that the
// object is actually a vtkSocketController, the object may not behave as
// intended.  For example, if that oblivious class chose to identify a "root"
// based on the local process id, then both sides of the controller will think
// they are the root (and that will probably lead to deadlock).  If you plan to
// upcast to vtkMultiProcessController, you should probably use the
// CreateCompliantController instead.

// .SECTION see also
// vtkMultiProcessController vtkSocketCommunicator vtkInputPort vtkOutputPort

#ifndef __vtkSocketController_h
#define __vtkSocketController_h

#include "vtkMultiProcessController.h"

class vtkSocketCommunicator;

class VTK_PARALLEL_EXPORT vtkSocketController : public vtkMultiProcessController
{
public:
  static vtkSocketController *New();
  vtkTypeMacro(vtkSocketController,vtkMultiProcessController);
  void PrintSelf(ostream& os, vtkIndent indent);

  // Description:
  // This method is for initialiazing sockets.
  // One of these is REQUIRED for Windows.
  virtual void Initialize(int* argc, char*** argv, int)
    { this->Initialize(argc,argv); }
  virtual void Initialize(int* argc, char*** argv); 
  virtual void Initialize()
    { this->Initialize(0,0); }

  // Description:
  // Does not apply to sockets. Does nothing.
  void Finalize() {};
  void Finalize(int) {};

  // Description:
  //  Does not apply to sockets. Does nothing.
  void SingleMethodExecute() {};
  
  // Description:
  //  Does not apply to sockets.  Does nothing.
  void MultipleMethodExecute() {};

  // Description:
  //  Does not apply to sockets. Does nothing.
  void CreateOutputWindow() {};

  // Description:
  // Wait for connection on a given port, forwarded
  // to the communicator
  virtual int WaitForConnection(int port);

  // Description:
  // Close a connection, forwarded
  // to the communicator
  virtual void CloseConnection();

  // Description:
  // Open a connection to a give machine, forwarded
  // to the communicator
  virtual int ConnectTo(const char* hostName, int port );

  int GetSwapBytesInReceivedData();

  // Description:
  // Set the communicator used in normal and rmi communications.
  void SetCommunicator(vtkSocketCommunicator* comm);

  // Description:
  // FOOLISH MORTALS!  Thou hast forsaken the sacred laws of ad-hoc polymorphism
  // when thou broke a critical assumption of the superclass (namely, each
  // process has thine own id).  The time frame to fix thy error has passed.
  // Too much code has come to rely on this abhorrent behavior.  Instead, we
  // offer this gift: a method for creating an equivalent communicator with
  // correct process id semantics.  The calling code is responsible for
  // deleting this controller.
  vtkMultiProcessController *CreateCompliantController();

//BTX

  enum Consts {
    ENDIAN_TAG=1010580540,      // 0x3c3c3c3c
    IDTYPESIZE_TAG=1027423549,  // 0x3d3d3d3d
    VERSION_TAG=1044266558,     // 0x3e3e3e3e
    HASH_TAG=0x3f3f3f3f
  };
  
//ETX

protected:

  vtkSocketController();
  ~vtkSocketController();

  // Initialize only once, finialize on destruction.
  static int Initialized;
private:
  vtkSocketController(const vtkSocketController&);  // Not implemented.
  void operator=(const vtkSocketController&);  // Not implemented.
};


#endif // __vtkSocketController_h