1 #ifndef UPTANE_SECONDARYFACTORY_H_ 2 #define UPTANE_SECONDARYFACTORY_H_ 4 #include "logging/logging.h" 5 #include "uptane/ipuptanesecondary.h" 6 #include "uptane/legacysecondary.h" 7 #include "uptane/opcuasecondary.h" 8 #include "uptane/secondaryconfig.h" 9 #include "uptane/secondaryinterface.h" 10 #include "uptane/virtualsecondary.h" 17 static std::shared_ptr<SecondaryInterface> makeSecondary(
const SecondaryConfig& sconfig) {
18 switch (sconfig.secondary_type) {
19 case SecondaryType::kVirtual:
20 return std::make_shared<VirtualSecondary>(sconfig);
22 case SecondaryType::kLegacy:
23 return std::make_shared<LegacySecondary>(sconfig);
25 case SecondaryType::kIpUptane:
26 return std::make_shared<IpUptaneSecondary>(sconfig);
27 case SecondaryType::kOpcuaUptane:
28 #ifdef OPCUA_SECONDARY_ENABLED 29 return std::make_shared<OpcuaSecondary>(sconfig);
31 LOG_ERROR <<
"Built with no OPC-UA secondary support";
32 return std::shared_ptr<SecondaryInterface>();
35 LOG_ERROR <<
"Unrecognized secondary type: " <<
static_cast<int>(sconfig.secondary_type);
36 return std::shared_ptr<SecondaryInterface>();
42 #endif // UPTANE_SECONDARYFACTORY_H_
Base data types that are used in The Update Framework (TUF), part of UPTANE.