OpenMining  0.01
 All Classes Namespaces Files Functions Variables Typedefs Friends Macros Pages
save.h
Go to the documentation of this file.
1 #ifndef save_h
2 #define save_h
3 
4 //std includes
5 #include <fstream>
6 #include <iostream>
7 
8 // boost includes
9 #include <boost/archive/text_oarchive.hpp>
10 #include "utils/utils.h"
11 
12 namespace utils
13 {
14  template <class T>
15  void save(T& object, const std::string& filename)
16  {
17  std::cout << FN << " : " << filename << std::endl;
18  std::ofstream ofs(filename);
19  boost::archive::text_oarchive oa (ofs);
20  oa << object;
21  }
22 
23  template <class T>
24  void save(T* object, const std::string& filename)
25  {
26  save(*object, filename);
27  }
28 
29  template <class T>
30  bool saveIfUpdated(T& object, const char* filename)
31  {
32  bool retval = false;
33  if (object.m_changesNotSaved)
34  {
35  std:: cout << FN << "changesNotSaved == true" << std::endl;
36  retval = true;
37  save(object, filename);
38  object.m_changesNotSaved = false;
39  }
40  else
41  {
42  std:: cout << FN << "changesNotSaved == false" << std::endl;
43  }
44  return retval;
45  }
46  template <class T>
47  bool saveIfUpdated(T* object, const char* filename)
48  {
49  return saveIfUpdated(*object, filename);
50  }
51 }
52 
53 #endif
bool saveIfUpdated(T &object, const char *filename)
Definition: save.h:30
void save(T &object, const std::string &filename)
Definition: save.h:15
#define FN
Definition: utils.h:42