Implements WatchBase
[platform/core/appfw/widget-viewer.git] / watch-holder / src / watch_holder.hh
index e4b61a3..2bef2f1 100644 (file)
 #include <bundle_cpp.h>
 #include <aul_app_com.h>
 
+#include "watch_holder_base.hh"
 #include "watch.hh"
-#include "common.hh"
 #include "ambient_listener.hh"
 
 namespace watch_holder {
 
-class EXPORT_API WatchHolder : public Watch::IEvent, public AmbientListener {
+class EXPORT_API WatchHolder : public WatchHolderBase {
  public:
   WatchHolder(Evas_Object* win);
   virtual ~WatchHolder();
-  int Launch(std::string appid, bool background, bundle* extra);
-  void EnableRendering();
-  void DisableRendering(int timeout);
-  const std::list<std::shared_ptr<Watch>>& GetStack() const;
-  std::shared_ptr<Watch> GetCurrent() const;
-  virtual void OnLaunched(const Watch& watch) = 0;
-  virtual void OnDead(const Watch& watch) = 0;
-  virtual void OnAmbientChanged(bool enter, tizen_base::Bundle& extra) override;
-  virtual void OnAmbientEvent(EventType ev, std::string sender,
-      tizen_base::Bundle extra) override;
 
- protected:
-  virtual std::shared_ptr<Watch> CreateWatch(std::string appid,
-    Evas_Object* viewer_win, Watch::IEvent* listener, bool mock = false);
-  virtual std::shared_ptr<Watch> CreateWatch(int rid, std::string id,
-    std::string appid, Evas_Object* viewer_win, Watch::IEvent* listener,
-    bool mock = false);
-  virtual std::shared_ptr<Watch> CreateWatch(std::string appid,
-    Evas_Object* viewer_win, tizen_base::Bundle extra,
-    Watch::IEvent* listener, bool mock = false);
-  virtual std::shared_ptr<Watch> CreateWatch(int rid, std::string id,
-    std::string appid, Evas_Object* viewer_win, tizen_base::Bundle extra,
-    Watch::IEvent* listener, bool mock = false);
+  std::shared_ptr<Watch> Cast(std::shared_ptr<WatchBase> w_base);
+  const Watch& Cast(const WatchBase& w_base);
 
- private:
-  static int OnDeadSignal(const char *endpoint, aul_app_com_result_e e,
-    bundle *envelope, void *user_data);
-  static int OnLaunchSignal(const char *endpoint,
-    aul_app_com_result_e res, bundle *envelope, void *user_data);
+ protected:
+  std::shared_ptr<WatchBase> CreateWatch(std::string appid,
+      bool mock = false) override;
+  std::shared_ptr<WatchBase> CreateWatch(int rid, std::string id,
+    std::string appid, bool mock = false) override;
+  std::shared_ptr<WatchBase> CreateWatch(std::string appid,
+    tizen_base::Bundle extra, bool mock = false) override;
+  std::shared_ptr<WatchBase> CreateWatch(int rid, std::string id,
+    std::string appid, tizen_base::Bundle extra, bool mock = false) override;
 
  private:
-  std::string appid_;
-  Evas_Object* win_;
-  std::map<std::string, tizen_base::Bundle> extra_map_;
-  std::list<std::shared_ptr<Watch>> stack_;
-  aul_app_com_connection_h launch_signal_conn_ = nullptr;
-  aul_app_com_connection_h dead_signal_conn_ = nullptr;
-  aul_app_com_connection_h ambient_changed_signal_conn_ = nullptr;
+  Evas_Object* viewer_win_;
 };
 
 }  // namespace watch_holder