Merge "Fix default memory leak for AppControl request" into tizen_2.2
[platform/framework/native/appfw.git] / src / app / FApp_AppControlEvent.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         FApp_AppControlEvent.cpp
19  * @brief       This is the implementation for the _AppControlEvent.cpp class.
20  */
21
22 #include <FBaseSysLog.h>
23 #include <FBaseColIMap.h>
24
25 #include "FApp_AppControlEvent.h"
26 #include "FApp_AppControlEventArg.h"
27 #include "FApp_IAppControlSysEventListener.h"
28
29 using namespace Tizen::Base;
30 using namespace Tizen::Base::Runtime;
31
32 namespace Tizen { namespace App
33 {
34
35 void
36 _AppControlEvent::FireImpl(IEventListener& listener, const IEventArg& arg)
37 {
38         _IAppControlSysEventListener* pListener = dynamic_cast<_IAppControlSysEventListener*>(&listener);
39
40         if (pListener)
41         {
42                 const _AppControlEventArg* pEventArg = dynamic_cast<const _AppControlEventArg*>(&arg);
43
44                 if (pEventArg != null)
45                 {
46                         pListener->OnAppControlEventReceivedN(pEventArg->GetRequestId(), pEventArg->GetAppArg(), pEventArg->GetResult());
47
48                         return;
49                 }
50
51                 const _NativeAppControlEventArg* pNativeArg = dynamic_cast<const _NativeAppControlEventArg*>(&arg);
52
53                 if (pNativeArg != null)
54                 {
55                         pListener->OnAppControlEventReceivedN(pNativeArg->GetRequestId(), pNativeArg->GetResult(), pNativeArg->GetArgs(), pNativeArg->GetProperty());
56
57                         return;
58                 }
59
60                 const _AppControlStartEventArg* pStartEventArg = dynamic_cast<const _AppControlStartEventArg*>(&arg);
61
62                 if (pStartEventArg != null)
63                 {
64                         pListener->OnAppControlEventReceivedN(pStartEventArg->GetRequestId(), pStartEventArg->GetAppId(), pStartEventArg->GetOperationId());
65
66                         return;
67                 }
68
69                 SysLog(NID_APP, "Invalid AppControl arguments : listener(0x%x), arg(0x%x)", pListener, &arg);
70         }
71         else
72         {
73                 SysLog(NID_APP, "Invalid AppControl listener : listener(0x%x), arg(0x%x)", pListener, &arg);
74         }
75 }
76
77 } } // Tizen::App