DSCanvas: make the DSCanvasPrivate. 89/241589/1
authorSooChan Lim <sc1.lim@samsung.com>
Wed, 8 Jul 2020 09:32:19 +0000 (18:32 +0900)
committerSung-Jin Park <sj76.park@samsung.com>
Thu, 20 Aug 2020 09:46:06 +0000 (18:46 +0900)
use Pimpl pattern on DSCanvas

Change-Id: I3b9811531ddf784f5f36b0c800540eca5bf41b99

src/DSCanvas/DSCanvas.cpp
src/DSCanvas/DSCanvas.h
src/DSCanvas/DSCanvasPrivate.h [new file with mode: 0644]

index f952083..bc9f066 100644 (file)
@@ -1,12 +1,12 @@
 #include "DSCanvas.h"
+#include "DSCanvasPrivate.h"
 #include "DSDebugLog.h"
 
 namespace display_server
 {
 
 DSCanvas::DSCanvas()
-       : __policyArea(nullptr),
-         __displayArea(nullptr)
+       : DS_INIT_PRIVATE_PTR(DSCanvas)
 {}
 
 DSCanvas::~DSCanvas()
@@ -14,8 +14,38 @@ DSCanvas::~DSCanvas()
 
 bool DSCanvas::attachPolicyArea(std::shared_ptr<DSPolicyArea> policyArea)
 {
-       if (policyArea) {
-               DSLOG_ERR("DSCanvas", "canvas has already policyArea(%p).", policyArea);
+       DS_GET_PRIV(DSCanvas);
+
+       if (!priv->attachPolicyArea(policyArea))
+               return false;
+
+       return true;
+}
+
+bool DSCanvas::attachDisplayArea(std::shared_ptr<DSDisplayArea> displayArea)
+{
+       DS_GET_PRIV(DSCanvas);
+
+       if (!priv->attachDisplayArea(displayArea))
+               return false;
+
+       return true;
+}
+
+DSCanvasPrivate::DSCanvasPrivate(DSCanvas *p_ptr)
+       : DSObjectPrivate(p_ptr),
+         __p_ptr(p_ptr),
+         __policyArea(nullptr),
+         __displayArea(nullptr)
+{}
+
+DSCanvasPrivate::~DSCanvasPrivate()
+{}
+
+bool DSCanvasPrivate::attachPolicyArea(std::shared_ptr<DSPolicyArea> policyArea)
+{
+       if (__policyArea) {
+               DSLOG_ERR("DSCanvasPrivate", "canvas has already policyArea(%p).", policyArea);
                return false;
        }
 
@@ -24,10 +54,10 @@ bool DSCanvas::attachPolicyArea(std::shared_ptr<DSPolicyArea> policyArea)
        return true;
 }
 
-bool DSCanvas::attachDisplayArea(std::shared_ptr<DSDisplayArea> displayArea)
+bool DSCanvasPrivate::attachDisplayArea(std::shared_ptr<DSDisplayArea> displayArea)
 {
        if (__displayArea) {
-               DSLOG_ERR("DSCanvas", "canvas has already displayArea(%p).", __displayArea);
+               DSLOG_ERR("DSCanvasPrivate", "canvas has already displayArea(%p).", __displayArea);
                return false;
        }
 
index 6e62fe2..1be8ead 100644 (file)
@@ -1,25 +1,28 @@
-#ifndef _DSCANVAS_H_
-#define _DSCANVAS_H_
+#ifndef __DS_CANVAS_H__
+#define __DS_CANVAS_H__
 
+#include <DSCore.h>
+#include <DSObject.h>
 #include <DSPolicyArea.h>
 #include <DSDisplayArea.h>
 #include <memory>
 
 namespace display_server
 {
-class DSCanvas
+
+class DSCanvasPrivate;
+
+class DSCanvas : public DSObject
 {
+DS_PIMPL_USE_PRIVATE(DSCanvas);
 public:
-       DSCanvas();
+       explicit DSCanvas();
        virtual ~DSCanvas();
 
        bool attachPolicyArea(std::shared_ptr<DSPolicyArea> polcyArea);
        bool attachDisplayArea(std::shared_ptr<DSDisplayArea> displayArea);
-
-private:
-       std::shared_ptr<DSPolicyArea> __policyArea;
-       std::shared_ptr<DSDisplayArea> __displayArea;
 };
+
 }
 
 #endif
\ No newline at end of file
diff --git a/src/DSCanvas/DSCanvasPrivate.h b/src/DSCanvas/DSCanvasPrivate.h
new file mode 100644 (file)
index 0000000..bded0a9
--- /dev/null
@@ -0,0 +1,27 @@
+#ifndef __DS_CANVAS_PRIVATE_H__
+#define __DS_CANVAS_PRIVATE_H__
+
+#include "DSCanvas.h"
+
+namespace display_server
+{
+
+class DSCanvasPrivate : public DSObjectPrivate
+{
+DS_PIMPL_USE_PUBLIC(DSCanvas);
+public:
+       DSCanvasPrivate() = delete;
+       DSCanvasPrivate(DSCanvas *p_ptr);
+       ~DSCanvasPrivate();
+
+       bool attachPolicyArea(std::shared_ptr<DSPolicyArea> polcyArea);
+       bool attachDisplayArea(std::shared_ptr<DSDisplayArea> displayArea);
+
+private:
+       std::shared_ptr<DSPolicyArea> __policyArea;
+       std::shared_ptr<DSDisplayArea> __displayArea;
+};
+
+}
+
+#endif
\ No newline at end of file