2 // Open Service Platform
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
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
9 // http://www.apache.org/licenses/LICENSE-2.0
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.
18 * @file FAppIAppControlProviderEventListener.h
19 * @brief This is the header file for the %IAppControlProviderEventListener interface.
21 * This header file contains the declarations of the %IAppControlProviderEventListener interface.
24 #ifndef _FAPP_IAPPCONTROL_PROVIDER_EVENT_LISTENER_H_
25 #define _FAPP_IAPPCONTROL_PROVIDER_EVENT_LISTENER_H_
27 #include <FBaseObject.h>
28 #include <FBaseRtIEventListener.h>
29 #include <FAppTypes.h>
32 namespace Tizen { namespace Base { namespace Collection {
37 namespace Tizen { namespace App
41 * @interface IAppControlProviderEventListener
42 * @brief This interface defines the provider listener for the AppControl request.
46 * The %IAppControlProviderEventListener interface defines a listener for the AppControl request events.
47 * Applications that provide the %AppControl functionality must implement this interface.
49 * @see AppControlProviderManager
51 class _OSP_EXPORT_ IAppControlProviderEventListener
52 : virtual public Tizen::Base::Runtime::IEventListener
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.
61 virtual ~IAppControlProviderEventListener(void) {}
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.
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()
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;
85 // This method is for internal use only. Using this method can cause behavioral,
86 // security-related, and consistency-related issues in the application.
90 virtual void IAppControlProviderEventListener_Reserved1(void) {}
93 // This method is for internal use only. Using this method can cause behavioral,
94 // security-related, and consistency-related issues in the application.
98 virtual void IAppControlProviderEventListener_Reserved2(void) {}
101 // This method is for internal use only. Using this method can cause behavioral,
102 // security-related, and consistency-related issues in the application.
106 virtual void IAppControlProviderEventListener_Reserved3(void) {}
108 }; // IAppControlProviderEventListener
112 #endif // _FAPP_IAPPCONTROL_PROVIDER_EVENT_LISTENER_H_