1
0
Fork 0

Make generic and client backends private static

Rather than global variables with static scope, make them private static
members of their respective classes.

Change-Id: I20f0ad1d63fe14001266058983b0d013058667dc
This commit is contained in:
Drew Davenport 2025-10-30 17:23:40 -06:00
parent bf7f0dffee
commit 7a69d5507a
3 changed files with 20 additions and 8 deletions

View file

@ -31,16 +31,19 @@ class ClientCompositionPlanner : public CompositionPlanner {
class ClientBackendPipelineCreator : public GenericPipelineCreator {
public:
ClientBackendPipelineCreator() : GenericPipelineCreator("client") {
}
std::unique_ptr<CompositionPlanner> CreateCompositionPlanner() override {
return std::make_unique<ClientCompositionPlanner>();
}
private:
ClientBackendPipelineCreator() : GenericPipelineCreator("client") {
}
static ClientBackendPipelineCreator instance;
};
// NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables,
// cert-err58-cpp)
static ClientBackendPipelineCreator client_backend;
// NOLINTNEXTLINE(cert-err58-cpp)
ClientBackendPipelineCreator ClientBackendPipelineCreator::instance;
} // namespace
} // namespace android::drm_hwcomposer

View file

@ -21,6 +21,10 @@
namespace android::drm_hwcomposer {
GenericPipelineCreator::GenericPipelineCreator()
: GenericPipelineCreator("generic") {
}
GenericPipelineCreator::GenericPipelineCreator(const std::string& name)
: BackendManager::PipelineCreator(name) {
}
@ -39,7 +43,7 @@ GenericPipelineCreator::CreateCompositionPlanner() {
return std::make_unique<GenericCompositionPlanner>();
}
// NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables)
static GenericPipelineCreator generic_pipeline_creator("generic");
// NOLINTNEXTLINE(cert-err58-cpp)
GenericPipelineCreator GenericPipelineCreator::instance;
} // namespace android::drm_hwcomposer

View file

@ -25,15 +25,20 @@ namespace android::drm_hwcomposer {
// using generic heuristics on top of upstream drm uAPI.
class GenericPipelineCreator : public BackendManager::PipelineCreator {
public:
explicit GenericPipelineCreator(const std::string& name);
std::unique_ptr<DrmDisplayPipeline> CreatePipeline(
DrmConnector& connector) override;
protected:
explicit GenericPipelineCreator(const std::string& name);
// Create a new GenericCompositionPlanner by default. Classes can override
// this to create different composition planners while using the default logic
// to create a DrmDisplayPipeline.
virtual std::unique_ptr<CompositionPlanner> CreateCompositionPlanner();
private:
GenericPipelineCreator();
static GenericPipelineCreator instance;
};
} // namespace android::drm_hwcomposer