From e4386df0aa9f34d44ca1419407666c88ac0d0cc7 Mon Sep 17 00:00:00 2001 From: SooChan Lim Date: Tue, 31 Mar 2020 15:41:25 +0900 Subject: [PATCH] make the abstract factory pattern for DSRender (4/6) 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 | 2 ++ src/lib/DSRender/DSRenderFactory.h | 21 +++++++++++++++++++ src/lib/DSRender/DSRenderFactoryDali.cpp | 30 +++++++++++++++++++++++++++ src/lib/DSRender/DSRenderFactoryDali.h | 25 ++++++++++++++++++++++ src/lib/DSRender/DSRenderFactoryEcoreEvas.cpp | 30 +++++++++++++++++++++++++++ src/lib/DSRender/DSRenderFactoryEcoreEvas.h | 25 ++++++++++++++++++++++ 6 files changed, 133 insertions(+) create mode 100644 src/lib/DSRender/DSRenderFactory.h create mode 100644 src/lib/DSRender/DSRenderFactoryDali.cpp create mode 100644 src/lib/DSRender/DSRenderFactoryDali.h create mode 100644 src/lib/DSRender/DSRenderFactoryEcoreEvas.cpp create mode 100644 src/lib/DSRender/DSRenderFactoryEcoreEvas.h diff --git a/meson.build b/meson.build index 1d7508a..c51eea5 100644 --- a/meson.build +++ b/meson.build @@ -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 index 0000000..24c6bf8 --- /dev/null +++ b/src/lib/DSRender/DSRenderFactory.h @@ -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 index 0000000..505d068 --- /dev/null +++ b/src/lib/DSRender/DSRenderFactoryDali.cpp @@ -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 index 0000000..9e74360 --- /dev/null +++ b/src/lib/DSRender/DSRenderFactoryDali.h @@ -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 index 0000000..7895db1 --- /dev/null +++ b/src/lib/DSRender/DSRenderFactoryEcoreEvas.cpp @@ -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 index 0000000..8f6a796 --- /dev/null +++ b/src/lib/DSRender/DSRenderFactoryEcoreEvas.h @@ -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 -- 2.7.4