Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions apis/Ids.h
Original file line number Diff line number Diff line change
Expand Up @@ -344,6 +344,7 @@ namespace Exchange {
ID_GOOGLE_CAST_RM_DELEGATE = ID_GOOGLE_CAST + 2,
ID_GOOGLE_CAST_RM_DELEGATE_NOTIFICATION = ID_GOOGLE_CAST + 3,

ID_RESOURCEMANAGER = ID_ENTOS_OFFSET + 0x480,
}; // enum IDS

} // namespace Exchange
Expand Down
83 changes: 83 additions & 0 deletions apis/ResourceManager/IResourceManager.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
/*
* If not stated otherwise in this file or this component's LICENSE file the
* following copyright and licenses apply:
*
* Copyright 2026 RDK Management
*
* Licensed under the Apache License, Version 2.0 (the "License");

Check failure on line 7 in apis/ResourceManager/IResourceManager.h

View workflow job for this annotation

GitHub Actions / call-fossid-workflow / Fossid Annotate PR

FossID License Issue Detected

Source code with 'Apache-2.0' license found in local file 'apis/ResourceManager/IResourceManager.h' (Match: peridyno/peridyno/0.4.0, 14 lines, url: https://github.com/peridyno/peridyno/archive/refs/tags/v0.4.0.tar.gz, file: src/Framework/Module/Pipeline.h)
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

#pragma once
#include "Module.h"

// @stubgen:include <com/IIteratorType.h>

namespace WPEFramework
{
namespace Exchange
{
/* @json 1.0.0 @text:keep */
struct EXTERNAL IResourceManager : virtual public Core::IUnknown
{
enum { ID = ID_RESOURCEMANAGER };

// Define string iterator for ResourceManager
using IStringIterator = RPC::IIteratorType<string, RPC::ID_STRINGITERATOR>;

// Result struct for SetAVBlocked operation
struct EXTERNAL SetAVBlockedResult {
bool success;
Core::OptionalType<string> message;
};

// Result struct for TTS operations
struct EXTERNAL TTSResult {
bool success;
Core::OptionalType<string> message;
Comment on lines +39 to +46
Copy link

Copilot AI Feb 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The message field in SetAVBlockedResult is not documented in the API documentation (ResourceManager.md), but it appears to be part of the interface. Users won't know this field exists or what it contains. This also applies to the message field in TTSResult on line 46.

Suggested change
bool success;
Core::OptionalType<string> message;
};
// Result struct for TTS operations
struct EXTERNAL TTSResult {
bool success;
Core::OptionalType<string> message;
// Indicates whether the SetAVBlocked operation completed successfully.
bool success;
// Optional human-readable description providing additional details about the result.
// Typically contains an error reason when success is false; may be empty on success.
Core::OptionalType<string> message;
};
// Result struct for TTS operations
struct EXTERNAL TTSResult {
// Indicates whether the TTS-related operation completed successfully.
bool success;
// Optional human-readable description providing additional details about the result.
// Typically contains an error reason when success is false; may be empty on success.
Core::OptionalType<string> message;

Copilot uses AI. Check for mistakes.
};

/**********************setAVBlocked() - start****************************/
// @text setAVBlocked
// @brief Sets AV blocking status for an application
// @param appId - in - string
// @param blocked - in - bool
// @param result - out - SetAVBlockedResult
virtual Core::hresult SetAVBlocked(const string& appId, const bool blocked, SetAVBlockedResult& result /* @out */) = 0;
/**********************setAVBlocked() - end******************************/

/**********************getBlockedAVApplications() - start***************/
// @text getBlockedAVApplications
// @brief Gets list of applications with blocked AV access
// @param clients: list of blocked applications
// @param success: success status
virtual Core::hresult GetBlockedAVApplications(IStringIterator*& clients /* @out */, bool& success /* @out */) const = 0;
/**********************getBlockedAVApplications() - end*****************/

/**********************reserveTTSResource() - start*********************/
// @text reserveTTSResource
// @brief Reserves TTS resource for a single application
// @param appId - in - string
// @param ttsResult - out - TTSResult
virtual Core::hresult ReserveTTSResource(const string& appId, TTSResult& ttsResult /* @out */) = 0;
/**********************reserveTTSResource() - end***********************/

/**********************reserveTTSResourceForApps() - start***************/
// @text reserveTTSResourceForApps
// @brief Reserves TTS resource for multiple applications
// @param appids: list of application IDs
// @param ttsResult: result of the TTS reservation
virtual Core::hresult ReserveTTSResourceForApps(IStringIterator* const appids, TTSResult& ttsResult /* @out */) = 0;
/**********************reserveTTSResourceForApps() - end*****************/
};
} // namespace Exchange
} // namespace WPEFramework
1 change: 1 addition & 0 deletions docs/_sidebar.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@
- [RDKShell<sup>@</sup>](apis/RDKShellPlugin.md)
- [RDKWindowManager](apis/RDKWindowManager.md)
- [RemoteControl<sup>@</sup>](apis/RemoteControlPlugin.md)
- [ResourceManager](apis/ResourceManager.md)
- [ResourceManager<sup>@</sup>](apis/ResourceManagerPlugin.md)
Copy link

Copilot AI Feb 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are now two entries for ResourceManager in the sidebar (lines 48 and 49). This creates ambiguity for users navigating the documentation. If these represent different versions or implementations, they should have distinct, descriptive names (e.g., 'ResourceManager (New)' and 'ResourceManager (Legacy)' or similar differentiation).

Suggested change
- [ResourceManager<sup>@</sup>](apis/ResourceManagerPlugin.md)
- [ResourceManager Plugin<sup>@</sup>](apis/ResourceManagerPlugin.md)

Copilot uses AI. Check for mistakes.
- [ScreenCapture](apis/ScreenCapture.md)
- [SharedStorage](apis/SharedStorage.md)
Expand Down
272 changes: 272 additions & 0 deletions docs/apis/ResourceManager.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,272 @@
<!-- Generated automatically, DO NOT EDIT! -->
<a id="ResourceManager_Plugin"></a>
# ResourceManager Plugin

**Version: [1.0.0](https://github.com/rdkcentral/entservices-apis/tree/main/apis/ResourceManager/IResourceManager.h)**

A ResourceManager plugin for Thunder framework.

### Table of Contents

- [Abbreviation, Acronyms and Terms](#abbreviation-acronyms-and-terms)
- [Description](#Description)
- [Configuration](#Configuration)
- [Methods](#Methods)

<a id="abbreviation-acronyms-and-terms"></a>
# Abbreviation, Acronyms and Terms

[[Refer to this link](overview/aat.md)]

<a id="Description"></a>
# Description

The `ResourceManager` plugin provides an interface for ResourceManager.

The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [[Thunder](https://rdkcentral.github.io/Thunder/)].

<a id="Configuration"></a>
# Configuration

The table below lists configuration options of the plugin.

| Name | Type | Description |
| :-------- | :-------- | :-------- |
| callsign | string | Plugin instance name (default: org.rdk.ResourceManager) |
| classname | string | Class name: *ResourceManager* |
| locator | string | Library name: *libWPEFrameworkResourceManager.so* |
| autostart | boolean | Determines if the plugin shall be started automatically along with the framework |

<a id="Methods"></a>
# Methods

The following methods are provided by the ResourceManager plugin:

ResourceManager interface methods:

| Method | Description |
| :-------- | :-------- |
| [getBlockedAVApplications](#getBlockedAVApplications) | Gets list of applications with blocked AV access |
| [reserveTTSResource](#reserveTTSResource) | Reserves TTS resource for a single application |
| [reserveTTSResourceForApps](#reserveTTSResourceForApps) | Reserves TTS resource for multiple applications |
| [setAVBlocked](#setAVBlocked) | Sets AV blocking status for an application |

<a id="getBlockedAVApplications"></a>
## *getBlockedAVApplications*

Gets list of applications with blocked AV access

### Events
Event details will be updated soon.
### Parameters
This method takes no parameters.
### Results
| Name | Type | Description |
| :-------- | :-------- | :-------- |
| result | object | |
| result.clients | IStringIterator | list of blocked applications |
| result.clients[#] | string | |
| result.success | bool | success status |

### Examples


#### Request

```json
{
"jsonrpc": 2.0,
Copy link

Copilot AI Feb 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

JSON-RPC version should be a string '2.0', not a number 2.0. This appears in multiple examples throughout the document (lines 78, 96, 132, 152, 186, 208, 242, 264).

Copilot uses AI. Check for mistakes.
"id": 0,
"method": "org.rdk.ResourceManager.getBlockedAVApplications"
}
```


#### CURL Command

```curl
curl -H 'content-type:text/plain;' --data-binary '{"jsonrpc": 2.0, "id": 0, "method": "org.rdk.ResourceManager.getBlockedAVApplications"}' http://127.0.0.1:9998/jsonrpc
```


#### Response

```json
{
"jsonrpc": 2.0,
"id": 0,
"result": {
"clients": [
""
],
"success": true
}
}
```

<a id="reserveTTSResource"></a>
## *reserveTTSResource*

Reserves TTS resource for a single application

### Events
Event details will be updated soon.
### Parameters
| Name | Type | Description |
| :-------- | :-------- | :-------- |
| params | object | |
| params.appId | string | string |
Copy link

Copilot AI Feb 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The description column repeats the type 'string' instead of providing a meaningful description of what appId represents. This also occurs on line 227.

Copilot uses AI. Check for mistakes.
### Results
| Name | Type | Description |
| :-------- | :-------- | :-------- |
| result | object | |
| result.success | bool | success status |

### Examples


#### Request

```json
{
"jsonrpc": 2.0,
"id": 1,
"method": "org.rdk.ResourceManager.reserveTTSResource",
"params": {
"appId": ""
}
}
```


#### CURL Command

```curl
curl -H 'content-type:text/plain;' --data-binary '{"jsonrpc": 2.0, "id": 1, "method": "org.rdk.ResourceManager.reserveTTSResource", "params": {"appId": ""}}' http://127.0.0.1:9998/jsonrpc
```


#### Response

```json
{
"jsonrpc": 2.0,
"id": 1,
"result": {
"success": true
}
}
```

<a id="reserveTTSResourceForApps"></a>
## *reserveTTSResourceForApps*

Reserves TTS resource for multiple applications

### Events
Event details will be updated soon.
### Parameters
| Name | Type | Description |
| :-------- | :-------- | :-------- |
| params | object | |
| params.appids | IStringIterator | list of application IDs |
| params.appids[#] | string | |
### Results
| Name | Type | Description |
| :-------- | :-------- | :-------- |
| result | object | |
| result.success | bool | success status |

### Examples


#### Request

```json
{
"jsonrpc": 2.0,
"id": 2,
"method": "org.rdk.ResourceManager.reserveTTSResourceForApps",
"params": [
""
]
}
```


#### CURL Command

```curl
curl -H 'content-type:text/plain;' --data-binary '{"jsonrpc": 2.0, "id": 2, "method": "org.rdk.ResourceManager.reserveTTSResourceForApps", "params": [""]}' http://127.0.0.1:9998/jsonrpc
```


#### Response

```json
{
"jsonrpc": 2.0,
"id": 2,
"result": {
"success": true
}
}
```

<a id="setAVBlocked"></a>
## *setAVBlocked*

Sets AV blocking status for an application

### Events
Event details will be updated soon.
### Parameters
| Name | Type | Description |
| :-------- | :-------- | :-------- |
| params | object | |
| params.appId | string | string |
| params.blocked | bool | bool |
Copy link

Copilot AI Feb 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The description column repeats the type 'bool' instead of explaining what the blocked parameter means (e.g., 'Whether to block or unblock AV access for the application').

Suggested change
| params.blocked | bool | bool |
| params.blocked | bool | Whether to block (`true`) or unblock (`false`) AV access for the application |

Copilot uses AI. Check for mistakes.
### Results
| Name | Type | Description |
| :-------- | :-------- | :-------- |
| result | object | |
| result.success | bool | success status |

### Examples


#### Request

```json
{
"jsonrpc": 2.0,
"id": 3,
"method": "org.rdk.ResourceManager.setAVBlocked",
"params": {
"appId": "",
"blocked": true
}
}
```


#### CURL Command

```curl
curl -H 'content-type:text/plain;' --data-binary '{"jsonrpc": 2.0, "id": 3, "method": "org.rdk.ResourceManager.setAVBlocked", "params": {"appId": "", "blocked": true}}' http://127.0.0.1:9998/jsonrpc
```


#### Response

```json
{
"jsonrpc": 2.0,
"id": 3,
"result": {
"success": true
}
}
```


Loading