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