xref: /aosp_15_r20/external/libchrome/dbus/scoped_dbus_error.h (revision 635a864187cb8b6c713ff48b7e790a6b21769273)
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