1 #include "data_interface.hpp" 2 #include "elog_entry.hpp" 3 #include "extensions.hpp" 4 #include "manager.hpp" 5 6 namespace openpower 7 { 8 namespace pels 9 { 10 11 using namespace phosphor::logging; 12 13 std::unique_ptr<Manager> manager; 14 15 DISABLE_LOG_ENTRY_CAPS(); 16 17 void pelStartup(internal::Manager& logManager) 18 { 19 std::unique_ptr<DataInterfaceBase> dataIface = 20 std::make_unique<DataInterface>(logManager.getBus()); 21 22 manager = std::make_unique<Manager>(logManager, std::move(dataIface)); 23 } 24 25 REGISTER_EXTENSION_FUNCTION(pelStartup); 26 27 void pelCreate(const std::string& message, uint32_t id, uint64_t timestamp, 28 Entry::Level severity, const AdditionalDataArg& additionalData, 29 const AssociationEndpointsArg& assocs) 30 { 31 manager->create(message, id, timestamp, severity, additionalData, assocs); 32 } 33 34 REGISTER_EXTENSION_FUNCTION(pelCreate); 35 36 void pelDelete(uint32_t id) 37 { 38 return manager->erase(id); 39 } 40 41 REGISTER_EXTENSION_FUNCTION(pelDelete); 42 43 void pelDeleteProhibited(uint32_t id, bool& prohibited) 44 { 45 prohibited = manager->isDeleteProhibited(id); 46 } 47 48 REGISTER_EXTENSION_FUNCTION(pelDeleteProhibited); 49 50 } // namespace pels 51 } // namespace openpower 52