mirror of
https://github.com/OpenFOAM/ThirdParty-6.git
synced 2025-12-08 06:57:43 +00:00
ParaView-5.0.1: Added the source-tree to ThirdParty-dev and patched as described in the README file
Resolves bug-report http://bugs.openfoam.org/view.php?id=2098
This commit is contained in:
107
ParaView-5.0.1/CommandLineExecutables/pvserver_common.h
Normal file
107
ParaView-5.0.1/CommandLineExecutables/pvserver_common.h
Normal file
@ -0,0 +1,107 @@
|
||||
/*=========================================================================
|
||||
|
||||
Program: ParaView
|
||||
Module: pvserver.cxx
|
||||
|
||||
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.
|
||||
|
||||
=========================================================================*/
|
||||
#include "vtkPVConfig.h"
|
||||
|
||||
# ifdef PARAVIEW_ENABLE_PYTHON
|
||||
extern "C" {
|
||||
void vtkPVInitializePythonModules();
|
||||
}
|
||||
#endif
|
||||
|
||||
#include "vtkInitializationHelper.h"
|
||||
#include "vtkMultiProcessController.h"
|
||||
#include "vtkNetworkAccessManager.h"
|
||||
#include "vtkPVServerOptions.h"
|
||||
#include "vtkProcessModule.h"
|
||||
#include "vtkPVSessionServer.h"
|
||||
|
||||
#ifndef BUILD_SHARED_LIBS
|
||||
# include "pvStaticPluginsInit.h"
|
||||
#endif
|
||||
|
||||
static bool RealMain(int argc, char* argv[],
|
||||
vtkProcessModule::ProcessTypes type)
|
||||
{
|
||||
// Marking this static avoids the false leak messages from vtkDebugLeaks when
|
||||
// using mpich. It appears that the root process which spawns all the
|
||||
// main processes waits in MPI_Init() and calls exit() when
|
||||
// the others are done, causing apparent memory leaks for any non-static objects
|
||||
// created before MPI_Init().
|
||||
static vtkSmartPointer<vtkPVServerOptions> options =
|
||||
vtkSmartPointer<vtkPVServerOptions>::New();
|
||||
|
||||
// Init current process type
|
||||
vtkInitializationHelper::Initialize( argc, argv, type, options );
|
||||
if (options->GetTellVersion() || options->GetHelpSelected() ||
|
||||
options->GetPrintMonitors())
|
||||
{
|
||||
vtkInitializationHelper::Finalize();
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
#ifdef PARAVIEW_ENABLE_PYTHON
|
||||
// register callback to initialize modules statically. The callback is
|
||||
// empty when BUILD_SHARED_LIBS is ON.
|
||||
vtkPVInitializePythonModules();
|
||||
#endif
|
||||
|
||||
#ifndef BUILD_SHARED_LIBS
|
||||
// load static plugins
|
||||
paraview_static_plugins_init();
|
||||
#endif
|
||||
|
||||
vtkProcessModule* pm = vtkProcessModule::GetProcessModule();
|
||||
vtkMultiProcessController* controller = pm->GetGlobalController();
|
||||
|
||||
vtkPVSessionServer* session = vtkPVSessionServer::New();
|
||||
session->SetMultipleConnection(options->GetMultiClientMode() != 0);
|
||||
int process_id = controller->GetLocalProcessId();
|
||||
if (process_id == 0)
|
||||
{
|
||||
// Report status:
|
||||
if (options->GetReverseConnection())
|
||||
{
|
||||
cout << "Connecting to client (reverse connection requested)..." << endl;
|
||||
}
|
||||
else
|
||||
{
|
||||
cout << "Waiting for client..." << endl;
|
||||
}
|
||||
}
|
||||
bool success = false;
|
||||
if (session->Connect())
|
||||
{
|
||||
success = true;
|
||||
pm->RegisterSession(session);
|
||||
if (controller->GetLocalProcessId() == 0)
|
||||
{
|
||||
while (pm->GetNetworkAccessManager()->ProcessEvents(0) != -1)
|
||||
{
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
controller->ProcessRMIs();
|
||||
}
|
||||
pm->UnRegisterSession(session);
|
||||
}
|
||||
|
||||
cout << "Exiting..." << endl;
|
||||
session->Delete();
|
||||
// Exit application
|
||||
vtkInitializationHelper::Finalize();
|
||||
return success;
|
||||
}
|
||||
Reference in New Issue
Block a user