Salome HOME
Improve new MG license mechanism to make it work on Windows
[modules/smesh.git] / src / SMESHUtils / SMESH_MGLicenseKeyGen.hxx
index 796cde4b58d2ad0c2cd5358b3280485460d71f82..67ab5cef867b292f1167edffb36183b732593b8a 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2021  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2022  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 
 #include <string>
 
+#define MESHGEMS_215 (2 << 16 | 15 << 8 | 0)
+
 /*!
  * \brief Manage loading libSalomeMeshGemsKeyGenerator.[so|dll] and sing MeshGems CAD or mesh
  */
 
 namespace SMESHUtils_MGLicenseKeyGen
 {
+  // MeshGems 2.13, 2.14 (for CADSurf)
   SMESHUtils_EXPORT bool        SignCAD( void* meshgems_cad, std::string& error );
 
-  SMESHUtils_EXPORT bool        SignMesh( void* meshgems_mesh, std::string& error );
+  // MeshGems 2.15 (for products launched as library)
+  SMESHUtils_EXPORT bool        UnlockProduct( const std::string& product, std::string& error );
+
+  // MeshGems 2.13, 2.14 (for products launched as library)
+  SMESHUtils_EXPORT bool        SignMesh( void* meshgems_mesh, const std::string& product, std::string& error );
 
+  // MeshGems 2.13, 2.14 and 2.15 (for products launched as executables)
   SMESHUtils_EXPORT std::string GetKey(const std::string& gmfFile,
                                        int                nbVertex,
                                        int                nbEdge,
@@ -44,9 +52,17 @@ namespace SMESHUtils_MGLicenseKeyGen
                                        int                nbVol,
                                        std::string&       error);
 
+  // MeshGems 2.15 (for products launched as library)
+  SMESHUtils_EXPORT std::string GetKey( std::string& error );
+
   SMESHUtils_EXPORT bool        CheckKeyGenLibrary( std::string& error );
 
   SMESHUtils_EXPORT std::string GetLibraryName();
+  SMESHUtils_EXPORT int         GetMGVersionFromFunction(const char* function_name);
+  SMESHUtils_EXPORT int         GetMGVersionFromEnv(const char* env_variable);
+  SMESHUtils_EXPORT int         GetMGVersionHex(std::string& error);
+  SMESHUtils_EXPORT bool        NeedsMGSpatialEnvLicense(std::string& error);
+  SMESHUtils_EXPORT bool        SetMGSpatialEnvLicense(std::string& error);
 }
 
 #endif