/usr/include/paraview/vtkSMSourceProxy.h is in paraview-dev 5.0.1+dfsg1-4.
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 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 | /*=========================================================================
Program: ParaView
Module: vtkSMSourceProxy.h
Copyright (c) Kitware, Inc.
All rights reserved.
See Copyright.txt or http://www.paraview.org/HTML/Copyright.html 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 vtkSMSourceProxy - proxy for a VTK source on a server
// .SECTION Description
// vtkSMSourceProxy manages VTK source(s) that are created on a server
// using the proxy pattern. In addition to functionality provided
// by vtkSMProxy, vtkSMSourceProxy provides method to connect and
// update sources. Each source proxy has one or more output ports
// (vtkSMOutputPort).
// Each port represents one output of one filter. These are created
// automatically (when CreateOutputPorts() is called) by the source.
// Each vtkSMSourceProxy creates a property called DataInformation.
// This property is a composite property that provides information
// about the output(s) of the VTK sources (obtained from the server)
// .SECTION See Also
// vtkSMProxy vtkSMOutputPort vtkSMInputProperty
#ifndef vtkSMSourceProxy_h
#define vtkSMSourceProxy_h
#include "vtkPVServerManagerCoreModule.h" //needed for exports
#include "vtkSMProxy.h"
class vtkPVArrayInformation;
class vtkPVDataInformation;
class vtkPVDataSetAttributesInformation;
//BTX
struct vtkSMSourceProxyInternals;
//ETX
class vtkSMOutputPort;
class vtkSMProperty;
class vtkSMSessionProxyManager;
class VTKPVSERVERMANAGERCORE_EXPORT vtkSMSourceProxy : public vtkSMProxy
{
public:
static vtkSMSourceProxy* New();
vtkTypeMacro(vtkSMSourceProxy, vtkSMProxy);
void PrintSelf(ostream& os, vtkIndent indent);
// Description:
// Calls UpdateInformation() on all sources.
virtual void UpdatePipelineInformation();
// Description:
// Calls Update() on all sources. It also creates output ports if
// they are not already created.
virtual void UpdatePipeline();
// Description:
// Calls Update() on all sources with the given time request.
// It also creates output ports if they are not already created.
virtual void UpdatePipeline(double time);
// Description:
// Returns if the output port proxies have been created.
vtkGetMacro(OutputPortsCreated, int);
// Description:
// Return the number of output ports.
virtual unsigned int GetNumberOfOutputPorts();
// Description:
// Return an output port.
virtual vtkSMOutputPort* GetOutputPort(unsigned int idx);
// Description:
// Return an output port, given the name for the port.
// Each output port is assigned a unique name (either using the xml
// configuration or automatically). The automatically assigned names are of
// the type Output0, Output1 etc.
virtual vtkSMOutputPort* GetOutputPort(const char* portname);
// Description:
// Returns the port index, given the name of an output port.
// Each output port is assigned a unique name (either using the xml
// configuration or automatically). The automatically assigned names are of
// the type Output0, Output1 etc.
// Returns VTK_UNSIGNED_INT_MAX (i.e. ~0u) when a port with given port name
// does not exist.
virtual unsigned int GetOutputPortIndex(const char* portname);
// Description:
// Returns the output port name given its index.
// Each output port is assigned an unique name (either using the xml
// configuration or automatically). The automatically assigned names are of
// the type Output-0, Output-1 etc.
virtual const char* GetOutputPortName(unsigned int index);
// Description:
// It is possible to provide some documentation for each output port in the
// configuraton xml. These methods provide access to the port specific
// documentation, if any. If no documentation is present, these methods will
// return 0.
vtkSMDocumentation* GetOutputPortDocumentation(unsigned int index);
vtkSMDocumentation* GetOutputPortDocumentation(const char* portname);
// Description:
// Creates the output port proxies for this filter.
// Each output port proxy corresponds to an actual output port on the
// algorithm.
virtual void CreateOutputPorts();
// Description:
// DataInformation is used by the source proxy to obtain information
// on the output(s) from the server.
// If \c update is false the pipeline will not
// be updated before gathering the data information.
vtkPVDataInformation* GetDataInformation()
{
return this->GetDataInformation(0);
}
vtkPVDataInformation* GetDataInformation(unsigned int outputIdx);
// Description:
// Creates extract selection proxies for each output port if not already
// created.
virtual void CreateSelectionProxies();
// Description:
// Set/Get the selection input. This is used to set the selection input to the
// extarction proxy for the output port identified by \c portIndex.
// If no extraction proxies are present, this method has no effect.
void SetSelectionInput(unsigned int portIndex, vtkSMSourceProxy* input,
unsigned int outputPort);
// Description:
// API to query selection input set using SetSelectionInput.
vtkSMSourceProxy* GetSelectionInput(unsigned int portIndex);
unsigned int GetSelectionInputPort(unsigned int portIndex);
// Description:
// Clean all selection inputs for the given port.
void CleanSelectionInputs(unsigned int portIndex);
// Description:
// Returns the source proxy which provides the selected data from the given
// output port.
vtkSMSourceProxy* GetSelectionOutput(unsigned int portIndex);
// Description:
// This returns information about whether the VTK algorithm supports
// multiple processes or not. SINGLE_PROCESS means that this algorithm
// works only in serial, MULTIPLE_PROCESSES means that it will only
// useful in parallel (or it is useless in serial), BOTH means both :-)
// Default is BOTH. This ivar is filled from the xml configuration.
// This variable should not be used to determine if MPI is initialized.
// Instead use MPISupport for that.
vtkGetMacro(ProcessSupport, int);
// Description:
// This returns information about whether the VTK algorithm explicitly
// needs MPI to be initialized. It still may only run with a single
// process. An example of this is a reader that uses MPI IO routines.
vtkGetMacro(MPIRequired, bool);
// Description:
// Returns the number of output ports provided by the algorithm.
unsigned int GetNumberOfAlgorithmOutputPorts();
// Description:
// Returns the number of non-optional input ports required by the algorithm.
// This value is cached after the first call.
virtual unsigned int GetNumberOfAlgorithmRequiredInputPorts();
// Description:
// Overridden to reserve additional IDs for use by "ExtractSelection" proxies.
virtual vtkTypeUInt32 GetGlobalID();
//BTX
enum ProcessSupportType
{
SINGLE_PROCESS,
MULTIPLE_PROCESSES,
BOTH
};
// Description:
// Marks the selection proxies dirty as well as chain to superclass.
virtual void MarkDirty(vtkSMProxy* modifiedProxy);
protected:
vtkSMSourceProxy();
~vtkSMSourceProxy();
friend class vtkSMInputProperty;
friend class vtkSMOutputPort;
int OutputPortsCreated;
int ProcessSupport;
bool MPIRequired;
// Description:
// Mark the data information as invalid.
virtual void InvalidateDataInformation();
// Description:
// Call superclass' and then assigns a new executive
// (vtkCompositeDataPipeline)
virtual void CreateVTKObjects();
char *ExecutiveName;
vtkSetStringMacro(ExecutiveName);
// Description:
// Read attributes from an XML element.
virtual int ReadXMLAttributes(vtkSMSessionProxyManager* pm, vtkPVXMLElement* element);
// Description:
// Internal method which creates the output port proxies using the proxy specified.
void CreateOutputPortsInternal(vtkSMProxy* op);
// Description:
// Method to set an output port at the given index. Provided for subclasses to
// add output ports. It replaces the output port at the given index, if any,
// The output ports will be resize to fit the specified index.
void SetOutputPort(unsigned int index, const char* name,
vtkSMOutputPort* port, vtkSMDocumentation* doc);
void RemoveAllOutputPorts();
void SetExtractSelectionProxy(unsigned int index,
vtkSMSourceProxy* proxy);
void RemoveAllExtractSelectionProxies();
// Description:
// Overwritten from superclass to invoke
virtual void PostUpdateData();
// flag used to avoid creation of extract selection proxies for this source
// proxy.
bool DisableSelectionProxies;
bool SelectionProxiesCreated;
private:
vtkSMSourceProxyInternals* PInternals;
// used by GetNumberOfAlgorithmOutputPorts to cache the value to avoid
// unnecessary information gathers.
unsigned int NumberOfAlgorithmOutputPorts;
unsigned int NumberOfAlgorithmRequiredInputPorts;
vtkSMSourceProxy(const vtkSMSourceProxy&); // Not implemented
void operator=(const vtkSMSourceProxy&); // Not implemented
//ETX
};
#endif
|