1e0538848SWilliam A. Kennington III #include "config.h" 2e0538848SWilliam A. Kennington III 3e0538848SWilliam A. Kennington III #include <phosphor-logging/elog.hpp> 4*5bc26533SArya K Padman #include <phosphor-logging/lg2.hpp> 52544b419SPatrick Williams 6e0538848SWilliam A. Kennington III #include <stdexcept> 7e0538848SWilliam A. Kennington III 8e0538848SWilliam A. Kennington III namespace phosphor 9e0538848SWilliam A. Kennington III { 10e0538848SWilliam A. Kennington III namespace logging 11e0538848SWilliam A. Kennington III { 12e0538848SWilliam A. Kennington III namespace details 13e0538848SWilliam A. Kennington III { 146ddbf69eSWilly Tu using namespace sdbusplus::server::xyz::openbmc_project::logging; 15e0538848SWilliam A. Kennington III _prepareMsg(const char * funcName)16e0538848SWilliam A. Kennington IIIauto _prepareMsg(const char* funcName) 17e0538848SWilliam A. Kennington III { 18e0538848SWilliam A. Kennington III using phosphor::logging::log; 19e0538848SWilliam A. Kennington III constexpr auto IFACE_INTERNAL( 20e0538848SWilliam A. Kennington III "xyz.openbmc_project.Logging.Internal.Manager"); 21e0538848SWilliam A. Kennington III 22e0538848SWilliam A. Kennington III // Transaction id is located at the end of the string separated by a period. 23e0538848SWilliam A. Kennington III 24e0538848SWilliam A. Kennington III auto b = sdbusplus::bus::new_default(); 25e0538848SWilliam A. Kennington III 26e0538848SWilliam A. Kennington III auto m = b.new_method_call(BUSNAME_LOGGING, OBJ_INTERNAL, IFACE_INTERNAL, 27e0538848SWilliam A. Kennington III funcName); 28e0538848SWilliam A. Kennington III return m; 29e0538848SWilliam A. Kennington III } 30e0538848SWilliam A. Kennington III commit(const char * name)31e0538848SWilliam A. Kennington IIIuint32_t commit(const char* name) 32e0538848SWilliam A. Kennington III { 33e0538848SWilliam A. Kennington III auto msg = _prepareMsg("Commit"); 34e0538848SWilliam A. Kennington III uint64_t id = sdbusplus::server::transaction::get_id(); 35e0538848SWilliam A. Kennington III msg.append(id, name); 36e0538848SWilliam A. Kennington III auto bus = sdbusplus::bus::new_default(); 37e0538848SWilliam A. Kennington III auto reply = bus.call(msg); 38e0538848SWilliam A. Kennington III uint32_t entryID; 39e0538848SWilliam A. Kennington III reply.read(entryID); 40e0538848SWilliam A. Kennington III return entryID; 41e0538848SWilliam A. Kennington III } 42e0538848SWilliam A. Kennington III commit(const char * name,Entry::Level level)43e0538848SWilliam A. Kennington IIIuint32_t commit(const char* name, Entry::Level level) 44e0538848SWilliam A. Kennington III { 45e0538848SWilliam A. Kennington III auto msg = _prepareMsg("CommitWithLvl"); 46e0538848SWilliam A. Kennington III uint64_t id = sdbusplus::server::transaction::get_id(); 47e0538848SWilliam A. Kennington III msg.append(id, name, static_cast<uint32_t>(level)); 48e0538848SWilliam A. Kennington III auto bus = sdbusplus::bus::new_default(); 49e0538848SWilliam A. Kennington III auto reply = bus.call(msg); 50e0538848SWilliam A. Kennington III uint32_t entryID; 51e0538848SWilliam A. Kennington III reply.read(entryID); 52e0538848SWilliam A. Kennington III return entryID; 53e0538848SWilliam A. Kennington III } 54e0538848SWilliam A. Kennington III } // namespace details 55e0538848SWilliam A. Kennington III commit(std::string && name)56e0538848SWilliam A. Kennington IIIuint32_t commit(std::string&& name) 57e0538848SWilliam A. Kennington III { 58*5bc26533SArya K Padman lg2::error("method is deprecated, use commit() with exception type"); 59e0538848SWilliam A. Kennington III return phosphor::logging::details::commit(name.c_str()); 60e0538848SWilliam A. Kennington III } 61e0538848SWilliam A. Kennington III 62e0538848SWilliam A. Kennington III } // namespace logging 63e0538848SWilliam A. Kennington III } // namespace phosphor 64