OSDN Git Service

大量変更… (こういう風に書くのは好ましくない〜)
[gikomona/GikoMona.git] / core / src / GikoMona.cpp
1 #include <wx/xrc/xmlres.h>
2 #include <exception>
3
4 #include <boost/filesystem.hpp>
5
6 #include <wx/msgdlg.h>
7
8 #include "GikoMona.hpp"
9 #include "database.hpp"
10 #include "model.hpp"
11
12 #include "extension.hpp"
13
14 namespace monazilla { namespace GikoMona { namespace core {
15
16 namespace {
17
18 model *app_model;
19 extension *app_extension;
20
21 }
22
23 bool init_core() {
24     wxXmlResource::Get()->InitAllHandlers();
25     wxXmlResource::Get()->LoadAllFiles(wxT("resouce"));
26     
27     boost::system::error_code reason;
28     if(!boost::filesystem::create_directory(".tmp", reason) || reason) {
29         // log
30         std::terminate();
31     }
32     
33     app_model = new model;
34     app_extension = new extension;
35     
36     return true;
37 }
38
39 void done_core() noexcept {
40     delete app_extension;
41     delete app_model;
42
43     optimize_database("./history.db");
44 }
45
46 void optimize_database(const boost::filesystem::path& db_path) {
47     database db(db_path);
48     /*
49     auto value = db.compile(u8"SELECT * FROM file-information;");
50     value.execute();
51     value.get_result<int>();
52     */
53     if(db.select<int>("count-of-deleting-values", "file-infomation") >= 1000) {
54         db.optimize();
55     }
56 }
57
58 } } }