From b1ad00313f652752bf2c88aced0f6829e704d9ed Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 14 Aug 2011 12:00:10 -0400 Subject: [PATCH] TDB2 & CmdCustom - Converted CmdCustom to use TDB2, which means that for the first time, 2.0 is now optimizing data load based on filter characteristics. This means that "task list" and "task next" etc are now *fast*. - Improved diagnostics for TDB2, for debugging. --- src/TDB2.cpp | 20 ++++++++++---------- src/commands/CmdCustom.cpp | 11 ++--------- 2 files changed, 12 insertions(+), 19 deletions(-) diff --git a/src/TDB2.cpp b/src/TDB2.cpp index 25225b334..dae95ffd7 100644 --- a/src/TDB2.cpp +++ b/src/TDB2.cpp @@ -60,7 +60,7 @@ void TF2::target (const std::string& f) //////////////////////////////////////////////////////////////////////////////// const std::vector & TF2::get_tasks () { -// std::cout << "# TF2::get_tasks\n"; +// std::cout << "# TF2::get_tasks " << _file.data << "\n"; if (! _loaded_tasks) load_tasks (); @@ -71,7 +71,7 @@ const std::vector & TF2::get_tasks () //////////////////////////////////////////////////////////////////////////////// const std::vector & TF2::get_lines () { -// std::cout << "# TF2::get_lines\n"; +// std::cout << "# TF2::get_lines " << _file.data << "\n"; if (! _loaded_lines) load_lines (); @@ -82,7 +82,7 @@ const std::vector & TF2::get_lines () //////////////////////////////////////////////////////////////////////////////// const std::string& TF2::get_contents () { -// std::cout << "# TF2::get_contents\n"; +// std::cout << "# TF2::get_contents " << _file.data << "\n"; if (! _loaded_contents) load_contents (); @@ -93,7 +93,7 @@ const std::string& TF2::get_contents () //////////////////////////////////////////////////////////////////////////////// void TF2::add_task (const Task& task) { -// std::cout << "# TF2::add_task\n"; +// std::cout << "# TF2::add_task " << _file.data << "\n"; _tasks.push_back (task); // For subsequent queries _added_tasks.push_back (task); // For commit/synch @@ -103,7 +103,7 @@ void TF2::add_task (const Task& task) //////////////////////////////////////////////////////////////////////////////// void TF2::modify_task (const Task& task) { -// std::cout << "# TF2::modify_task\n"; +// std::cout << "# TF2::modify_task " << _file.data << "\n"; // Modify in-place. std::vector ::iterator i; @@ -123,7 +123,7 @@ void TF2::modify_task (const Task& task) //////////////////////////////////////////////////////////////////////////////// void TF2::add_line (const std::string& line) { -// std::cout << "# TF2::add_line\n"; +// std::cout << "# TF2::add_line " << _file.data << "\n"; _added_lines.push_back (line); _dirty = true; @@ -133,7 +133,7 @@ void TF2::add_line (const std::string& line) // This is so that synch.key can just overwrite and not grow. void TF2::clear_lines () { -// std::cout << "# TF2::clear_lines\n"; +// std::cout << "# TF2::clear_lines " << _file.data << "\n"; _lines.clear (); _dirty = true; } @@ -239,7 +239,7 @@ void TF2::commit () //////////////////////////////////////////////////////////////////////////////// void TF2::load_tasks () { -// std::cout << "# TF2::load_tasks\n"; +// std::cout << "# TF2::load_tasks " << _file.data << "\n"; if (! _loaded_lines) load_lines (); @@ -283,7 +283,7 @@ void TF2::load_tasks () //////////////////////////////////////////////////////////////////////////////// void TF2::load_lines () { -// std::cout << "# TF2::load_lines\n"; +// std::cout << "# TF2::load_lines " << _file.data << "\n"; if (! _loaded_contents) load_contents (); @@ -295,7 +295,7 @@ void TF2::load_lines () //////////////////////////////////////////////////////////////////////////////// void TF2::load_contents () { -// std::cout << "# TF2::load_contents\n"; +// std::cout << "# TF2::load_contents " << _file.data << "\n"; _contents = ""; diff --git a/src/commands/CmdCustom.cpp b/src/commands/CmdCustom.cpp index a11eae5f5..134baae74 100644 --- a/src/commands/CmdCustom.cpp +++ b/src/commands/CmdCustom.cpp @@ -92,17 +92,10 @@ int CmdCustom::execute (std::string& output) context.a3.dump ("CmdCustom::execute"); // Load the data. - // TODO Replace with TDB2. - std::vector tasks; - context.tdb.lock (context.config.getBoolean ("locking")); handleRecurrence (); - context.tdb.load (tasks); - context.tdb.commit (); - context.tdb.unlock (); - - // Apply filter. + context.tdb2.commit (); std::vector filtered; - filter (tasks, filtered); + filter (filtered); // Sort the tasks. std::vector sequence;