2003-04-24 Havoc Pennington <hp@redhat.com>
[platform/upstream/dbus.git] / dbus / dbus-errors.h
index 4dd8767..8d8e16e 100644 (file)
@@ -2,6 +2,7 @@
 /* dbus-errors.h Error reporting
  *
  * Copyright (C) 2002  Red Hat Inc.
+ * Copyright (C) 2003  CodeFactory AB
  *
  * Licensed under the Academic Free License version 1.2
  * 
 #define DBUS_ERROR_H
 
 #include <dbus/dbus-macros.h>
+#include <dbus/dbus-types.h>
 
 DBUS_BEGIN_DECLS;
 
-typedef enum
+typedef struct DBusError DBusError;
+
+struct DBusError
 {
-  DBUS_RESULT_SUCCESS,         /**< Operation was successful. */
-  DBUS_RESULT_FAILED,          /**< Operation failed for unspecified reason. */
-  DBUS_RESULT_NO_MEMORY,       /**< Operation failed for lack of memory. */
-  DBUS_RESULT_IO_ERROR,        /**< Operation failed because of an IO error,
-                                *   typically the other end closed the
-                                *   connection.
-                                */
-  DBUS_RESULT_BAD_ADDRESS,     /**< Address was bad, could not be parsed. */
-  DBUS_RESULT_NOT_SUPPORTED,   /**< Feature is not supported. */
-  DBUS_RESULT_LIMITS_EXCEEDED, /**< Some kernel resource limit exceeded. */
-  DBUS_RESULT_ACCESS_DENIED,   /**< Some sort of permissions/security problem. */
-  DBUS_RESULT_AUTH_FAILED,     /**< Could not authenticate. */
-  DBUS_RESULT_NO_SERVER,       /**< No one listening on the other end. */
-  DBUS_RESULT_TIMEOUT,         /**< Timed out trying to connect. */
-  DBUS_RESULT_NO_NETWORK,      /**< Can't find the network */
-  DBUS_RESULT_ADDRESS_IN_USE,  /**< Someone's already using the address */
-  DBUS_RESULT_DISCONNECTED,    /**< No more connection. */
-  DBUS_RESULT_INVALID_FIELDS   /**< One or more invalid fields encountered. */
-} DBusResultCode;
-
-void        dbus_set_result       (DBusResultCode *code_address,
-                                   DBusResultCode  code);
-const char* dbus_result_to_string (DBusResultCode  code);
+  const char *name;    /**< error name */
+  const char *message; /**< error message */
+
+  unsigned int dummy1 : 1; /**< placeholder */
+  unsigned int dummy2 : 1; /**< placeholder */
+  unsigned int dummy3 : 1; /**< placeholder */
+  unsigned int dummy4 : 1; /**< placeholder */
+  unsigned int dummy5 : 1; /**< placeholder */
+
+  void *padding1; /**< placeholder */
+};
+
+#define DBUS_ERROR_FAILED                     "org.freedesktop.DBus.Error.Failed"
+#define DBUS_ERROR_ACTIVATE_SERVICE_NOT_FOUND "org.freedesktop.DBus.Activate.ServiceNotFound"
+#define DBUS_ERROR_SPAWN_EXEC_FAILED          "org.freedesktop.DBus.Error.Spawn.ExecFailed"
+#define DBUS_ERROR_SPAWN_FORK_FAILED          "org.freedesktop.DBus.Error.Spawn.ForkFailed"
+#define DBUS_ERROR_SPAWN_CHILD_EXITED         "org.freedesktop.DBus.Error.Spawn.ChildExited"
+#define DBUS_ERROR_SPAWN_CHILD_SIGNALED       "org.freedesktop.DBus.Error.Spawn.ChildSignaled"
+#define DBUS_ERROR_SPAWN_FAILED               "org.freedesktop.DBus.Error.Spawn.Failed"
+#define DBUS_ERROR_NO_MEMORY                  "org.freedesktop.DBus.Error.NoMemory"
+#define DBUS_ERROR_SERVICE_DOES_NOT_EXIST     "org.freedesktop.DBus.Error.ServiceDoesNotExist"
+#define DBUS_ERROR_NO_REPLY                   "org.freedesktop.DBus.Error.NoReply"
+#define DBUS_ERROR_IO_ERROR                   "org.freedesktop.DBus.Error.IOError"
+#define DBUS_ERROR_BAD_ADDRESS                "org.freedesktop.DBus.Error.BadAddress"
+#define DBUS_ERROR_NOT_SUPPORTED              "org.freedesktop.DBus.Error.NotSupported"
+#define DBUS_ERROR_LIMITS_EXCEEDED            "org.freedesktop.DBus.Error.LimitsExceeded"
+#define DBUS_ERROR_ACCESS_DENIED              "org.freedesktop.DBus.Error.AccessDenied"
+#define DBUS_ERROR_AUTH_FAILED                "org.freedesktop.DBus.Error.AuthFailed"
+#define DBUS_ERROR_NO_SERVER                  "org.freedesktop.DBus.Error.NoServer"
+#define DBUS_ERROR_TIMEOUT                    "org.freedesktop.DBus.Error.Timeout"
+#define DBUS_ERROR_NO_NETWORK                 "org.freedesktop.DBus.Error.NoNetwork"
+#define DBUS_ERROR_ADDRESS_IN_USE             "org.freedesktop.DBus.Error.AddressInUse"
+#define DBUS_ERROR_DISCONNECTED               "org.freedesktop.DBus.Error.Disconnected"
+#define DBUS_ERROR_INVALID_ARGS               "org.freedesktop.DBus.Error.InvalidArgs"
+#define DBUS_ERROR_FILE_NOT_FOUND             "org.freedesktop.DBus.Error.FileNotFound"
+#define DBUS_ERROR_UNKNOWN_MESSAGE            "org.freedesktop.DBus.Error.UnknownMessage"
+#define DBUS_ERROR_TIMED_OUT                  "org.freedesktop.DBus.Error.TimedOut"
 
+void        dbus_error_init      (DBusError       *error);
+void        dbus_error_free      (DBusError       *error);
+void        dbus_set_error       (DBusError       *error,
+                                  const char      *name,
+                                  const char      *message,
+                                  ...);
+void        dbus_set_error_const (DBusError       *error,
+                                  const char      *name,
+                                  const char      *message);
+void        dbus_move_error      (DBusError       *src,
+                                  DBusError       *dest);
+dbus_bool_t dbus_error_has_name  (const DBusError *error,
+                                  const char      *name);
+dbus_bool_t dbus_error_is_set    (const DBusError *error);
 
 DBUS_END_DECLS;