00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef __DBUSXX_ERROR_H
00026 #define __DBUSXX_ERROR_H
00027
00028 #include "api.h"
00029 #include "util.h"
00030
00031 #include <exception>
00032
00033 namespace DBus
00034 {
00035
00036 class Message;
00037 class InternalError;
00038
00039 class DXXAPI Error : public std::exception
00040 {
00041 public:
00042
00043 Error();
00044
00045 Error(InternalError &);
00046
00047 Error(const char *name, const char *message);
00048
00049 Error(Message &);
00050
00051 ~Error() throw();
00052
00053 const char *what() const throw();
00054
00055 const char *name() const;
00056
00057 const char *message() const;
00058
00059 void set(const char *name, const char *message);
00060
00061
00062 bool is_set() const;
00063
00064 operator bool() const
00065 {
00066 return is_set();
00067 }
00068
00069 private:
00070
00071 RefPtrI<InternalError> _int;
00072 };
00073
00074 struct DXXAPI ErrorFailed : public Error
00075 {
00076 ErrorFailed(const char *message)
00077 : Error("org.freedesktop.DBus.Error.Failed", message)
00078 {}
00079 };
00080
00081 struct DXXAPI ErrorNoMemory : public Error
00082 {
00083 ErrorNoMemory(const char *message)
00084 : Error("org.freedesktop.DBus.Error.NoMemory", message)
00085 {}
00086 };
00087
00088 struct DXXAPI ErrorServiceUnknown : public Error
00089 {
00090 ErrorServiceUnknown(const char *message)
00091 : Error("org.freedesktop.DBus.Error.ServiceUnknown", message)
00092 {}
00093 };
00094
00095 struct DXXAPI ErrorNameHasNoOwner : public Error
00096 {
00097 ErrorNameHasNoOwner(const char *message)
00098 : Error("org.freedesktop.DBus.Error.NameHasNoOwner", message)
00099 {}
00100 };
00101
00102 struct DXXAPI ErrorNoReply : public Error
00103 {
00104 ErrorNoReply(const char *message)
00105 : Error("org.freedesktop.DBus.Error.NoReply", message)
00106 {}
00107 };
00108
00109 struct DXXAPI ErrorIOError : public Error
00110 {
00111 ErrorIOError(const char *message)
00112 : Error("org.freedesktop.DBus.Error.IOError", message)
00113 {}
00114 };
00115
00116 struct DXXAPI ErrorBadAddress : public Error
00117 {
00118 ErrorBadAddress(const char *message)
00119 : Error("org.freedesktop.DBus.Error.BadAddress", message)
00120 {}
00121 };
00122
00123 struct DXXAPI ErrorNotSupported : public Error
00124 {
00125 ErrorNotSupported(const char *message)
00126 : Error("org.freedesktop.DBus.Error.NotSupported", message)
00127 {}
00128 };
00129
00130 struct DXXAPI ErrorLimitsExceeded : public Error
00131 {
00132 ErrorLimitsExceeded(const char *message)
00133 : Error("org.freedesktop.DBus.Error.LimitsExceeded", message)
00134 {}
00135 };
00136
00137 struct DXXAPI ErrorAccessDenied : public Error
00138 {
00139 ErrorAccessDenied(const char *message)
00140 : Error("org.freedesktop.DBus.Error.AccessDenied", message)
00141 {}
00142 };
00143
00144 struct DXXAPI ErrorAuthFailed : public Error
00145 {
00146 ErrorAuthFailed(const char *message)
00147 : Error("org.freedesktop.DBus.Error.AuthFailed", message)
00148 {}
00149 };
00150
00151 struct DXXAPI ErrorNoServer : public Error
00152 {
00153 ErrorNoServer(const char *message)
00154 : Error("org.freedesktop.DBus.Error.NoServer", message)
00155 {}
00156 };
00157
00158 struct DXXAPI ErrorTimeout : public Error
00159 {
00160 ErrorTimeout(const char *message)
00161 : Error("org.freedesktop.DBus.Error.Timeout", message)
00162 {}
00163 };
00164
00165 struct DXXAPI ErrorNoNetwork : public Error
00166 {
00167 ErrorNoNetwork(const char *message)
00168 : Error("org.freedesktop.DBus.Error.NoNetwork", message)
00169 {}
00170 };
00171
00172 struct DXXAPI ErrorAddressInUse : public Error
00173 {
00174 ErrorAddressInUse(const char *message)
00175 : Error("org.freedesktop.DBus.Error.AddressInUse", message)
00176 {}
00177 };
00178
00179 struct DXXAPI ErrorDisconnected : public Error
00180 {
00181 ErrorDisconnected(const char *message)
00182 : Error("org.freedesktop.DBus.Error.Disconnected", message)
00183 {}
00184 };
00185
00186 struct DXXAPI ErrorInvalidArgs : public Error
00187 {
00188 ErrorInvalidArgs(const char *message)
00189 : Error("org.freedesktop.DBus.Error.InvalidArgs", message)
00190 {}
00191 };
00192
00193 struct DXXAPI ErrorFileNotFound : public Error
00194 {
00195 ErrorFileNotFound(const char *message)
00196 : Error("org.freedesktop.DBus.Error.FileNotFound", message)
00197 {}
00198 };
00199
00200 struct DXXAPI ErrorUnknownMethod : public Error
00201 {
00202 ErrorUnknownMethod(const char *message)
00203 : Error("org.freedesktop.DBus.Error.UnknownMethod", message)
00204 {}
00205 };
00206
00207 struct DXXAPI ErrorTimedOut : public Error
00208 {
00209 ErrorTimedOut(const char *message)
00210 : Error("org.freedesktop.DBus.Error.TimedOut", message)
00211 {}
00212 };
00213
00214 struct DXXAPI ErrorMatchRuleNotFound : public Error
00215 {
00216 ErrorMatchRuleNotFound(const char *message)
00217 : Error("org.freedesktop.DBus.Error.MatchRuleNotFound", message)
00218 {}
00219 };
00220
00221 struct DXXAPI ErrorMatchRuleInvalid : public Error
00222 {
00223 ErrorMatchRuleInvalid(const char *message)
00224 : Error("org.freedesktop.DBus.Error.MatchRuleInvalid", message)
00225 {}
00226 };
00227
00228 struct DXXAPI ErrorSpawnExecFailed : public Error
00229 {
00230 ErrorSpawnExecFailed(const char *message)
00231 : Error("org.freedesktop.DBus.Error.Spawn.ExecFailed", message)
00232 {}
00233 };
00234
00235 struct DXXAPI ErrorSpawnForkFailed : public Error
00236 {
00237 ErrorSpawnForkFailed(const char *message)
00238 : Error("org.freedesktop.DBus.Error.Spawn.ForkFailed", message)
00239 {}
00240 };
00241
00242 struct DXXAPI ErrorSpawnChildExited : public Error
00243 {
00244 ErrorSpawnChildExited(const char *message)
00245 : Error("org.freedesktop.DBus.Error.Spawn.ChildExited", message)
00246 {}
00247 };
00248
00249 struct DXXAPI ErrorSpawnChildSignaled : public Error
00250 {
00251 ErrorSpawnChildSignaled(const char *message)
00252 : Error("org.freedesktop.DBus.Error.Spawn.ChildSignaled", message)
00253 {}
00254 };
00255
00256 struct DXXAPI ErrorSpawnFailed : public Error
00257 {
00258 ErrorSpawnFailed(const char *message)
00259 : Error("org.freedesktop.DBus.Error.Spawn.Failed", message)
00260 {}
00261 };
00262
00263 struct DXXAPI ErrorInvalidSignature : public Error
00264 {
00265 ErrorInvalidSignature(const char *message)
00266 : Error("org.freedesktop.DBus.Error.InvalidSignature", message)
00267 {}
00268 };
00269
00270 struct DXXAPI ErrorUnixProcessIdUnknown : public Error
00271 {
00272 ErrorUnixProcessIdUnknown(const char *message)
00273 : Error("org.freedesktop.DBus.Error.UnixProcessIdUnknown", message)
00274 {}
00275 };
00276
00277 struct DXXAPI ErrorSELinuxSecurityContextUnknown : public Error
00278 {
00279 ErrorSELinuxSecurityContextUnknown(const char *message)
00280 : Error("org.freedesktop.DBus.Error.SELinuxSecurityContextUnknown", message)
00281 {}
00282 };
00283
00284 }
00285
00286 #endif//__DBUSXX_ERROR_H