Skip to content

Conversation

@nxtum
Copy link
Contributor

@nxtum nxtum commented Nov 17, 2025

ThunderInterfaces PR needs to be merged:
rdkcentral/ThunderInterfaces#476

Copilot AI review requested due to automatic review settings November 17, 2025 09:00
Copilot finished reviewing on behalf of nxtum November 17, 2025 09:02
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR refactors the codebase by moving interface definitions from the Source/plugins directory to a new dedicated Source/interfaces directory. This organizational change improves separation of concerns by isolating interface definitions from plugin implementations.

  • Interface files (IController, IPlugin, IShell, IStateControl, IStateController, ISubSystem, IVirtualInput, IDispatcher) are moved to a new interfaces directory
  • ProxyStub generation is relocated from plugins to interfaces build configuration
  • Include paths are updated throughout the codebase to reference <interfaces/*> instead of local plugin includes
  • A new Interfaces library target is created with its own CMakeLists.txt configuration

Reviewed Changes

Copilot reviewed 27 out of 33 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
Source/plugins/plugins.h Removes interface includes that are now provided via Module.h
Source/plugins/definitions.h Updates include paths to reference interfaces directory
Source/plugins/VirtualInput.h Removes direct IVirtualInput include (now via Module.h)
Source/plugins/Types.h Removes IPlugin and IShell includes (now via Module.h)
Source/plugins/SubSystem.h Removes direct ISubSystem include (now via Module.h)
Source/plugins/SubSystem.cpp Removes direct ISubSystem include (now via Module.h)
Source/plugins/StateControl.h Removes direct IStateControl include (now via Module.h)
Source/plugins/StateControl.cpp Removes direct IStateControl include (now via Module.h)
Source/plugins/Shell.cpp Removes direct IShell include (now via Module.h)
Source/plugins/Service.h Removes direct IPlugin and IShell includes (now via Module.h)
Source/plugins/Module.h Adds interfaces library dependency
Source/plugins/Module.cpp Removes direct IController include (now via Module.h)
Source/plugins/Metadata.h Updates JSON header paths to interfaces/json location
Source/plugins/Metadata.cpp Removes direct interface includes (now via Module.h)
Source/plugins/JSONRPC.h Removes direct interface includes (now via Module.h)
Source/plugins/Configuration.h Removes direct interface includes (now via Module.h)
Source/plugins/CMakeLists.txt Removes ProxyStub generation, links to Interfaces library, updates include paths
Source/interfaces/interfaces.h New umbrella header for all interface includes
Source/interfaces/Module.h New module header for interfaces library
Source/interfaces/Module.cpp New module implementation for interfaces library
Source/interfaces/IVirtualInput.h Moved from plugins directory
Source/interfaces/ISubSystem.h Moved from plugins directory
Source/interfaces/IStateController.h Moved from plugins directory
Source/interfaces/IStateControl.h Moved from plugins directory
Source/interfaces/IShell.h Moved from plugins directory
Source/interfaces/IPlugin.h Moved from plugins directory
Source/interfaces/IDispatcher.h Updates stubgen include path comment
Source/interfaces/IController.h Updates stubgen include path comments
Source/interfaces/CMakeLists.txt New build configuration for interfaces and proxy stubs
Source/Thunder/Module.h Adds interfaces library dependency
Source/Thunder/Controller.h Updates JSON include path to interfaces/json
Source/Thunder/Controller.cpp Updates JSON include path to interfaces/json
Source/CMakeLists.txt Adds INTERFACES build option and subdirectory
Comments suppressed due to low confidence (1)

Source/interfaces/IController.h:408

  • Missing closing brace for the Thunder namespace. The file has } for Exchange namespace on line 407, but is missing the closing brace for the outer Thunder namespace.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

* If not stated otherwise in this file or this component's LICENSE file the
* following copyright and licenses apply:
*
* Copyright 2020 Metrological
Copy link

Copilot AI Nov 17, 2025

Choose a reason for hiding this comment

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

[nitpick] Copyright year inconsistency: This file has "Copyright 2020 Metrological" while other newly created files in the interfaces directory use "Copyright 2025 Metrological" (e.g., interfaces.h, Module.h). Consider using 2025 for consistency.

Suggested change
* Copyright 2020 Metrological
* Copyright 2025 Metrological

Copilot uses AI. Check for mistakes.
Module.h
)

# when compiling proxy/stubs we should ignore deprecated warnings (which are treated as errors nowadays)
Copy link

Copilot AI Nov 17, 2025

Choose a reason for hiding this comment

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

Typo in comment: "errors" should be "errors" is correct, but "erros" in the comment is misspelled.

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant