X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FMEDLoader%2FMEDFileUtilities.hxx;h=501a6d5e57295d9430cf5ff0b571782a8f8bbf1d;hb=844b1a4785909ad42206965838a6d0f826dfb5c1;hp=fad58c76b2c2b15bebec01b5b47550c00654d475;hpb=aa60c5c907c78293330a22ecee21476f72a9ec34;p=tools%2Fmedcoupling.git diff --git a/src/MEDLoader/MEDFileUtilities.hxx b/src/MEDLoader/MEDFileUtilities.hxx index fad58c76b..501a6d5e5 100644 --- a/src/MEDLoader/MEDFileUtilities.hxx +++ b/src/MEDLoader/MEDFileUtilities.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2014 CEA/DEN, EDF R&D +// Copyright (C) 2007-2019 CEA/DEN, EDF R&D // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -24,6 +24,9 @@ #include "InterpKernelException.hxx" #include "MEDLoaderDefines.hxx" +#include "MCAuto.hxx" +#include "MEDCouplingMemArray.hxx" + #include "med.h" namespace MEDFileUtilities @@ -44,21 +47,39 @@ namespace MEDFileUtilities }; } -namespace ParaMEDMEM +namespace MEDCoupling { class MEDLOADER_EXPORT MEDFileWritable { public: MEDFileWritable(); + virtual ~MEDFileWritable() {} void copyOptionsFrom(const MEDFileWritable& other) const; int getTooLongStrPolicy() const; void setTooLongStrPolicy(int newVal); int getZipConnPolicy(); void setZipConnPolicy(int newVal); + static std::string FileNameFromFID(med_idt fid); protected://policies on write mutable int _too_long_str; mutable int _zipconn_pol; }; + + class MEDFileWritableStandAlone : public MEDFileWritable + { + public: + MEDLOADER_EXPORT virtual void writeLL(med_idt fid) const = 0; + MEDLOADER_EXPORT virtual void write(const std::string& fileName, int mode) const; + MEDLOADER_EXPORT virtual void write33(const std::string& fileName, int mode) const; + MEDLOADER_EXPORT MCAuto serialize() const; + MEDLOADER_EXPORT static std::string GenerateUniqueDftFileNameInMem(); + public: + MEDLOADER_EXPORT static const char DFT_FILENAME_IN_MEM[]; + template + static T *BuildFromMemoryChunk(DataArrayByte *db); + }; + + MEDFileUtilities::AutoFid OpenMEDFileForRead(const std::string& fileName); } #endif