#include <fstream>
#include <string>
#include <iostream>
+#include "misc.hxx"
namespace dialektos {
ThreadIdx::ThreadIdx() : title_(), line_count_(0), last_modified_(), etag_()
{}
-void ThreadIdx::to_xml(const boost::filesystem::path& xml) {
+void ThreadIdx::to_xml(const boost::filesystem::path& _xml) {
+ const std::string prefix = _xml.filename().substr(0, 3);
+ const boost::filesystem::path xml =
+ _xml.parent_path() / prefix / _xml.filename();
+
+ if (!misc::create_directories(xml.parent_path())) return;
std::ofstream ofs(xml.file_string().c_str());
try {
boost::archive::xml_oarchive oa(ofs);
ofs.close();
}
-ThreadIdx ThreadIdx::from_xml(const boost::filesystem::path& xml) {
+ThreadIdx ThreadIdx::from_xml(const boost::filesystem::path& _xml) {
ThreadIdx idx;
+ const std::string prefix = _xml.filename().substr(0, 3);
+ const boost::filesystem::path xml =
+ _xml.parent_path() / prefix / _xml.filename();
+
if (!boost::filesystem::exists(xml) ||
!boost::filesystem::is_regular_file(xml))
return idx;