make the abstract factory pattern for DSRender (4/6) 05/241505/1
authorSooChan Lim <sc1.lim@samsung.com>
Tue, 31 Mar 2020 06:41:25 +0000 (15:41 +0900)
committerSung-Jin Park <sj76.park@samsung.com>
Thu, 20 Aug 2020 09:44:11 +0000 (18:44 +0900)
add the DSRenderFactory class and its concrete classes.

=========================================================================

make the initial code of the abstract factory pattern for the DSRender

At this time, there are two concrete factories.
- DSRenderFactoryEcoreEvas
- DSRenderFactoryDali

Each concrete factory creates three resouces below.
- DSRenderEngine
- DSRenderSurface
- DSRenderView

Change-Id: Ia0c3bf3ffac66c3b649a37c4a9d490c46e3c639c

meson.build
src/lib/DSRender/DSRenderFactory.h [new file with mode: 0644]
src/lib/DSRender/DSRenderFactoryDali.cpp [new file with mode: 0644]
src/lib/DSRender/DSRenderFactoryDali.h [new file with mode: 0644]
src/lib/DSRender/DSRenderFactoryEcoreEvas.cpp [new file with mode: 0644]
src/lib/DSRender/DSRenderFactoryEcoreEvas.h [new file with mode: 0644]

index 1d7508a..c51eea5 100644 (file)
@@ -44,6 +44,8 @@ src_libds = [
        'src/lib/DSRender/DSRenderView.cpp',
        'src/lib/DSRender/DSRenderViewEcoreEvas.cpp',
        'src/lib/DSRender/DSRenderViewDali.cpp',
+       'src/lib/DSRender/DSRenderFactoryEcoreEvas.cpp',
+       'src/lib/DSRender/DSRenderFactoryDali.cpp',
        ]
 
 pkgconfig = import('pkgconfig')
diff --git a/src/lib/DSRender/DSRenderFactory.h b/src/lib/DSRender/DSRenderFactory.h
new file mode 100644 (file)
index 0000000..24c6bf8
--- /dev/null
@@ -0,0 +1,21 @@
+#ifndef _DSRENDERFACTORY_H_
+#define _DSRENDERFACTORY_H_
+
+#include "DSRenderEngine.h"
+#include "DSRenderSurface.h"
+#include "DSRenderView.h"
+
+namespace display_server
+{
+       class DSRenderFactory
+       {
+       public:
+               virtual ~DSRenderFactory() = default;
+
+               virtual DSRenderEngine* createDSRenderEngine() = 0;
+               virtual DSRenderSurface* createDSRenderSurface() = 0;
+               virtual DSRenderView* createDSRenderView() = 0;
+       };
+}
+
+#endif
diff --git a/src/lib/DSRender/DSRenderFactoryDali.cpp b/src/lib/DSRender/DSRenderFactoryDali.cpp
new file mode 100644 (file)
index 0000000..505d068
--- /dev/null
@@ -0,0 +1,30 @@
+#include "DSRenderFactoryDali.h"
+
+namespace display_server
+{
+       DSRenderFactoryDali::DSRenderFactoryDali(/* args */)
+       {
+       }
+
+       DSRenderFactoryDali::~DSRenderFactoryDali()
+       {
+       }
+
+       DSRenderEngine* DSRenderFactoryDali::createDSRenderEngine()
+       {
+               DSRenderEngine* renderer = new DSRenderEngineDali;
+               return renderer;
+       }
+
+       DSRenderSurface* DSRenderFactoryDali::createDSRenderSurface()
+       {
+               DSRenderSurface* renderSurface = new DSRenderSurfaceDali;
+               return renderSurface;
+       }
+
+       DSRenderView* DSRenderFactoryDali::createDSRenderView()
+       {
+               DSRenderView* renderView = new DSRenderViewDali;
+               return renderView;
+       }
+} // namespace display_server
diff --git a/src/lib/DSRender/DSRenderFactoryDali.h b/src/lib/DSRender/DSRenderFactoryDali.h
new file mode 100644 (file)
index 0000000..9e74360
--- /dev/null
@@ -0,0 +1,25 @@
+#ifndef _DSRENDERFACTORYDALI_H_
+#define _DSRENDERFACTORYDALI_H_
+
+#include "DSRenderFactory.h"
+#include "DSRenderEngineDali.h"
+#include "DSRenderSurfaceDali.h"
+#include "DSRenderViewDali.h"
+
+namespace display_server
+{
+       class DSRenderFactoryDali : public DSRenderFactory
+       {
+       private:
+               /* data */
+       public:
+               DSRenderFactoryDali(/* args */);
+               ~DSRenderFactoryDali();
+
+               DSRenderEngine* createDSRenderEngine() override;
+               DSRenderSurface* createDSRenderSurface() override;
+               DSRenderView* createDSRenderView() override;
+       };
+}
+
+#endif
diff --git a/src/lib/DSRender/DSRenderFactoryEcoreEvas.cpp b/src/lib/DSRender/DSRenderFactoryEcoreEvas.cpp
new file mode 100644 (file)
index 0000000..7895db1
--- /dev/null
@@ -0,0 +1,30 @@
+#include "DSRenderFactoryEcoreEvas.h"
+
+namespace display_server
+{
+       DSRenderFactoryEcoreEvas::DSRenderFactoryEcoreEvas(/* args */)
+       {
+       }
+
+       DSRenderFactoryEcoreEvas::~DSRenderFactoryEcoreEvas()
+       {
+       }
+
+       DSRenderEngine* DSRenderFactoryEcoreEvas::createDSRenderEngine()
+       {
+               DSRenderEngine* renderer = new DSRenderEngineEcoreEvas;
+               return renderer;
+       }
+
+       DSRenderSurface* DSRenderFactoryEcoreEvas::createDSRenderSurface()
+       {
+               DSRenderSurface* renderSurface = new DSRenderSurfaceEcoreEvas;
+               return renderSurface;
+       }
+
+       DSRenderView* DSRenderFactoryEcoreEvas::createDSRenderView()
+       {
+               DSRenderView* renderView = new DSRenderViewEcoreEvas;
+               return renderView;
+       }
+} // namespace display_server
\ No newline at end of file
diff --git a/src/lib/DSRender/DSRenderFactoryEcoreEvas.h b/src/lib/DSRender/DSRenderFactoryEcoreEvas.h
new file mode 100644 (file)
index 0000000..8f6a796
--- /dev/null
@@ -0,0 +1,25 @@
+#ifndef _DSRENDERFACTORYECOREEVAS_H_
+#define _DSRENDERFACTORYECOREEVAS_H_
+
+#include "DSRenderFactory.h"
+#include "DSRenderEngineEcoreEvas.h"
+#include "DSRenderSurfaceEcoreEvas.h"
+#include "DSRenderViewEcoreEvas.h"
+
+namespace display_server
+{
+       class DSRenderFactoryEcoreEvas : public DSRenderFactory
+       {
+       private:
+               /* data */
+       public:
+               DSRenderFactoryEcoreEvas(/* args */);
+               ~DSRenderFactoryEcoreEvas();
+
+               DSRenderEngine* createDSRenderEngine() override;
+               DSRenderSurface* createDSRenderSurface() override;
+               DSRenderView* createDSRenderView() override;
+       };
+}
+
+#endif