00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef KIT_LIST_PGSQL_DAO_H
00024 #define KIT_LIST_PGSQL_DAO_H 1
00025
00026 #include <config.h>
00027 #ifdef HAVE_LIBPQXX
00028
00029 #include <pqxx/pqxx>
00030 #include "kitlistdao.hpp"
00031 #include "kitmodel.hpp"
00032
00037 class KitListPgsqlDao : public KitListDao {
00038 pqxx::connection* m_db_connection;
00039 void connect();
00040 std::string generate_uuid();
00041 protected:
00042 std::string m_dbname;
00043 std::string m_user;
00044 std::string m_port;
00045 public :
00046 KitListPgsqlDao(int verbose = 0);
00047
00061 KitListPgsqlDao(const std::string dbname, int verbose = 0);
00062
00078 KitListPgsqlDao(const std::string dbname, const std::string user, const std::string port, int verbose = 0);
00079
00080 ~KitListPgsqlDao();
00081
00082 KitModel* get_model();
00083
00084 void save_model(KitModel* model);
00085
00086 Category* get_category(long cat_id, item_choice choice);
00087
00088 ItemContainer* get_all_items(item_choice choice);
00089
00090 long add_item(const std::string name);
00091
00092 long add_item(const std::string name, long cat_id);
00093
00094 void append_items_to_category(long to_cat_id, long from_cat_id, item_choice choice);
00095
00096 void associate_item_with_category(long id, long cat_id);
00097
00098 CategoryContainer get_categories();
00099
00100 long new_category(const std::string name);
00101
00102 void delete_item(long id);
00103
00104 void update_item_checked_state(ItemContainer& items);
00105
00106 void remove_item_from_category(long id, long cat_id);
00107
00108 long get_next_item_id();
00109
00110 long get_next_category_id();
00111
00112 void delete_category(long id);
00113
00114 void set_item_flag(long id);
00115
00116 void unset_item_flag(long id);
00117
00118 void set_category_flag(long id);
00119
00120 void unset_category_flag(long id);
00121
00122 void set_all_flags();
00123
00124 void unset_all_flags();
00125
00126 };
00127 #endif //HAVE_LIBPQXX
00128 #endif //KIT_LIST_PGSQL_DAO_H