-
Notifications
You must be signed in to change notification settings - Fork 133
Moving interfaces fron plugins to new interfaces directory #2006
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
There was a problem hiding this 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
Thundernamespace. The file has}forExchangenamespace on line 407, but is missing the closing brace for the outerThundernamespace.
💡 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 |
Copilot
AI
Nov 17, 2025
There was a problem hiding this comment.
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.
| * Copyright 2020 Metrological | |
| * Copyright 2025 Metrological |
| Module.h | ||
| ) | ||
|
|
||
| # when compiling proxy/stubs we should ignore deprecated warnings (which are treated as errors nowadays) |
Copilot
AI
Nov 17, 2025
There was a problem hiding this comment.
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.
ThunderInterfaces PR needs to be merged:
rdkcentral/ThunderInterfaces#476