5db3e28b21086443f6aa7bf27d3b944b46f89095
[platform/core/uifw/dali-adaptor.git] / text-abstraction / internal / segmentation-impl.cpp
1 /*
2  * Copyright (c) 2015 Samsung Electronics Co., Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  */
17
18 // CLASS  HEADER
19 #include "segmentation-impl.h"
20
21 // INTERNAL INCLUDES
22 #include <singleton-service-impl.h>
23
24 namespace Dali
25 {
26
27 namespace Internal
28 {
29
30 namespace TextAbstraction
31 {
32
33
34 Segmentation::Segmentation()
35 :mPlugin(NULL)
36 {
37
38 }
39
40 Segmentation::~Segmentation()
41 {
42
43 }
44
45 Dali::TextAbstraction::Segmentation Segmentation::Get()
46 {
47   Dali::TextAbstraction::Segmentation segmentationHandle;
48
49   Dali::SingletonService service( SingletonService::Get() );
50   if ( service )
51   {
52      // Check whether the singleton is already created
53      Dali::BaseHandle handle = service.GetSingleton( typeid( Dali::TextAbstraction::Segmentation ) );
54      if(handle)
55      {
56        // If so, downcast the handle
57        Segmentation* impl = dynamic_cast< Dali::Internal::TextAbstraction::Segmentation* >( handle.GetObjectPtr() );
58        segmentationHandle = Dali::TextAbstraction::Segmentation( impl );
59      }
60      else // create and register the object
61      {
62        segmentationHandle = Dali::TextAbstraction::Segmentation( new Segmentation);
63        service.Register( typeid( segmentationHandle ), segmentationHandle );
64      }
65    }
66
67    return segmentationHandle;
68 }
69
70 } // namespace Segmentation
71 } // namespace Internal
72 } // namespace Dali