You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

87 lines
2.3 KiB
C++

/*=========================================================================
Program: Visualization Toolkit
Module: vtkDummyController.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.
=========================================================================*/
/**
* @class vtkDummyController
* @brief Dummy controller for single process applications
*
* This is a dummy controller which can be used by applications which always
* require a controller but are also compile on systems without threads
* or mpi.
* @sa
* vtkMultiProcessController
*/
#ifndef vtkDummyController_h
#define vtkDummyController_h
#include "vtkMultiProcessController.h"
#include "vtkParallelCoreModule.h" // For export macro
class VTKPARALLELCORE_EXPORT vtkDummyController : public vtkMultiProcessController
{
public:
static vtkDummyController* New();
vtkTypeMacro(vtkDummyController, vtkMultiProcessController);
void PrintSelf(ostream& os, vtkIndent indent) override;
/**
* This method is for setting up the processes.
*/
void Initialize(int*, char***, int) override {}
void Initialize(int*, char***) override {}
void Finalize() override {}
void Finalize(int) override {}
/**
* This method always returns 0.
*/
int GetLocalProcessId() { return 0; }
/**
* Directly calls the single method.
*/
void SingleMethodExecute() override;
/**
* Directly calls multiple method 0.
*/
void MultipleMethodExecute() override;
/**
* Does nothing.
*/
void CreateOutputWindow() override {}
//@{
/**
* If you don't need any special functionality from the controller, you
* can swap out the dummy communicator for another one.
*/
vtkGetObjectMacro(RMICommunicator, vtkCommunicator);
virtual void SetCommunicator(vtkCommunicator*);
virtual void SetRMICommunicator(vtkCommunicator*);
//@}
protected:
vtkDummyController();
~vtkDummyController() override;
private:
vtkDummyController(const vtkDummyController&) = delete;
void operator=(const vtkDummyController&) = delete;
};
#endif