Replace WIN32 by DISABLE_PSMESH

This commit is contained in:
Yoann Audouin 2023-03-28 08:45:16 +02:00
parent b5ad174931
commit 9afcd890f5
5 changed files with 37 additions and 12 deletions

View File

@ -40,7 +40,7 @@
//Occ include
#include <TopoDS.hxx>
#ifndef WIN32
#ifndef DISABLE_PSMESH
#include <boost/filesystem.hpp>
#include <boost/algorithm/string.hpp>
namespace fs = boost::filesystem;
@ -148,7 +148,7 @@ int exportBREPShape(const std::string shape_file, const TopoDS_Shape& aShape){
* @return error code
*/
int SMESH_DriverShape::importShape(const std::string shape_file, TopoDS_Shape& aShape){
#ifndef WIN32
#ifndef DISABLE_PSMESH
std::string type = fs::path(shape_file).extension().string();
boost::algorithm::to_lower(type);
if (type == ".brep"){
@ -172,7 +172,7 @@ int SMESH_DriverShape::importShape(const std::string shape_file, TopoDS_Shape& a
* @return error code
*/
int SMESH_DriverShape::exportShape(const std::string shape_file, const TopoDS_Shape& aShape){
#ifndef WIN32
#ifndef DISABLE_PSMESH
std::string type = fs::path(shape_file).extension().string();
boost::algorithm::to_lower(type);
if (type == ".brep"){

View File

@ -57,12 +57,12 @@
#include <Basics_Utils.hxx>
#ifndef WIN32
#ifndef DISABLE_PSMESH
#include <boost/asio.hpp>
#endif
using namespace std;
#ifndef WIN32
#ifndef DISABLE_PSMESH
#include <boost/filesystem.hpp>
namespace fs = boost::filesystem;
#endif
@ -307,7 +307,7 @@ bool SMESH_Gen::parallelComputeSubMeshes(
const bool complexShapeFirst,
const bool aShapeOnly)
{
#ifdef WIN32
#ifdef DISABLE_PSMESH
throw SALOME_Exception("ParallelMesh is not working on Windows");
#else

View File

@ -49,7 +49,7 @@
#include <vector>
#include <ostream>
#ifndef WIN32
#ifndef DISABLE_PSMESH
#include <boost/filesystem.hpp>
#include <boost/asio/thread_pool.hpp>
#endif
@ -404,8 +404,10 @@ class SMESH_EXPORT SMESH_Mesh
virtual bool IsParallel(){std::cout << "Should not pass here: IsParallel" << std::endl;return false;};
#ifndef DISABLE_PSMESH
virtual boost::filesystem::path GetTmpFolder() {return "";};
virtual boost::asio::thread_pool* GetPool() {return NULL;};
#endif
virtual bool ComputeSubMeshes(
SMESH_Gen* gen,
@ -466,7 +468,7 @@ protected:
TCallUp* _callUp;
// Mutex for multhitreading write in SMESH_Mesh
#ifndef WIN32
#ifndef DISABLE_PSMESH
boost::mutex _my_lock;
#endif
int _NbThreads=-1;

View File

@ -32,12 +32,12 @@
#include <windows.h>
#endif
#ifndef WIN32
#ifndef DISABLE_PSMESH
#include <boost/filesystem.hpp>
namespace fs=boost::filesystem;
#endif
#ifndef WIN32
#ifndef DISABLE_PSMESH
#include <boost/asio.hpp>
#endif
@ -58,7 +58,11 @@ SMESH_ParallelMesh::SMESH_ParallelMesh(int theLocalId,
theDocument)
{
MESSAGE("SMESH_ParallelMesh::SMESH_ParallelMesh(int localId)");
#ifndef DISABLE_PSMESH
_NbThreads = std::thread::hardware_concurrency();
#else
_NbThreads = 0;
#endif
CreateTmpFolder();
};
@ -78,7 +82,7 @@ SMESH_ParallelMesh::~SMESH_ParallelMesh()
//=============================================================================
void SMESH_ParallelMesh::CreateTmpFolder()
{
#ifndef WIN32
#ifndef DISABLE_PSMESH
// Temporary folder that will be used by parallel computation
tmp_folder = fs::temp_directory_path()/fs::unique_path(fs::path("SMESH_%%%%-%%%%"));
fs::create_directories(tmp_folder);
@ -92,7 +96,7 @@ void SMESH_ParallelMesh::CreateTmpFolder()
//=============================================================================
void SMESH_ParallelMesh::DeleteTmpFolder()
{
#ifndef WIN32
#ifndef DISABLE_PSMESH
fs::remove_all(tmp_folder);
#endif
}

View File

@ -42,6 +42,7 @@ class SMESH_EXPORT SMESH_ParallelMesh: public SMESH_Mesh
virtual ~SMESH_ParallelMesh();
#ifndef DISABLE_PSMESH
void Lock() override {_my_lock.lock();};
void Unlock() override {_my_lock.unlock();};
@ -60,6 +61,22 @@ class SMESH_EXPORT SMESH_ParallelMesh: public SMESH_Mesh
boost::filesystem::path GetTmpFolder() override {return tmp_folder;};
boost::asio::thread_pool* GetPool() override {return _pool;};
#else
void Lock() override {};
void Unlock() override {};
int GetNbThreads() override {return 0;};
void SetNbThreads(long nbThreads) {(void) nbThreads;};
void InitPoolThreads() override {};
void DeletePoolThreads() override {};
void wait() override {};
bool IsParallel() override {return false;};
void CreateTmpFolder();
void DeleteTmpFolder();
#endif
bool ComputeSubMeshes(
SMESH_Gen* gen,
@ -77,7 +94,9 @@ class SMESH_EXPORT SMESH_ParallelMesh: public SMESH_Mesh
SMESH_ParallelMesh():SMESH_Mesh() {};
SMESH_ParallelMesh(const SMESH_ParallelMesh& aMesh):SMESH_Mesh(aMesh) {};
private:
#ifndef DISABLE_PSMESH
boost::filesystem::path tmp_folder;
boost::asio::thread_pool * _pool = nullptr; //thread pool for computation
#endif
};
#endif