use modern construct 'override' in the derive class.
[platform/core/uifw/dali-core.git] / dali / internal / update / controllers / scene-controller-impl.h
1 #ifndef DALI_INTERNAL_SCENE_GRAPH_SCENE_CONTROLLER_IMPL_H
2 #define DALI_INTERNAL_SCENE_GRAPH_SCENE_CONTROLLER_IMPL_H
3
4 /*
5  * Copyright (c) 2019 Samsung Electronics Co., Ltd.
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  *
19  */
20
21 // INTERNAL INCLUDES
22 #include <dali/internal/update/controllers/scene-controller.h>
23
24 namespace Dali
25 {
26
27 namespace Internal
28 {
29
30 namespace SceneGraph
31 {
32
33 /**
34  * concrete implementation of the scene controller interface
35  */
36 class SceneControllerImpl: public SceneController
37 {
38
39 public:
40
41   /**
42    * Constructor
43    * @param[in] rendererDispatcher Used for passing ownership of renderers to the render-thread.
44    * @param[in] renderQueue  The renderQueue
45    * @param[in] discardQueue The discardQueue
46    */
47   SceneControllerImpl( RenderMessageDispatcher& renderMessageDispatcher,
48                        RenderQueue& renderQueue,
49                        DiscardQueue& discardQueue );
50
51   /**
52    * Destructor
53    */
54   ~SceneControllerImpl() override;
55
56 public:  // from SceneController
57
58   /**
59    * @copydoc SceneController::GetRenderMessageDispatcher()
60    */
61   RenderMessageDispatcher& GetRenderMessageDispatcher() override { return mRenderMessageDispatcher; }
62
63   /**
64    * @copydoc SceneController::GetRenderQueue()
65    */
66   RenderQueue& GetRenderQueue() override { return mRenderQueue; }
67
68   /**
69    * @copydoc SceneController::GetDiscardQueue()
70    */
71   DiscardQueue& GetDiscardQueue() override { return mDiscardQueue; }
72
73 private:
74
75   // Undefined copy constructor.
76   SceneControllerImpl( const SceneControllerImpl& );
77
78   // Undefined assignment operator.
79   SceneControllerImpl& operator=( const SceneControllerImpl& );
80
81 private:
82
83   RenderMessageDispatcher& mRenderMessageDispatcher;    ///< Used for passing messages to the render-thread
84   RenderQueue&             mRenderQueue;           ///< render queue
85   DiscardQueue&            mDiscardQueue;          ///< discard queue
86 };
87
88 } // namespace SceneGraph
89
90 } // namespace Internal
91
92 } // namespace Dali
93
94 #endif // DALI_INTERNAL_SCENE_GRAPH_SCENE_CONTROLLER_IMPL_H