Skip to content

Add new Common Folder to Thunder#2137

Open
nxtum wants to merge 4 commits into
rdkcentral:masterfrom
nxtum:CommonDirectory
Open

Add new Common Folder to Thunder#2137
nxtum wants to merge 4 commits into
rdkcentral:masterfrom
nxtum:CommonDirectory

Conversation

@nxtum
Copy link
Copy Markdown
Contributor

@nxtum nxtum commented May 27, 2026

Copilot AI review requested due to automatic review settings May 27, 2026 08:32
Copy link
Copy Markdown
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 introduces a new Source/common/ library to host shared PluginHost implementation utilities (e.g., Channel/Service/JSONRPC/VirtualInput), and adjusts Thunder runtime/process builds and project files to consume it. This effectively makes Source/plugins/ more interface-focused while moving host-side implementations into the new Common component.

Changes:

  • Added new Source/common/ library (CMake + VS project) containing PluginHost “implementation support” code and a public umbrella header <common/common.h>.
  • Updated Thunder and ThunderPlugin to include/link the new Common library.
  • Updated CMake and Visual Studio solution/project files to add Common and to remove implementation sources from the plugins project.

Reviewed changes

Copilot reviewed 28 out of 37 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
Source/CMakeLists.txt Adds common subdirectory to the build when PLUGINS is enabled.
Source/Thunder/Module.h Includes <common/common.h> for access to Common headers.
Source/Thunder/CMakeLists.txt Links Thunder executable against ${NAMESPACE}Common.
Source/ThunderPlugin/Module.h Includes <common/common.h> for process-side access to Common headers.
Source/ThunderPlugin/CMakeLists.txt Links ThunderPlugin (comprocess) against ${NAMESPACE}Common.
Source/Thunder.sln Adds new common project and wires dependencies across solution projects.
Source/plugins/CMakeLists.txt Converts plugins library toward interface-only content; adds PLUGINS_EXPORTS.
Source/plugins/plugins.h Removes host-implementation includes; keeps only interface umbrella includes.
Source/plugins/plugins.vcxproj Removes implementation .cpp/.h entries; keeps a lean plugins project definition.
Source/plugins/plugins.vcxproj.filters Updates VS filters to match the trimmed plugins project contents.
Source/common/CMakeLists.txt Defines new ${NAMESPACE}Common library target, links dependencies, installs headers.
Source/common/common.h New umbrella header exporting Common’s public headers.
Source/common/common.vcxproj New Visual Studio project for building the Common DLL.
Source/common/common.vcxproj.filters VS filters for Common project source/header organization.
Source/common/Module.h Common module header establishing build macros/includes for the Common component.
Source/common/Module.cpp Common module implementation and module declaration wiring.
Source/common/Config.h Common configuration toggles header.
Source/common/Configuration.h Common configuration schema/types used by host-side code.
Source/common/Request.h Common request/JSONRPC tracking and request pool types.
Source/common/Channel.h Common WebSocket channel implementation support types.
Source/common/Channel.cpp Defines static request pool and Channel ctor/dtor.
Source/common/Service.h Common Service host-side support interface/types.
Source/common/Service.cpp Common service helpers (notifications, file serving, node selection).
Source/common/System.h Common factory singleton interface (IFactories) and deprecated aliases.
Source/common/System.cpp Implements IFactories global instance assignment/lookup.
Source/common/Types.h Moves/adjusts types to include plugin interfaces via <plugins/...>.
Source/common/Metadata.h Updates includes to reference plugin interfaces via <plugins/...>.
Source/common/Metadata.cpp Updates includes to reference plugin interfaces via <plugins/...>.
Source/common/JSONRPC.h Updates includes to reference plugin interfaces via <plugins/...>; Common JSONRPC API surface.
Source/common/JSONRPC.cpp Provides JSONRPC ctor/dtor implementations moved into Common.
Source/common/StateControl.h Updates include to <plugins/IStateControl.h>.
Source/common/StateControl.cpp Updates include to <plugins/IStateControl.h>.
Source/common/SubSystem.h Updates include to <plugins/ISubSystem.h>.
Source/common/SubSystem.cpp Updates include to <plugins/ISubSystem.h>.
Source/common/Shell.cpp Updates include to <plugins/IShell.h>.
Source/common/VirtualInput.h Updates include to <plugins/IVirtualInput.h>; virtual input APIs now in Common.
Source/common/VirtualInput.cpp Adds VirtualInput implementation and IPC/Linux backends into Common.

Comment thread Source/plugins/plugins.h
Comment thread Source/common/common.h
@nxtum nxtum requested a review from sebaszm May 27, 2026 09:41
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.

2 participants