Implementation of ImmutableString
[platform/framework/native/appfw.git] / inc / FAppIActiveAppEventListener.h
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  * @file        FAppIActiveAppEventListener.h
18  * @brief       This is the header file for the %IActiveAppEventListener interface.
19  *
20  * This header file contains the declarations of the %IActiveAppEventListener interface.
21  */
22
23 #ifndef _FAPP_IACTIVE_APP_EVENT_LISTENER_H_
24 #define _FAPP_IACTIVE_APP_EVENT_LISTENER_H_
25
26 #include <FBaseTypes.h>
27 #include <FAppTypes.h>
28 #include <FBaseRtIEventListener.h>
29
30
31 namespace Tizen { namespace App
32 {
33
34 /**
35  * @interface   IActiveAppEventListener
36  * @brief               This interface is the listener interface for receiving the AppId of active application.
37  *
38  * @since       2.0
39  *
40  *
41  * The %IActiveAppEventListener interface is the listener interface for receiving the active application change events.
42  * The class that processes an active application change event implements this interface and registers using
43  * the AppManager::AddActiveAppEventListener() method.
44  *
45  */
46 class _OSP_EXPORT_ IActiveAppEventListener
47         : virtual public Tizen::Base::Runtime::IEventListener
48 {
49 public:
50         /**
51          * This polymorphic destructor should be overridden if required. This way,
52          * the destructors of the derived classes are called when the destructor of this interface is called.
53          *
54          * @since       2.0
55          *
56          */
57         virtual ~IActiveAppEventListener(void) {}
58
59         /**
60          * Called when the active application is changed.
61          *
62          * @since       2.0
63          *
64          * @param[in]   appId           The AppId of the active application
65          */
66         virtual void OnActiveAppChanged(const AppId& appId) = 0;
67
68 protected:
69         //
70         // This method is for internal use only. Using this method can cause behavioral,
71         // security-related, and consistency-related issues in the application.
72         //
73         // @since       2.0
74         //
75         virtual void IActiveAppEventListener_Reserved1(void) {}
76
77         //
78         // This method is for internal use only. Using this method can cause behavioral,
79         // security-related, and consistency-related issues in the application.
80         //
81         // @since       2.0
82         //
83         virtual void IActiveAppEventListener_Reserved2(void) {}
84
85         //
86         // This method is for internal use only. Using this method can cause behavioral,
87         // security-related, and consistency-related issues in the application.
88         //
89         // @since       2.0
90         //
91         virtual void IActiveAppEventListener_Reserved3(void) {}
92
93 }; // IActiveAppEventListener
94 } } // Tizen::App
95
96 #endif // _FAPP_IACTIVE_APP_EVENT_LISTENER_H_