Add get_events and get_timeout

These two functions are required for handling external io loops
properly, per the sd-bus documentation.  Add them to the interface, and
mocks.

Change-Id: Ic2d20607585ddf669d1cf6e7acc3e5970489489b
Signed-off-by: Ed Tanous <etanous@nvidia.com>
diff --git a/include/sdbusplus/bus.hpp b/include/sdbusplus/bus.hpp
index eb335ad..e0a16e6 100644
--- a/include/sdbusplus/bus.hpp
+++ b/include/sdbusplus/bus.hpp
@@ -413,6 +413,16 @@
         return _intf->sd_bus_get_fd(_bus.get());
     }
 
+    auto get_events()
+    {
+        return _intf->sd_bus_get_events(_bus.get());
+    }
+
+    auto get_timeout(uint64_t* timeout)
+    {
+        return _intf->sd_bus_get_timeout(_bus.get(), timeout);
+    }
+
     /** @brief Attach the bus with a sd-event event loop object.
      *
      *  @param[in] event - sd_event object.
diff --git a/include/sdbusplus/sdbus.hpp b/include/sdbusplus/sdbus.hpp
index fae1d2e..7663ddc 100644
--- a/include/sdbusplus/sdbus.hpp
+++ b/include/sdbusplus/sdbus.hpp
@@ -63,6 +63,8 @@
 
     virtual sd_event* sd_bus_get_event(sd_bus* bus) = 0;
     virtual int sd_bus_get_fd(sd_bus* bus) = 0;
+    virtual int sd_bus_get_events(sd_bus* bus) = 0;
+    virtual int sd_bus_get_timeout(sd_bus* bus, uint64_t* timeout_usec) = 0;
     virtual int sd_bus_get_unique_name(sd_bus* bus, const char** unique) = 0;
 
     virtual int sd_bus_list_names(sd_bus* bus, char*** acquired,
@@ -301,6 +303,16 @@
         return ::sd_bus_get_fd(bus);
     }
 
+    int sd_bus_get_events(sd_bus* bus) override
+    {
+        return ::sd_bus_get_events(bus);
+    }
+
+    int sd_bus_get_timeout(sd_bus* bus, uint64_t* timeout_usec) override
+    {
+        return ::sd_bus_get_timeout(bus, timeout_usec);
+    }
+
     int sd_bus_get_unique_name(sd_bus* bus, const char** unique) override
     {
         return ::sd_bus_get_unique_name(bus, unique);
diff --git a/include/sdbusplus/test/sdbus_mock.hpp b/include/sdbusplus/test/sdbus_mock.hpp
index c555dc1..2f58eae 100644
--- a/include/sdbusplus/test/sdbus_mock.hpp
+++ b/include/sdbusplus/test/sdbus_mock.hpp
@@ -59,6 +59,9 @@
 
     MOCK_METHOD(sd_event*, sd_bus_get_event, (sd_bus*), (override));
     MOCK_METHOD(int, sd_bus_get_fd, (sd_bus*), (override));
+    MOCK_METHOD(int, sd_bus_get_events, (sd_bus*), (override));
+    MOCK_METHOD(int, sd_bus_get_timeout, (sd_bus*, uint64_t* timeout_usec),
+                (override));
     MOCK_METHOD(int, sd_bus_get_unique_name, (sd_bus*, const char**),
                 (override));