tizen 2.4 release
[framework/web/wrt-commons.git] / modules / widget_interface_dao / include / wrt-commons / widget-interface-dao / widget_interface_dao.h
 #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:
 
@@ -42,10 +45,10 @@ class WidgetInterfaceDAO
         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,
@@ -54,18 +57,13 @@ class WidgetInterfaceDAO
                  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;
 }