/usr/include/paraview/vtkCompositeMultiProcessController.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 | /*=========================================================================
Program: ParaView
Module: vtkCompositeMultiProcessController.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 vtkCompositeMultiProcessController
// .SECTION Description
// vtkCompositeMultiProcessController offer a composite implementation of
// vtkMultiProcessController that allow us to deal with collaborative
// MultiProcessController by switching transparently underneath the active one
// and forwarding the method call to that specific one.
// RMICallBack are simply set on all of the MultiProcessController inside the
// composite.
#ifndef vtkCompositeMultiProcessController_h
#define vtkCompositeMultiProcessController_h
#include "vtkMultiProcessController.h"
#include "vtkPVVTKExtensionsCoreModule.h" // needed for export macro
class VTKPVVTKEXTENSIONSCORE_EXPORT vtkCompositeMultiProcessController : public vtkMultiProcessController
{
public:
static vtkCompositeMultiProcessController* New();
vtkTypeMacro(vtkCompositeMultiProcessController, vtkMultiProcessController);
void PrintSelf(ostream& os, vtkIndent indent);
// --------------------- Composite API -------------------------------
// Description:
// Return a unique identifier for the given selected controller.
// This is only used as information to id which client is currently talking
// to the server. In fact it is used inside vtkPVServerInformation so the client
// could know what is its unique ID in respect to the server.
int GetActiveControllerID();
// Description:
// Return the number of currently connected controllers.
int GetNumberOfControllers();
// Description:
// Return the id of the nth controller.
int GetControllerId(int idx);
// Description:
// Promote the given controller (ID) to be the next master controller.
// Making a controller to be the master one, doesn't change anything on the
// controller itself. It is just a meta-data information that helps client
// application to build master/slave collaborative mechanism on top
void SetMasterController(int id);
// Description:
// Retrun the ID of the designed "Master" controller. That master controller
// is nothing else than a tag that can only be set on a single controller at
// a time.
int GetMasterController();
// Description:
// Append the given controller to the composite set.
// We focus on vtkSocketController because most of the API method are empty
void RegisterController(vtkMultiProcessController* controller);
// Description:
// Remove the given controller to the composite set.
void UnRegisterController(vtkMultiProcessController* controller);
// Description:
// Remove the active controller and return the number of registered controler
// left.
int UnRegisterActiveController();
// Description:
// Provides access to the active controller.
vtkMultiProcessController* GetActiveController();
// Description:
// Allow server to broadcast data to all connected client with our without
// sending to the active client
virtual void TriggerRMI2All(int remote, void* data, int length, int tag,
bool sendToActiveToo);
// --------------- vtkMultiProcessController API ----------------------
// Make sure inner vtkSocketController are initialized
virtual void Initialize();
virtual void Initialize(int*,char***) {this->Initialize();};
virtual void Initialize(int*,char***,int) {this->Initialize();};
virtual void Finalize() {}; // Empty: Same as vtkSocketController
virtual void Finalize(int) {}; // Empty: Same as vtkSocketController
virtual void SingleMethodExecute() {}; // Empty: Same as vtkSocketController
virtual void MultipleMethodExecute() {};// Empty: Same as vtkSocketController
virtual void CreateOutputWindow() {}; // Empty: Same as vtkSocketController
virtual vtkCommunicator* GetCommunicator();
// --------------- RMIs Overloaded API -------------------
//BTX
// Description:
// These methods are a part of the newer API to add multiple rmi callbacks.
// When the RMI is triggered, all the callbacks are called
// Adds a new callback for an RMI. Returns the identifier for the callback.
virtual unsigned long AddRMICallback(vtkRMIFunctionType, void* localArg, int tag);
// Description:
// These methods are a part of the newer API to add multiple rmi callbacks.
// When the RMI is triggered, all the callbacks are called
// Removes all callbacks for the tag.
virtual void RemoveAllRMICallbacks(int tag);
virtual int RemoveFirstRMI(int tag)
{
vtkWarningMacro("RemoveRMICallbacks will remove all...");
this->RemoveAllRMICallbacks(tag);
return 1;
}
virtual bool RemoveRMICallback(unsigned long observerTagId);
enum EventId
{
CompositeMultiProcessControllerChanged = 2345
};
protected:
vtkCompositeMultiProcessController();
~vtkCompositeMultiProcessController();
private:
vtkCompositeMultiProcessController(const vtkCompositeMultiProcessController&); // Not implemented
void operator=(const vtkCompositeMultiProcessController&); // Not implemented
class vtkCompositeInternals;
vtkCompositeInternals* Internal;
friend class vtkCompositeInternals;
//ETX
};
#endif
|