summaryrefslogtreecommitdiff
path: root/xsd
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2013-05-30 19:54:24 -0400
committerBoris Kolpackov <boris@codesynthesis.com>2013-05-30 19:54:24 -0400
commit6f5e742482eadf055c18bdbe4082450d3161edef (patch)
tree80f3f5329524599b4c84aecc042ce4c76974c15c /xsd
parent3bf281f54bcf2ee6c2c54f727c3c6c5e6100c8d4 (diff)
Get rid of dependency on Boost filesystem
Diffstat (limited to 'xsd')
-rw-r--r--xsd/cxx/elements.cxx6
-rw-r--r--xsd/cxx/parser/elements.cxx5
-rw-r--r--xsd/cxx/parser/generator.cxx78
-rw-r--r--xsd/cxx/tree/elements.cxx5
-rw-r--r--xsd/cxx/tree/fundamental-header.hxx1
-rw-r--r--xsd/cxx/tree/generator.cxx77
-rw-r--r--xsd/makefile7
-rw-r--r--xsd/xsd.cxx28
-rw-r--r--xsd/xsd.hxx52
9 files changed, 101 insertions, 158 deletions
diff --git a/xsd/cxx/elements.cxx b/xsd/cxx/elements.cxx
index 7d2d277..4a76444 100644
--- a/xsd/cxx/elements.cxx
+++ b/xsd/cxx/elements.cxx
@@ -305,16 +305,18 @@ namespace CXX
if (!path.empty ())
{
+ path.normalize ();
+
// Try to use the portable representation of the path. If that
// fails, fall back to the native representation.
//
try
{
- pair = path.string ();
+ pair = path.posix_string ();
}
catch (SemanticGraph::InvalidPath const&)
{
- pair = path.native_file_string ();
+ pair = path.string ();
}
}
diff --git a/xsd/cxx/parser/elements.cxx b/xsd/cxx/parser/elements.cxx
index a721ea8..bd610a3 100644
--- a/xsd/cxx/parser/elements.cxx
+++ b/xsd/cxx/parser/elements.cxx
@@ -212,6 +212,7 @@ namespace CXX
s.context ().count ("renamed")
? s.context ().get<SemanticGraph::Path> ("renamed")
: u.path ());
+ path.normalize ();
// Try to use the portable representation of the path. If that
// fails, fall back to the native representation.
@@ -219,11 +220,11 @@ namespace CXX
NarrowString path_str;
try
{
- path_str = path.string ();
+ path_str = path.posix_string ();
}
catch (SemanticGraph::InvalidPath const&)
{
- path_str = path.native_file_string ();
+ path_str = path.string ();
}
String inc_path;
diff --git a/xsd/cxx/parser/generator.cxx b/xsd/cxx/parser/generator.cxx
index 7ef7183..a262004 100644
--- a/xsd/cxx/parser/generator.cxx
+++ b/xsd/cxx/parser/generator.cxx
@@ -3,9 +3,9 @@
// copyright : Copyright (c) 2005-2011 Code Synthesis Tools CC
// license : GNU GPL v2 + exceptions; see accompanying LICENSE file
+#include <algorithm>
#include <iostream>
-
-#include <boost/filesystem/fstream.hpp>
+#include <fstream>
#include <cutl/re.hxx>
@@ -52,17 +52,9 @@ using namespace XSDFrontend::SemanticGraph;
//
//
-typedef
-boost::filesystem::wifstream
-WideInputFileStream;
-
-typedef
-boost::filesystem::wofstream
-WideOutputFileStream;
-
-typedef
-boost::filesystem::ifstream
-NarrowInputFileStream;
+typedef std::wifstream WideInputFileStream;
+typedef std::wofstream WideOutputFileStream;
+typedef std::ifstream NarrowInputFileStream;
namespace CXX
{
@@ -136,8 +128,9 @@ namespace CXX
{
try
{
- Path fs_path (path, boost::filesystem::native);
- ifs.open (fs_path, std::ios_base::in | std::ios_base::binary);
+ Path fs_path (path);
+ ifs.open (fs_path.string ().c_str (),
+ std::ios_base::in | std::ios_base::binary);
if (!ifs.is_open ())
{
@@ -220,7 +213,7 @@ namespace CXX
{
if (NarrowString name = ops.extern_xml_schema ())
{
- if (file_path.native_file_string () != name)
+ if (file_path.string () != name)
generate_xml_schema = false;
}
}
@@ -395,7 +388,7 @@ namespace CXX
// Generate code.
//
- NarrowString name (file_path.leaf ());
+ NarrowString name (file_path.leaf ().string ());
NarrowString skel_suffix (ops.skel_file_suffix ());
NarrowString impl_suffix (ops.impl_file_suffix ());
@@ -501,9 +494,9 @@ namespace CXX
cxx_driver_name = cxx_driver_expr.replace (name);
}
- Path hxx_path (hxx_name, boost::filesystem::native);
- Path ixx_path (ixx_name, boost::filesystem::native);
- Path cxx_path (cxx_name, boost::filesystem::native);
+ Path hxx_path (hxx_name);
+ Path ixx_path (ixx_name);
+ Path cxx_path (cxx_name);
Path hxx_impl_path;
Path cxx_impl_path;
@@ -511,9 +504,9 @@ namespace CXX
if (impl || driver)
{
- hxx_impl_path = Path (hxx_impl_name, boost::filesystem::native);
- cxx_impl_path = Path (cxx_impl_name, boost::filesystem::native);
- cxx_driver_path = Path (cxx_driver_name, boost::filesystem::native);
+ hxx_impl_path = Path (hxx_impl_name);
+ cxx_impl_path = Path (cxx_impl_name);
+ cxx_driver_path = Path (cxx_driver_name);
}
Path out_dir;
@@ -522,7 +515,7 @@ namespace CXX
{
try
{
- out_dir = Path (dir, boost::filesystem::native);
+ out_dir = Path (dir);
}
catch (InvalidPath const&)
{
@@ -537,7 +530,7 @@ namespace CXX
// unless the user added the directory so that we propagate this
// to the output files.
//
- Path fpt_dir (file_path.branch_path ());
+ Path fpt_dir (file_path.directory ());
if (!fpt_dir.empty ())
out_dir /= fpt_dir;
@@ -568,7 +561,8 @@ namespace CXX
{
if (!ops.force_overwrite ())
{
- WideInputFileStream tmp (hxx_impl_path, ios_base::in);
+ WideInputFileStream tmp (
+ hxx_impl_path.string ().c_str (), ios_base::in);
if (tmp.is_open ())
{
@@ -580,7 +574,7 @@ namespace CXX
tmp.close ();
}
- hxx_impl.open (hxx_impl_path, ios_base::out);
+ hxx_impl.open (hxx_impl_path.string ().c_str (), ios_base::out);
if (!hxx_impl.is_open ())
{
@@ -590,11 +584,12 @@ namespace CXX
}
unlinks.add (hxx_impl_path);
- file_list.push_back (hxx_impl_path.native_file_string ());
+ file_list.push_back (hxx_impl_path.string ());
if (!ops.force_overwrite ())
{
- WideInputFileStream tmp (cxx_impl_path, ios_base::in);
+ WideInputFileStream tmp (
+ cxx_impl_path.string ().c_str (), ios_base::in);
if (tmp.is_open ())
{
@@ -606,7 +601,7 @@ namespace CXX
tmp.close ();
}
- cxx_impl.open (cxx_impl_path, ios_base::out);
+ cxx_impl.open (cxx_impl_path.string ().c_str (), ios_base::out);
if (!cxx_impl.is_open ())
{
@@ -616,14 +611,15 @@ namespace CXX
}
unlinks.add (cxx_impl_path);
- file_list.push_back (cxx_impl_path.native_file_string ());
+ file_list.push_back (cxx_impl_path.string ());
}
if (driver)
{
if (!ops.force_overwrite ())
{
- WideInputFileStream tmp (cxx_driver_path, ios_base::in);
+ WideInputFileStream tmp (
+ cxx_driver_path.string ().c_str (), ios_base::in);
if (tmp.is_open ())
{
@@ -635,7 +631,7 @@ namespace CXX
tmp.close ();
}
- cxx_driver.open (cxx_driver_path, ios_base::out);
+ cxx_driver.open (cxx_driver_path.string ().c_str (), ios_base::out);
if (!cxx_driver.is_open ())
{
@@ -645,12 +641,12 @@ namespace CXX
}
unlinks.add (cxx_driver_path);
- file_list.push_back (cxx_driver_path.native_file_string ());
+ file_list.push_back (cxx_driver_path.string ());
}
// Open the skel files.
//
- WideOutputFileStream hxx (hxx_path, ios_base::out);
+ WideOutputFileStream hxx (hxx_path.string ().c_str (), ios_base::out);
WideOutputFileStream ixx;
WideOutputFileStream cxx;
@@ -661,11 +657,11 @@ namespace CXX
}
unlinks.add (hxx_path);
- file_list.push_back (hxx_path.native_file_string ());
+ file_list.push_back (hxx_path.string ());
if (inline_)
{
- ixx.open (ixx_path, ios_base::out);
+ ixx.open (ixx_path.string ().c_str (), ios_base::out);
if (!ixx.is_open ())
{
@@ -674,13 +670,13 @@ namespace CXX
}
unlinks.add (ixx_path);
- file_list.push_back (ixx_path.native_file_string ());
+ file_list.push_back (ixx_path.string ());
}
if (source)
{
- cxx.open (cxx_path, ios_base::out);
+ cxx.open (cxx_path.string ().c_str (), ios_base::out);
if (!cxx.is_open ())
{
@@ -689,7 +685,7 @@ namespace CXX
}
unlinks.add (cxx_path);
- file_list.push_back (cxx_path.native_file_string ());
+ file_list.push_back (cxx_path.string ());
}
// Print copyright and license.
@@ -754,7 +750,7 @@ namespace CXX
NarrowString guard_prefix (ops.guard_prefix ());
if (!guard_prefix)
- guard_prefix = file_path.branch_path ().native_directory_string ();
+ guard_prefix = file_path.directory ().string ();
if (guard_prefix)
guard_prefix += '_';
diff --git a/xsd/cxx/tree/elements.cxx b/xsd/cxx/tree/elements.cxx
index 87d58ca..5fdee30 100644
--- a/xsd/cxx/tree/elements.cxx
+++ b/xsd/cxx/tree/elements.cxx
@@ -1326,6 +1326,7 @@ namespace CXX
s.context ().count ("renamed")
? s.context ().get<SemanticGraph::Path> ("renamed")
: u.path ());
+ path.normalize ();
// Try to use the portable representation of the path. If that
// fails, fall back to the native representation.
@@ -1333,11 +1334,11 @@ namespace CXX
NarrowString path_str;
try
{
- path_str = path.string ();
+ path_str = path.posix_string ();
}
catch (SemanticGraph::InvalidPath const&)
{
- path_str = path.native_file_string ();
+ path_str = path.string ();
}
String inc_path;
diff --git a/xsd/cxx/tree/fundamental-header.hxx b/xsd/cxx/tree/fundamental-header.hxx
index dd67f89..2171de4 100644
--- a/xsd/cxx/tree/fundamental-header.hxx
+++ b/xsd/cxx/tree/fundamental-header.hxx
@@ -8,6 +8,7 @@
#include <set>
#include <vector>
+#include <algorithm>
#include <xsd-frontend/semantic-graph.hxx>
#include <xsd-frontend/traversal.hxx>
diff --git a/xsd/cxx/tree/generator.cxx b/xsd/cxx/tree/generator.cxx
index a68db3e..b373d31 100644
--- a/xsd/cxx/tree/generator.cxx
+++ b/xsd/cxx/tree/generator.cxx
@@ -4,9 +4,9 @@
// license : GNU GPL v2 + exceptions; see accompanying LICENSE file
#include <vector>
+#include <algorithm>
#include <iostream>
-
-#include <boost/filesystem/fstream.hpp>
+#include <fstream>
#include <cutl/re.hxx>
#include <cutl/shared-ptr.hxx>
@@ -55,13 +55,8 @@ using namespace XSDFrontend::SemanticGraph;
//
//
-typedef
-boost::filesystem::wifstream
-WideInputFileStream;
-
-typedef
-boost::filesystem::wofstream
-WideOutputFileStream;
+typedef std::wifstream WideInputFileStream;
+typedef std::wofstream WideOutputFileStream;
namespace CXX
{
@@ -126,8 +121,9 @@ namespace CXX
{
try
{
- Path fs_path (path, boost::filesystem::native);
- ifs.open (fs_path, std::ios_base::in | std::ios_base::binary);
+ Path fs_path (path);
+ ifs.open (fs_path.string ().c_str (),
+ std::ios_base::in | std::ios_base::binary);
if (!ifs.is_open ())
{
@@ -288,7 +284,7 @@ namespace CXX
{
if (NarrowString name = ops.extern_xml_schema ())
{
- if (file_path.native_file_string () != name)
+ if (file_path.string () != name)
generate_xml_schema = false;
}
}
@@ -316,7 +312,7 @@ namespace CXX
// Generate code.
//
- NarrowString name (file_path.leaf ());
+ NarrowString name (file_path.leaf ().string ());
NarrowString hxx_suffix (ops.hxx_suffix ());
NarrowString ixx_suffix (ops.ixx_suffix ());
@@ -389,10 +385,10 @@ namespace CXX
NarrowString fwd_name (forward ? fwd_expr.replace (name) : NarrowString ());
NarrowString dep_name (gen_dep ? dep_expr.replace (name) : NarrowString ());
- Path hxx_path (hxx_name, boost::filesystem::native);
- Path ixx_path (ixx_name, boost::filesystem::native);
- Path fwd_path (fwd_name, boost::filesystem::native);
- Path dep_path (dep_name, boost::filesystem::native);
+ Path hxx_path (hxx_name);
+ Path ixx_path (ixx_name);
+ Path fwd_path (fwd_name);
+ Path dep_path (dep_name);
Paths cxx_paths;
if (source)
@@ -417,13 +413,11 @@ namespace CXX
throw Failed ();
}
- cxx_paths.push_back (
- Path (cxx_expr.replace (part_name), boost::filesystem::native));
+ cxx_paths.push_back (Path (cxx_expr.replace (part_name)));
}
}
else
- cxx_paths.push_back (
- Path (cxx_expr.replace (name), boost::filesystem::native));
+ cxx_paths.push_back (Path (cxx_expr.replace (name)));
}
Path out_dir;
@@ -432,7 +426,7 @@ namespace CXX
{
try
{
- out_dir = Path (dir, boost::filesystem::native);
+ out_dir = Path (dir);
}
catch (InvalidPath const&)
{
@@ -447,7 +441,7 @@ namespace CXX
// unless the user added the directory so that we propagate this
// to the output files.
//
- Path fpt_dir (file_path.branch_path ());
+ Path fpt_dir (file_path.directory ());
if (!fpt_dir.empty ())
out_dir /= fpt_dir;
@@ -477,7 +471,7 @@ namespace CXX
//
if (gen_dep)
{
- dep.open (dep_path, ios_base::out);
+ dep.open (dep_path.string ().c_str (), ios_base::out);
if (!dep.is_open ())
{
@@ -486,14 +480,14 @@ namespace CXX
}
unlinks.add (dep_path);
- file_list.push_back (dep_path.native_file_string ());
+ file_list.push_back (dep_path.string ());
}
// FWD
//
if (gen_cxx && forward)
{
- fwd.open (fwd_path, ios_base::out);
+ fwd.open (fwd_path.string ().c_str (), ios_base::out);
if (!fwd.is_open ())
{
@@ -502,14 +496,14 @@ namespace CXX
}
unlinks.add (fwd_path);
- file_list.push_back (fwd_path.native_file_string ());
+ file_list.push_back (fwd_path.string ());
}
// HXX
//
if (gen_cxx && header)
{
- hxx.open (hxx_path, ios_base::out);
+ hxx.open (hxx_path.string ().c_str (), ios_base::out);
if (!hxx.is_open ())
{
@@ -518,14 +512,14 @@ namespace CXX
}
unlinks.add (hxx_path);
- file_list.push_back (hxx_path.native_file_string ());
+ file_list.push_back (hxx_path.string ());
}
// IXX
//
if (gen_cxx && inline_)
{
- ixx.open (ixx_path, ios_base::out);
+ ixx.open (ixx_path.string ().c_str (), ios_base::out);
if (!ixx.is_open ())
{
@@ -534,7 +528,7 @@ namespace CXX
}
unlinks.add (ixx_path);
- file_list.push_back (ixx_path.native_file_string ());
+ file_list.push_back (ixx_path.string ());
}
// CXX
@@ -545,7 +539,8 @@ namespace CXX
i != cxx_paths.end (); ++i)
{
shared_ptr<WideOutputFileStream> s (
- new (shared) WideOutputFileStream (*i, ios_base::out));
+ new (shared) WideOutputFileStream (
+ i->string ().c_str (), ios_base::out));
if (!s->is_open ())
{
@@ -554,7 +549,7 @@ namespace CXX
}
unlinks.add (*i);
- file_list.push_back (i->native_file_string ());
+ file_list.push_back (i->string ());
cxx.push_back (s);
}
}
@@ -632,7 +627,7 @@ namespace CXX
NarrowString guard_prefix (ops.guard_prefix ());
if (!guard_prefix)
- guard_prefix = file_path.branch_path ().native_directory_string ();
+ guard_prefix = file_path.directory ().string ();
if (guard_prefix)
guard_prefix += '_';
@@ -652,19 +647,19 @@ namespace CXX
}
else
{
- target = hxx_path.native_file_string ();
+ target = hxx_path.string ();
if (forward)
- target += " \\\n" + fwd_path.native_file_string ();
+ target += " \\\n" + fwd_path.string ();
if (inline_)
- target += " \\\n" + ixx_path.native_file_string ();
+ target += " \\\n" + ixx_path.string ();
for (Paths::iterator i (cxx_paths.begin ());
i != cxx_paths.end (); ++i)
- target += " \\\n" + i->native_file_string ();
+ target += " \\\n" + i->string ();
- target += " \\\n" + dep_path.native_file_string ();
+ target += " \\\n" + dep_path.string ();
}
dep << target.c_str () << ':';
@@ -674,7 +669,7 @@ namespace CXX
for (Paths::iterator i (prq.begin ()); i != prq.end (); ++i)
dep << " \\" << endl
- << " " << i->string ();
+ << " " << *i;
dep << endl;
@@ -685,7 +680,7 @@ namespace CXX
{
for (Paths::iterator i (prq.begin () + 1); i != prq.end (); ++i)
dep << endl
- << i->string () << ':' << endl;
+ << *i << ':' << endl;
}
}
diff --git a/xsd/makefile b/xsd/makefile
index 00bab30..e80df26 100644
--- a/xsd/makefile
+++ b/xsd/makefile
@@ -86,10 +86,6 @@ $(call import,\
l: cutl.l,cpp-options: cutl.l.cpp-options)
$(call import,\
- $(scf_root)/import/libboost/filesystem/stub.make,\
- l: fs.l,cpp-options: fs.l.cpp-options)
-
-$(call import,\
$(scf_root)/import/libxsd-frontend/stub.make,\
l: xsd_fe.l,cpp-options: xsd_fe.l.cpp-options)
@@ -99,13 +95,12 @@ $(call import,\
# Build.
#
-$(xsd): $(cxx_obj) $(xsd_fe.l) $(cutl.l) $(fs.l) $(xerces_c.l)
+$(xsd): $(cxx_obj) $(xsd_fe.l) $(cutl.l) $(xerces_c.l)
$(cxx_obj) $(cxx_od): cpp_options := -I$(src_base)
$(cxx_obj) $(cxx_od): \
$(xsd_fe.l.cpp-options) \
$(cutl.l.cpp-options) \
- $(fs.l.cpp-options) \
$(xerces_c.l.cpp-options)
genf := $(cli_tun:.cli=.hxx) $(cli_tun:.cli=.ixx) $(cli_tun:.cli=.cxx)
diff --git a/xsd/xsd.cxx b/xsd/xsd.cxx
index de6f2fd..794745f 100644
--- a/xsd/xsd.cxx
+++ b/xsd/xsd.cxx
@@ -8,8 +8,7 @@
#include <memory> // std::auto_ptr
#include <cstddef> // std::size_t
#include <iostream>
-
-#include <boost/filesystem/fstream.hpp>
+#include <fstream>
#include <xercesc/util/PlatformUtils.hpp>
@@ -420,7 +419,7 @@ main (int argc, char* argv[])
try
{
- tu = SemanticGraph::Path (files[i], boost::filesystem::native);
+ tu = SemanticGraph::Path (files[i]);
}
catch (SemanticGraph::InvalidPath const&)
{
@@ -453,7 +452,7 @@ main (int argc, char* argv[])
{
if (NarrowString name = common_ops.extern_xml_schema ())
{
- if (tu.native_file_string () != name)
+ if (tu.string () != name)
gen_xml_schema = false;
}
}
@@ -589,8 +588,7 @@ main (int argc, char* argv[])
{
try
{
- paths.push_back (
- SemanticGraph::Path (files[i], boost::filesystem::native));
+ paths.push_back (SemanticGraph::Path (files[i]));
}
catch (SemanticGraph::InvalidPath const&)
{
@@ -625,7 +623,7 @@ main (int argc, char* argv[])
try
{
Transformations::Anonymous trans (anon_translator);
- trans.transform (*schema, "", false);
+ trans.transform (*schema, SemanticGraph::Path (), false);
}
catch (Transformations::Anonymous::Failed const&)
{
@@ -638,7 +636,7 @@ main (int argc, char* argv[])
if (cmd == "cxx-tree")
{
Transformations::EnumSynthesis trans;
- trans.transform (*schema, "");
+ trans.transform (*schema, SemanticGraph::Path ());
}
// Simplify the schema graph.
@@ -646,7 +644,7 @@ main (int argc, char* argv[])
if (cmd == "cxx-parser")
{
Transformations::Simplifier trans;
- trans.transform (*schema, "");
+ trans.transform (*schema, SemanticGraph::Path ());
}
// Normalize and annotate complex content restrictions.
@@ -656,7 +654,7 @@ main (int argc, char* argv[])
try
{
Transformations::Restriction trans;
- trans.transform (*schema, "");
+ trans.transform (*schema, SemanticGraph::Path ());
}
catch (Transformations::Restriction::Failed const&)
{
@@ -668,7 +666,7 @@ main (int argc, char* argv[])
//
{
Processing::Cardinality::Processor proc;
- proc.process (*schema, "");
+ proc.process (*schema, SemanticGraph::Path ());
}
// Rearrange the graph so that each type is in a seperate
@@ -751,14 +749,14 @@ main (int argc, char* argv[])
//
if (NarrowString fl = common_ops.file_list ())
{
- typedef boost::filesystem::ofstream OutputFileStream;
+ typedef std::ofstream OutputFileStream;
try
{
OutputFileStream ofs;
SemanticGraph::Path path (fl);
- ofs.open (fl, ios_base::out);
+ ofs.open (path.string ().c_str (), ios_base::out);
if (!ofs.is_open ())
{
@@ -960,7 +958,7 @@ AnonymousNameTranslator (NarrowStrings const& regex, bool trace)
catch (RegexFormat const& e)
{
wcerr << "error: invalid anonymous type regex: '" <<
- e.regex () << "': " << e.description () << endl;
+ e.regex () << "': " << e.description ().c_str () << endl;
throw Failed ();
}
@@ -1023,7 +1021,7 @@ SchemaPerTypeTranslator (NarrowStrings const& type_regex,
catch (TypeRegexFormat const& e)
{
wcerr << "error: invalid type file regex: '" <<
- e.regex () << "': " << e.description () << endl;
+ e.regex () << "': " << e.description ().c_str () << endl;
throw Failed ();
}
diff --git a/xsd/xsd.hxx b/xsd/xsd.hxx
index 43f38ea..83bfdfd 100644
--- a/xsd/xsd.hxx
+++ b/xsd/xsd.hxx
@@ -11,6 +11,7 @@
#include <cstdio> // std::remove
#include <cutl/shared-ptr.hxx>
+#include <cutl/fs/auto-remove.hxx>
#include <xsd-frontend/semantic-graph/elements.hxx> // Path
@@ -19,54 +20,7 @@
typedef std::set<NarrowString> WarningSet;
typedef std::vector<NarrowString> FileList;
-//
-//
-struct AutoUnlink
-{
- AutoUnlink (XSDFrontend::SemanticGraph::Path const& file)
- : file_ (file), canceled_ (false)
- {
- }
-
- ~AutoUnlink ()
- {
- if (!canceled_)
- std::remove (file_.native_file_string ().c_str ());
- }
-
- void
- cancel ()
- {
- canceled_ = true;
- }
-
-private:
- XSDFrontend::SemanticGraph::Path file_;
- bool canceled_;
-};
-
-//
-//
-struct AutoUnlinks
-{
- void
- add (XSDFrontend::SemanticGraph::Path const& file)
- {
- unlinks_.push_back(
- cutl::shared_ptr<AutoUnlink> (
- new (shared) AutoUnlink (file)));
- }
-
- void
- cancel ()
- {
- for (Unlinks::iterator i (unlinks_.begin ()); i != unlinks_.end (); ++i)
- (*i)->cancel ();
- }
-
-private:
- typedef std::vector<cutl::shared_ptr<AutoUnlink> > Unlinks;
- Unlinks unlinks_;
-};
+typedef cutl::fs::auto_remove AutoUnlink;
+typedef cutl::fs::auto_removes AutoUnlinks;
#endif // XSD_HXX