#include "MEDCouplingRefCountObject.hxx"
#include "MED_version.h"
+#include <sstream>
#include <set>
using namespace ParaMEDMEM;
return ret;
}
+std::string RefCountObject::getHeapMemorySizeStr() const
+{
+ static const char *UNITS[4]={"B","kB","MB","GB"};
+ std::size_t m(getHeapMemorySize());
+ std::ostringstream oss; oss.precision(3);
+ std::size_t remain(0);
+ int i(0);
+ for(;i<4;i++)
+ {
+ if(m<1024)
+ {
+ oss << m;
+ if(remain!=0)
+ {
+ std::ostringstream oss2; oss2 << std::fixed << ((double)remain)/1024.;
+ std::string s(oss2.str());
+ s=s.substr(1,4);
+ std::size_t pos(s.find_last_not_of('0'));
+ if(pos==4)
+ oss << s;
+ else
+ oss << s.substr(0,pos+1);
+ }
+ oss << " " << UNITS[i];
+ break;
+ }
+ else
+ {
+ if(i!=3)
+ {
+ remain=(m%1024);
+ m/=1024;
+ }
+ }
+ }
+ if(i==4)
+ oss << m << " " << UNITS[3];
+ return oss.str();
+}
+
bool RefCountObject::decrRef() const
{
bool ret=((--_cnt)==0);
#include "MEDCoupling.hxx"
#include <vector>
+#include <string>
#include <cstddef>
namespace ParaMEDMEM
MEDCOUPLING_EXPORT bool decrRef() const;
MEDCOUPLING_EXPORT void incrRef() const;
MEDCOUPLING_EXPORT std::size_t getHeapMemorySize() const;
+ MEDCOUPLING_EXPORT std::string getHeapMemorySizeStr() const;
MEDCOUPLING_EXPORT virtual std::size_t getHeapMemorySizeWithoutChildren() const = 0;
MEDCOUPLING_EXPORT virtual std::vector<RefCountObject *> getDirectChildren() const = 0;
MEDCOUPLING_EXPORT int getRCValue() const;