blob: 9fe966f565877ecccc91ef1f58fa2fa8aeaa5ab2 [file] [log] [blame]
Ed Tanous911ac312017-08-15 09:37:42 -07001#pragma once
Ed Tanousaa2e59c2018-04-12 12:17:20 -07002#include <iostream>
Ed Tanous1abe55e2018-09-05 08:30:59 -07003#include <sdbusplus/asio/connection.hpp>
William A. Kennington III0a63b1c2018-10-18 13:37:19 -07004#include <sdbusplus/message/types.hpp>
5#include <type_traits>
Ed Tanousaa2e59c2018-04-12 12:17:20 -07006
Ed Tanous1abe55e2018-09-05 08:30:59 -07007namespace mapbox
8{
Ed Tanousaa2e59c2018-04-12 12:17:20 -07009template <typename T, typename... Types>
William A. Kennington III0a63b1c2018-10-18 13:37:19 -070010const T* getPtr(const sdbusplus::message::variant<Types...>& v)
Ed Tanous1abe55e2018-09-05 08:30:59 -070011{
William A. Kennington III0a63b1c2018-10-18 13:37:19 -070012 namespace variant_ns = sdbusplus::message::variant_ns;
13 return variant_ns::get_if<std::remove_const_t<T>, Types...>(&v);
Ed Tanousaa2e59c2018-04-12 12:17:20 -070014}
Ed Tanous1abe55e2018-09-05 08:30:59 -070015} // namespace mapbox
Ed Tanous911ac312017-08-15 09:37:42 -070016
Ed Tanous1abe55e2018-09-05 08:30:59 -070017namespace crow
18{
19namespace connections
20{
Ed Tanous55c7b7a2018-05-22 15:27:24 -070021static std::shared_ptr<sdbusplus::asio::connection> systemBus;
Ed Tanous911ac312017-08-15 09:37:42 -070022
Ed Tanous1abe55e2018-09-05 08:30:59 -070023} // namespace connections
24} // namespace crow