Home | History | Annotate | Download | only in dbus
      1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef DBUS_SCOPED_DBUS_ERROR_H_
      6 #define DBUS_SCOPED_DBUS_ERROR_H_
      7 
      8 #include <dbus/dbus.h>
      9 
     10 #include "dbus/dbus_export.h"
     11 
     12 namespace dbus {
     13 
     14 // Utility class to ensure that DBusError is freed.
     15 class CHROME_DBUS_EXPORT ScopedDBusError {
     16  public:
     17   // Do not inline methods that call dbus_error_xxx() functions.
     18   // See http://crbug.com/416628
     19   ScopedDBusError();
     20   ~ScopedDBusError();
     21 
     22   DBusError* get() { return &error_; }
     23   bool is_set() const;
     24   const char* name() { return error_.name; }
     25   const char* message() { return error_.message; }
     26 
     27  private:
     28   DBusError error_;
     29 };
     30 
     31 }  // namespace dbus
     32 
     33 #endif  // DBUS_SCOPED_DBUS_ERROR_H_
     34