Moving interfaces fron plugins to new interfaces directory#2006
Moving interfaces fron plugins to new interfaces directory#2006nxtum wants to merge 5 commits intordkcentral:masterfrom
Conversation
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
[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) |
There was a problem hiding this comment.
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