#define _WIDGET_INTERFACE_DAO_H_
#include <string>
-#include <dpl/db/thread_database_support.h>
-#include <dpl/db/orm_interface.h>
+#include <boost/optional.hpp>
+#include <dpl/wrt-dao-ro/common_dao_types.h>
+#include <dpl/exception.h>
+#include <sqlite3.h>
namespace WidgetInterfaceDB {
-class WidgetInterfaceDAO
+
+class WidgetInterfaceDAO : public WrtDB::SQLiteDAOBase
{
public:
DECLARE_EXCEPTION_TYPE(Base, LocalStorageValueNoModifableException)
DECLARE_EXCEPTION_TYPE(Base, InvalidArgumentException)
};
- WidgetInterfaceDAO(int widgetHandle);
+ WidgetInterfaceDAO(WrtDB::DbWidgetHandle widgetHandle);
virtual ~WidgetInterfaceDAO();
- static std::string databaseFileName(int widgetHandle);
+ static std::string databaseFileName(WrtDB::DbWidgetHandle widgetHandle);
void setItem(const std::string& key,
const std::string& value,
bool readOnly,
const std::string& value,
bool readOnly);
void removeItem(const std::string& key);
- DPL::Optional<std::string> getValue(const std::string& key) const;
+ boost::optional<std::string> getValue(const std::string& key);
void clear(bool removeReadOnly);
- size_t getStorageSize() const;
- std::string getKeyByIndex(size_t index) const;
-
- protected:
- int m_widgetHandle;
- mutable DPL::DB::ThreadDatabaseSupport m_databaseInterface;
+ size_t getStorageSize();
+ std::string getKeyByIndex(size_t index);
private:
- void checkDatabase();
- void copyPropertiesFromWrtDatabase();
+ bool isReadOnly(const std::string& key);
};
typedef std::unique_ptr<WidgetInterfaceDAO> WidgetInterfaceDAOPtr;
}