+{
+ MED::PWrapper myMed = CrWrapperW(myFile, myVersion);
+ return this->PerformInternal<MED::PWrapper>(myMed);
+}
+
+//================================================================================
+/*!
+ * \brief Write my mesh to a MEDCoupling DS
+ */
+//================================================================================
+
+Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh_Mem::Perform()
+{
+ void *ptr(nullptr);
+ std::size_t sz(0);
+ Driver_Mesh::Status status = Driver_Mesh::DRS_OK;
+ bool isClosed(false);
+ {// let braces to flush (call of MED::PWrapper myMed destructor)
+ TMemFile *tfileInst = new TMemFile(&ptr,&sz,&isClosed);// this new will be destroyed by destructor of myMed
+ MED::PWrapper myMed = CrWrapperW(myFile, -1, tfileInst);
+ status = this->PerformInternal<MED::PWrapper>(myMed);
+ }
+ if(!isClosed)
+ EXCEPTION(std::runtime_error, "TFTMemFile destructor : on destruction file has not been closed properly -> chunk of memory data may be invalid !");
+ _data = MEDCoupling::DataArrayByte::New();
+ _data->useArray(reinterpret_cast<char *>(ptr),true,MEDCoupling::DeallocType::C_DEALLOC,sz,1);
+ if(!isClosed)
+ THROW_SALOME_EXCEPTION("DriverMED_W_SMESHDS_Mesh_Mem::Perform - MED memory file id is supposed to be closed !");
+ return status;
+}
+
+//================================================================================
+/*!
+ * \brief Write my mesh
+ */
+//================================================================================
+
+template<class LowLevelWriter>
+Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::PerformInternal(LowLevelWriter myMed)