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