Minsky
minsky::Saver Struct Reference

#include <saver.h>

Inheritance diagram for minsky::Saver:
Inheritance graph
Collaboration diagram for minsky::Saver:
Collaboration graph

Public Member Functions

 Saver (const std::string &fileName)
 
void save (const schema3::Minsky &)
 

Public Attributes

std::string fileName
 
std::ofstream os
 
classdesc::xml_pack_t packer
 

Detailed Description

Definition at line 36 of file saver.h.

Constructor & Destructor Documentation

◆ Saver()

minsky::Saver::Saver ( const std::string &  fileName)

Definition at line 28 of file saver.cc.

std::ofstream os
Definition: saver.h:39
std::string fileName
Definition: saver.h:38
const char * schemaURL
Definition: saver.cc:26
classdesc::xml_pack_t packer
Definition: saver.h:40

Member Function Documentation

◆ save()

void minsky::Saver::save ( const schema3::Minsky m)

Definition at line 40 of file saver.cc.

References fileName, os, packer, and classdesc::xml_pack().

Referenced by minsky::BackgroundSaver::save(), minsky::Minsky::save(), and minsky::Minsky::saveGroupAsFile().

41  {
42  os.open(fileName);
43  const OnExit closeOnExit([&](){os.close();});
44 
45  try
46  {
47  packer.abort=false; // reset abort flag
48  xml_pack(packer, "Minsky", m);
49  }
50  catch (const xml_pack_t::PackAborted&) {}
51  catch (...) {
52  // if exception is due to file error, provide a more useful message
53  if (!os)
54  throw runtime_error("cannot save to "+fileName);
55  throw;
56  }
57  }
std::ofstream os
Definition: saver.h:39
std::string fileName
Definition: saver.h:38
void xml_pack(xml_pack_t &t, const string &d, minsky::Optional< T > &a)
Definition: optional.h:84
classdesc::xml_pack_t packer
Definition: saver.h:40
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ fileName

std::string minsky::Saver::fileName

Definition at line 38 of file saver.h.

Referenced by save().

◆ os

std::ofstream minsky::Saver::os

Definition at line 39 of file saver.h.

Referenced by save(), and minsky::Minsky::save().

◆ packer

classdesc::xml_pack_t minsky::Saver::packer

Definition at line 40 of file saver.h.

Referenced by minsky::BackgroundSaver::killThread(), save(), and minsky::Minsky::save().


The documentation for this struct was generated from the following files: