| #include <algorithm> | 
 | #include <com/ibm/VPD/Manager/server.hpp> | 
 | #include <com/ibm/VPD/error.hpp> | 
 | #include <map> | 
 | #include <sdbusplus/exception.hpp> | 
 | #include <sdbusplus/sdbus.hpp> | 
 | #include <sdbusplus/sdbuspp_support/server.hpp> | 
 | #include <sdbusplus/server.hpp> | 
 | #include <string> | 
 | #include <tuple> | 
 | #include <xyz/openbmc_project/Common/error.hpp> | 
 |  | 
 | namespace sdbusplus | 
 | { | 
 | namespace com | 
 | { | 
 | namespace ibm | 
 | { | 
 | namespace VPD | 
 | { | 
 | namespace server | 
 | { | 
 |  | 
 | Manager::Manager(bus::bus& bus, const char* path) : | 
 |     _com_ibm_VPD_Manager_interface(bus, path, interface, _vtable, this), | 
 |     _intf(bus.getInterface()) | 
 | { | 
 | } | 
 |  | 
 | int Manager::_callback_WriteKeyword(sd_bus_message* msg, void* context, | 
 |                                     sd_bus_error* error) | 
 | { | 
 |     auto o = static_cast<Manager*>(context); | 
 |  | 
 |     try | 
 |     { | 
 |         return sdbusplus::sdbuspp::method_callback( | 
 |             msg, o->_intf, error, | 
 |             std::function([=](sdbusplus::message::object_path&& path, | 
 |                               std::string&& record, std::string&& keyword, | 
 |                               std::vector<uint8_t>&& value) { | 
 |                 return o->writeKeyword(path, record, keyword, value); | 
 |             })); | 
 |     } | 
 |     catch (sdbusplus::xyz::openbmc_project::Common::Error::InvalidArgument& e) | 
 |     { | 
 |         return o->_intf->sd_bus_error_set(error, e.name(), e.description()); | 
 |     } | 
 |     catch (sdbusplus::com::ibm::VPD::Error::PathNotFound& e) | 
 |     { | 
 |         return o->_intf->sd_bus_error_set(error, e.name(), e.description()); | 
 |     } | 
 |     catch (sdbusplus::com::ibm::VPD::Error::RecordNotFound& e) | 
 |     { | 
 |         return o->_intf->sd_bus_error_set(error, e.name(), e.description()); | 
 |     } | 
 |     catch (sdbusplus::com::ibm::VPD::Error::KeywordNotFound& e) | 
 |     { | 
 |         return o->_intf->sd_bus_error_set(error, e.name(), e.description()); | 
 |     } | 
 |  | 
 |     return 0; | 
 | } | 
 |  | 
 | namespace details | 
 | { | 
 | namespace Manager | 
 | { | 
 | static const auto _param_WriteKeyword = utility::tuple_to_array( | 
 |     message::types::type_id<sdbusplus::message::object_path, std::string, | 
 |                             std::string, std::vector<uint8_t>>()); | 
 | static const auto _return_WriteKeyword = | 
 |     utility::tuple_to_array(std::make_tuple('\0')); | 
 | } // namespace Manager | 
 | } // namespace details | 
 |  | 
 | int Manager::_callback_GetFRUsByUnexpandedLocationCode(sd_bus_message* msg, | 
 |                                                        void* context, | 
 |                                                        sd_bus_error* error) | 
 | { | 
 |     auto o = static_cast<Manager*>(context); | 
 |  | 
 |     try | 
 |     { | 
 |         return sdbusplus::sdbuspp::method_callback( | 
 |             msg, o->_intf, error, | 
 |             std::function( | 
 |                 [=](std::string&& locationCode, uint16_t&& nodeNumber) { | 
 |                     return o->getFRUsByUnexpandedLocationCode(locationCode, | 
 |                                                               nodeNumber); | 
 |                 })); | 
 |     } | 
 |     catch (sdbusplus::xyz::openbmc_project::Common::Error::InvalidArgument& e) | 
 |     { | 
 |         return o->_intf->sd_bus_error_set(error, e.name(), e.description()); | 
 |     } | 
 |     catch (sdbusplus::com::ibm::VPD::Error::LocationNotFound& e) | 
 |     { | 
 |         return o->_intf->sd_bus_error_set(error, e.name(), e.description()); | 
 |     } | 
 |     catch (sdbusplus::com::ibm::VPD::Error::NodeNotFound& e) | 
 |     { | 
 |         return o->_intf->sd_bus_error_set(error, e.name(), e.description()); | 
 |     } | 
 |  | 
 |     return 0; | 
 | } | 
 |  | 
 | namespace details | 
 | { | 
 | namespace Manager | 
 | { | 
 | static const auto _param_GetFRUsByUnexpandedLocationCode = | 
 |     utility::tuple_to_array(message::types::type_id<std::string, uint16_t>()); | 
 | static const auto _return_GetFRUsByUnexpandedLocationCode = | 
 |     utility::tuple_to_array(message::types::type_id< | 
 |                             std::vector<sdbusplus::message::object_path>>()); | 
 | } // namespace Manager | 
 | } // namespace details | 
 |  | 
 | int Manager::_callback_GetFRUsByExpandedLocationCode(sd_bus_message* msg, | 
 |                                                      void* context, | 
 |                                                      sd_bus_error* error) | 
 | { | 
 |     auto o = static_cast<Manager*>(context); | 
 |  | 
 |     try | 
 |     { | 
 |         return sdbusplus::sdbuspp::method_callback( | 
 |             msg, o->_intf, error, | 
 |             std::function([=](std::string&& locationCode) { | 
 |                 return o->getFRUsByExpandedLocationCode(locationCode); | 
 |             })); | 
 |     } | 
 |     catch (sdbusplus::xyz::openbmc_project::Common::Error::InvalidArgument& e) | 
 |     { | 
 |         return o->_intf->sd_bus_error_set(error, e.name(), e.description()); | 
 |     } | 
 |     catch (sdbusplus::com::ibm::VPD::Error::LocationNotFound& e) | 
 |     { | 
 |         return o->_intf->sd_bus_error_set(error, e.name(), e.description()); | 
 |     } | 
 |     catch (sdbusplus::com::ibm::VPD::Error::NodeNotFound& e) | 
 |     { | 
 |         return o->_intf->sd_bus_error_set(error, e.name(), e.description()); | 
 |     } | 
 |  | 
 |     return 0; | 
 | } | 
 |  | 
 | namespace details | 
 | { | 
 | namespace Manager | 
 | { | 
 | static const auto _param_GetFRUsByExpandedLocationCode = | 
 |     utility::tuple_to_array(message::types::type_id<std::string>()); | 
 | static const auto _return_GetFRUsByExpandedLocationCode = | 
 |     utility::tuple_to_array(message::types::type_id< | 
 |                             std::vector<sdbusplus::message::object_path>>()); | 
 | } // namespace Manager | 
 | } // namespace details | 
 |  | 
 | int Manager::_callback_GetExpandedLocationCode(sd_bus_message* msg, | 
 |                                                void* context, | 
 |                                                sd_bus_error* error) | 
 | { | 
 |     auto o = static_cast<Manager*>(context); | 
 |  | 
 |     try | 
 |     { | 
 |         return sdbusplus::sdbuspp::method_callback( | 
 |             msg, o->_intf, error, | 
 |             std::function( | 
 |                 [=](std::string&& locationCode, uint16_t&& nodeNumber) { | 
 |                     return o->getExpandedLocationCode(locationCode, nodeNumber); | 
 |                 })); | 
 |     } | 
 |     catch (sdbusplus::xyz::openbmc_project::Common::Error::InvalidArgument& e) | 
 |     { | 
 |         return o->_intf->sd_bus_error_set(error, e.name(), e.description()); | 
 |     } | 
 |     catch (sdbusplus::com::ibm::VPD::Error::LocationNotFound& e) | 
 |     { | 
 |         return o->_intf->sd_bus_error_set(error, e.name(), e.description()); | 
 |     } | 
 |     catch (sdbusplus::com::ibm::VPD::Error::NodeNotFound& e) | 
 |     { | 
 |         return o->_intf->sd_bus_error_set(error, e.name(), e.description()); | 
 |     } | 
 |  | 
 |     return 0; | 
 | } | 
 |  | 
 | namespace details | 
 | { | 
 | namespace Manager | 
 | { | 
 | static const auto _param_GetExpandedLocationCode = | 
 |     utility::tuple_to_array(message::types::type_id<std::string, uint16_t>()); | 
 | static const auto _return_GetExpandedLocationCode = | 
 |     utility::tuple_to_array(message::types::type_id<std::string>()); | 
 | } // namespace Manager | 
 | } // namespace details | 
 |  | 
 | int Manager::_callback_PerformVPDRecollection(sd_bus_message* msg, | 
 |                                               void* context, | 
 |                                               sd_bus_error* error) | 
 | { | 
 |     auto o = static_cast<Manager*>(context); | 
 |  | 
 |     try | 
 |     { | 
 |         return sdbusplus::sdbuspp::method_callback( | 
 |             msg, o->_intf, error, | 
 |             std::function([=]() { return o->performVPDRecollection(); })); | 
 |     } | 
 |     catch (sdbusplus::xyz::openbmc_project::Common::Error::InvalidArgument& e) | 
 |     { | 
 |         return o->_intf->sd_bus_error_set(error, e.name(), e.description()); | 
 |     } | 
 |  | 
 |     return 0; | 
 | } | 
 |  | 
 | namespace details | 
 | { | 
 | namespace Manager | 
 | { | 
 | static const auto _param_PerformVPDRecollection = | 
 |     utility::tuple_to_array(std::make_tuple('\0')); | 
 | static const auto _return_PerformVPDRecollection = | 
 |     utility::tuple_to_array(std::make_tuple('\0')); | 
 | } // namespace Manager | 
 | } // namespace details | 
 |  | 
 | const vtable::vtable_t Manager::_vtable[] = { | 
 |     vtable::start(), | 
 |  | 
 |     vtable::method("WriteKeyword", details::Manager::_param_WriteKeyword.data(), | 
 |                    details::Manager::_return_WriteKeyword.data(), | 
 |                    _callback_WriteKeyword), | 
 |  | 
 |     vtable::method( | 
 |         "GetFRUsByUnexpandedLocationCode", | 
 |         details::Manager::_param_GetFRUsByUnexpandedLocationCode.data(), | 
 |         details::Manager::_return_GetFRUsByUnexpandedLocationCode.data(), | 
 |         _callback_GetFRUsByUnexpandedLocationCode), | 
 |  | 
 |     vtable::method( | 
 |         "GetFRUsByExpandedLocationCode", | 
 |         details::Manager::_param_GetFRUsByExpandedLocationCode.data(), | 
 |         details::Manager::_return_GetFRUsByExpandedLocationCode.data(), | 
 |         _callback_GetFRUsByExpandedLocationCode), | 
 |  | 
 |     vtable::method("GetExpandedLocationCode", | 
 |                    details::Manager::_param_GetExpandedLocationCode.data(), | 
 |                    details::Manager::_return_GetExpandedLocationCode.data(), | 
 |                    _callback_GetExpandedLocationCode), | 
 |  | 
 |     vtable::method("PerformVPDRecollection", | 
 |                    details::Manager::_param_PerformVPDRecollection.data(), | 
 |                    details::Manager::_return_PerformVPDRecollection.data(), | 
 |                    _callback_PerformVPDRecollection), | 
 |     vtable::end()}; | 
 |  | 
 | } // namespace server | 
 | } // namespace VPD | 
 | } // namespace ibm | 
 | } // namespace com | 
 | } // namespace sdbusplus |