Merge "Fix DataSet memory leak" into tizen_2.1
[platform/framework/native/appfw.git] / inc / FAppIAppControlProviderEventListener.h
1 //
2 // Open Service Platform
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 //     http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17 /**
18  * @file    FAppIAppControlProviderEventListener.h
19  * @brief   This is the header file for the %IAppControlProviderEventListener interface.
20  *
21  * This header file contains the declarations of the %IAppControlProviderEventListener interface.
22  */
23
24 #ifndef _FAPP_IAPPCONTROL_PROVIDER_EVENT_LISTENER_H_
25 #define _FAPP_IAPPCONTROL_PROVIDER_EVENT_LISTENER_H_
26
27 #include <FBaseObject.h>
28 #include <FBaseRtIEventListener.h>
29 #include <FAppTypes.h>
30
31
32 namespace Tizen { namespace Base { namespace Collection {
33 class IList;
34 class IMap;
35 }}}
36
37 namespace Tizen { namespace App
38 {
39
40 /**
41 *   @interface  IAppControlProviderEventListener
42 *   @brief      This interface defines the provider listener for the AppControl request.
43 *
44 *   @since      2.0
45 *
46 * The %IAppControlProviderEventListener interface defines a listener for the AppControl request events.
47 * Applications that provide the %AppControl functionality must implement this interface.
48 *
49 * @see AppControlProviderManager
50 */
51 class _OSP_EXPORT_ IAppControlProviderEventListener
52         : virtual public Tizen::Base::Runtime::IEventListener
53 {
54 public:
55         /**
56          * This polymorphic destructor should be overridden if required.
57          * This way, the destructors of the derived classes are called when the destructor of this interface is called.
58          *
59          * @since       2.0
60          */
61         virtual ~IAppControlProviderEventListener(void) {}
62
63         /**
64          * Called when the application control request is received from the caller application. @n
65          * The application control provider must implement this listener for exporting its own functionality.
66          *
67          * @since       2.0
68          *
69          * @param[in]   reqId  The application control request ID
70          * @param[in]   operationId     The application control operation ID
71          * @param[in]   pUriData        A pointer to the URI data
72          * @param[in]   pMimeType       A pointer to the MIME type (RFC 2046) data
73          * @param[in]   pExtraData      A pointer to an argument map of key and value pair where the key is of type String and the value is of type String or of type ArrayList of String
74          * @remarks     To reply to the application control request, use AppControlProviderManager::SendAppControlResult() with the given request ID.
75          * @remarks     When the application receives the AppControl request on the background,
76          *                      %OnAppControlRequestReceived() is invoked before UiApp::OnForeground().
77          * @remarks     When the application control is resolved with the file extension with AppControl::FindAndStart(),
78          *                      the delivered file extension is converted to the corresponding MIME type in the @c pMimeType parameter.
79          * @see AppControlProviderManager::SendAppControlResult()
80          */
81         virtual void OnAppControlRequestReceived(RequestId reqId, const Tizen::Base::String& operationId, const Tizen::Base::String* pUriData, const Tizen::Base::String* pMimeType, const Tizen::Base::Collection::IMap* pExtraData) = 0;
82
83 protected:
84         //
85         // This method is for internal use only. Using this method can cause behavioral,
86         // security-related, and consistency-related issues in the application.
87         //
88         // @since       2.0
89         //
90         virtual void IAppControlProviderEventListener_Reserved1(void) {}
91
92         //
93         // This method is for internal use only. Using this method can cause behavioral,
94         // security-related, and consistency-related issues in the application.
95         //
96         // @since       2.0
97         //
98         virtual void IAppControlProviderEventListener_Reserved2(void) {}
99
100         //
101         // This method is for internal use only. Using this method can cause behavioral,
102         // security-related, and consistency-related issues in the application.
103         //
104         // @since       2.0
105         //
106         virtual void IAppControlProviderEventListener_Reserved3(void) {}
107
108 }; // IAppControlProviderEventListener
109
110 }} // Tizen::App
111
112 #endif // _FAPP_IAPPCONTROL_PROVIDER_EVENT_LISTENER_H_