1+ /*
2+ * If not stated otherwise in this file or this component's LICENSE file the
3+ * following copyright and licenses apply:
4+ *
5+ * Copyright 2025 RDK Management
6+ *
7+ * Licensed under the Apache License, Version 2.0 (the "License");
8+ * you may not use this file except in compliance with the License.
9+ * You may obtain a copy of the License at
10+ *
11+ * http://www.apache.org/licenses/LICENSE-2.0
12+ *
13+ * Unless required by applicable law or agreed to in writing, software
14+ * distributed under the License is distributed on an "AS IS" BASIS,
15+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16+ * See the License for the specific language governing permissions and
17+ * limitations under the License.
18+ */
19+
20+ #pragma once
21+ #include " Module.h"
22+
23+ // @stubgen:include <com/IIteratorType.h>
24+
25+ namespace WPEFramework
26+ {
27+ namespace Exchange
28+ {
29+ /* @json 1.0.0 @text:keep */
30+ struct EXTERNAL IResourceManager : virtual public Core::IUnknown
31+ {
32+ enum { ID = ID_RESOURCEMANAGER };
33+
34+ // Define custom iterators for ResourceManager
35+ using IClientIterator = RPC::IIteratorType<string, ID_RESOURCEMANAGER_CLIENT_ITERATOR>;
36+ using IAppIdIterator = RPC::IIteratorType<string, ID_RESOURCEMANAGER_APPID_ITERATOR>;
37+
38+ /* *********************setAVBlocked() - start****************************/
39+ // @text setAVBlocked
40+ // @brief Sets AV blocking status for an application
41+ // @param appId - in - string
42+ // @param blocked - in - bool
43+ // @param success - out - bool
44+ virtual Core::hresult SetAVBlocked (const string& appId, const bool blocked, bool & success /* @out */ ) = 0;
45+ /* *********************setAVBlocked() - end******************************/
46+
47+ /* *********************getBlockedAVApplications() - start***************/
48+ // @text getBlockedAVApplications
49+ // @brief Gets list of applications with blocked AV access
50+ // @param clients - out - iterator
51+ // @param success - out - bool
52+ virtual Core::hresult GetBlockedAVApplications (IClientIterator*& clients /* @out */ , bool & success /* @out */ ) const = 0;
53+ /* *********************getBlockedAVApplications() - end*****************/
54+
55+ /* *********************reserveTTSResource() - start*********************/
56+ // @text reserveTTSResource
57+ // @brief Reserves TTS resource for a single application
58+ // @param appId - in - string
59+ // @param success - out - bool
60+ virtual Core::hresult ReserveTTSResource (const string& appId, bool & success /* @out */ ) = 0;
61+ /* *********************reserveTTSResource() - end***********************/
62+
63+ /* *********************reserveTTSResourceForApps() - start***************/
64+ // @text reserveTTSResourceForApps
65+ // @brief Reserves TTS resource for multiple applications
66+ // @param appids - in - iterator
67+ // @param success - out - bool
68+ virtual Core::hresult ReserveTTSResourceForApps (IAppIdIterator* appids /* @in */ , bool & success /* @out */ ) = 0;
69+ /* *********************reserveTTSResourceForApps() - end*****************/
70+ };
71+ } // namespace Exchange
72+ } // namespace WPEFramework
0 commit comments