message: Add get_error()

Add message::get_error() to get sd_bus_error from a message.

Tested: Verify the function is added, the build passes, and the user of
        sdbusplus is able to call message::get_error() to get the
        const sd_bus_error* pointer.

Change-Id: If4c413316ff7654448e9da19adcd3dab2c33675e
Signed-off-by: Lei YU <mine260309@gmail.com>
diff --git a/sdbusplus/message.hpp b/sdbusplus/message.hpp
index a307a6f..b56921b 100644
--- a/sdbusplus/message.hpp
+++ b/sdbusplus/message.hpp
@@ -219,6 +219,15 @@
         return _intf->sd_bus_message_get_errno(_msg.get());
     }
 
+    /** @brief Get the error from the message.
+     *
+     *  @return The error of the message.
+     */
+    const sd_bus_error* get_error()
+    {
+        return _intf->sd_bus_message_get_error(_msg.get());
+    }
+
     /** @brief Get the type of a message.
      *
      * @return The type of message.
diff --git a/sdbusplus/sdbus.hpp b/sdbusplus/sdbus.hpp
index bd42033..5a73309 100644
--- a/sdbusplus/sdbus.hpp
+++ b/sdbusplus/sdbus.hpp
@@ -91,6 +91,7 @@
     virtual const char* sd_bus_message_get_signature(sd_bus_message* m,
                                                      int complete) = 0;
     virtual int sd_bus_message_get_errno(sd_bus_message* m) = 0;
+    virtual const sd_bus_error* sd_bus_message_get_error(sd_bus_message* m) = 0;
 
     virtual int sd_bus_message_is_method_call(sd_bus_message* m,
                                               const char* interface,
@@ -359,6 +360,11 @@
         return ::sd_bus_message_get_errno(m);
     }
 
+    const sd_bus_error* sd_bus_message_get_error(sd_bus_message* m) override
+    {
+        return ::sd_bus_message_get_error(m);
+    }
+
     int sd_bus_message_is_method_call(sd_bus_message* m, const char* interface,
                                       const char* member) override
     {
diff --git a/sdbusplus/test/sdbus_mock.hpp b/sdbusplus/test/sdbus_mock.hpp
index 36a8598..b88b120 100644
--- a/sdbusplus/test/sdbus_mock.hpp
+++ b/sdbusplus/test/sdbus_mock.hpp
@@ -68,6 +68,8 @@
     MOCK_METHOD2(sd_bus_message_get_signature,
                  const char*(sd_bus_message*, int));
     MOCK_METHOD1(sd_bus_message_get_errno, int(sd_bus_message*));
+    MOCK_METHOD1(sd_bus_message_get_error,
+                 const sd_bus_error*(sd_bus_message*));
 
     MOCK_METHOD3(sd_bus_message_is_method_call,
                  int(sd_bus_message*, const char*, const char*));