Merge "Fix default memory leak for AppControl request" into tizen_2.2
[platform/framework/native/appfw.git] / src / app / FAppAppControlProviderManager.cpp
1 //
2 // Copyright (c) 2012 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  * @file        FAppAppControlProviderManager.cpp
19  * @brief       This is the implementation for the %AppControlProviderManager class.
20  */
21
22 #include <new>
23
24 #include <FBaseDataType.h>
25 #include <FBaseString.h>
26 #include <FAppAppControlProviderManager.h>
27 #include <FAppIAppControlProviderEventListener.h>
28
29 #include <FBaseSysLog.h>
30
31 #include "FApp_AppControlProviderManagerImpl.h"
32
33
34 using namespace Tizen::Base;
35 using namespace Tizen::Base::Collection;
36
37 namespace Tizen { namespace App
38 {
39
40 AppControlProviderManager::AppControlProviderManager(void)
41         : __pAppControlProviderManagerImpl(null)
42 {
43         __pAppControlProviderManagerImpl = new (std::nothrow) _AppControlProviderManagerImpl;
44         SysTryReturnVoidResult(NID_APP, __pAppControlProviderManagerImpl, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] The memory was insufficient.");
45 }
46
47 AppControlProviderManager::~AppControlProviderManager(void)
48 {
49         delete __pAppControlProviderManagerImpl;
50 }
51
52 AppControlProviderManager*
53 AppControlProviderManager::GetInstance(void)
54 {
55         // scott meyers's singleton
56         static AppControlProviderManager mgr;
57
58         return &mgr;
59 }
60
61 result
62 AppControlProviderManager::SetAppControlProviderEventListener(IAppControlProviderEventListener* pListener)
63 {
64         SysTryReturnResult(NID_APP, __pAppControlProviderManagerImpl, E_INVALID_STATE, "This instance has not been properly constructed.");
65         return __pAppControlProviderManagerImpl->SetAppControlProviderEventListener(pListener);
66 }
67
68 result
69 AppControlProviderManager::SendAppControlResult(RequestId reqId, AppCtrlResult appControlResult, const IMap* pResultMap)
70 {
71         SysTryReturnResult(NID_APP, __pAppControlProviderManagerImpl, E_INVALID_STATE, "This instance has not been properly constructed.");
72         return __pAppControlProviderManagerImpl->SendAppControlResult(reqId, appControlResult, pResultMap);
73 }
74
75 AppId
76 AppControlProviderManager::GetClientAppId(RequestId reqId) const
77 {
78         SysTryReturn(NID_APP, __pAppControlProviderManagerImpl, L"", E_INVALID_STATE, "[E_INVALID_STATE] This instance has not been properly constructed.");
79         return __pAppControlProviderManagerImpl->GetClientAppId(reqId);
80 }
81
82 }} // Tizen::App
83