00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef __GZ_DIST_ERROR_H__
00022 #define __GZ_DIST_ERROR_H__
00023
00034
00035 #include "gzDistBase.h"
00036
00037
00038
00039
00041 enum gzDistErrorCode
00042 {
00043 GZ_DIST_NO_ERROR = 0,
00044
00045
00046 GZ_DIST_CHANNEL_MISSING,
00047 GZ_DIST_CHANNEL_ALREADY_OPEN,
00048 GZ_DIST_CHANNEL_NOT_OPEN,
00049 GZ_DIST_CHANNEL_MISSING_TRANSPORT,
00050 GZ_DIST_TRANSPORT_ALREADY_INSTALLED,
00051
00052
00053 GZ_DIST_INVALID_PROTOCOL_VERSION,
00054 GZ_DIST_PROTOCOL_INCOMPLETE_MESSAGE,
00055 GZ_DIST_PROTOCOL_MESSAGE_TOO_LONG,
00056 GZ_DIST_PROTOCOL_SERIALIZE_WRITE_ERROR,
00057 GZ_DIST_PROTOCOL_PARSE_READ_ERROR,
00058 GZ_DIST_PROTOCOL_UNKNOWN_MESSAGE_CLASS,
00059 GZ_DIST_PROTOCOL_UNKNOWN_MESSAGE_TYPE,
00060
00061
00062 GZ_DIST_TRANSPORT_ALREADY_OPEN,
00063 GZ_DIST_TRANSPORT_ALREADY_CONNECTED,
00064 GZ_DIST_TRANSPORT_NOT_OPEN,
00065 GZ_DIST_TRANSPORT_NOT_CONNECTED,
00066 GZ_DIST_TRANSPORT_CONNECTION_FAILED,
00067 GZ_DIST_TRANSPORT_FAULTY_MESSAGE,
00068 GZ_DIST_TRANSPORT_WOULD_BLOCK,
00069
00070
00071 GZ_DIST_CREATE_SOCKET_FAILED,
00072 GZ_DIST_INVALID_SOCKET_OPTION,
00073 GZ_DIST_BIND_SOCKET_FAILED,
00074 GZ_DIST_SOCKET_SEND_FAILED,
00075 GZ_DIST_SOCKET_RECEIVE_FAILED,
00076 GZ_DIST_SOCKET_CONNECTION_REFUSED,
00077 GZ_DIST_SOCKET_CONNECTION_CLOSED,
00078
00079
00080 GZ_DIST_WRITE_PIPE_FAILED,
00081 GZ_DIST_READ_PIPE_FAILED,
00082
00083
00084 GZ_DIST_FAULTY_CLIENT,
00085 GZ_DIST_CLIENT_ALREADY_SUBSCRIBER,
00086 GZ_DIST_CLIENT_NOT_A_SUBSCRIBER,
00087 GZ_DIST_CLIENT_NOT_JOINED,
00088 GZ_DIST_CLIENT_ALREADY_EXIST,
00089 GZ_DIST_CLIENT_NOT_INITIALIZED,
00090 GZ_DIST_CLIENT_ALREADY_OWNER,
00091 GZ_DIST_UNHANDLED_CLIENT_MESSAGE,
00092 GZ_DIST_SESSION_NOT_FOUND,
00093 GZ_DIST_NO_MANAGER_EXIST,
00094 GZ_DIST_MANAGER_IS_NOT_RUNNING,
00095 GZ_DIST_MANAGER_IS_ALREADY_RUNNING,
00096 GZ_DIST_OBJECT_NOT_EVALUATED_FOR_SESSION,
00097 GZ_DIST_OBJECT_ALREADY_IN_SESSION,
00098 GZ_DIST_OBJECT_NOT_FOUND,
00099 GZ_DIST_OBJECT_NOT_IN_SESSION,
00100 GZ_DIST_ATTRIBUTE_NOT_FOUND,
00101 GZ_DIST_MESSAGE_TIMEOUT,
00102 GZ_DIST_OPTIMIZED_MEMORY_DISABLED,
00103 GZ_DIST_UNABLE_TO_ALLOCATE_MEMORY,
00104 GZ_DIST_EVENT_ALREADY_IN_SESSION,
00105
00106
00107 GZ_DIST_ILLEGAL_EVALUATOR,
00108 GZ_DIST_EVALUATOR_ALREADY_EXIST,
00109 GZ_DIST_OBJECT_REJECTED_BY_EVALUATOR,
00110
00111
00112 GZ_DIST_SERVER_ENGINE_START_FAILED,
00113 GZ_DIST_SERVER_ENGINE_NOT_STARTED,
00114 GZ_DIST_SERVER_ALREADY_INSTALLED,
00115 GZ_DIST_SERVER_NOT_INSTALLED,
00116 GZ_DIST_SERVER_INSTALL_FAILED,
00117 GZ_DIST_SERVER_UNINSTALL_FAILED,
00118
00119
00120 GZ_DIST_INVALID_PARAMETER,
00121
00122
00123
00124
00125
00126 GZ_DIST_UNKNOWN_ERROR
00127 };
00128
00129
00130
00131
00133 enum gzDistErrorLevel
00134 {
00135 GZ_DIST_ERROR_DEBUG = 0,
00136 GZ_DIST_ERROR_NOTICE,
00137 GZ_DIST_ERROR_WARNING,
00138 GZ_DIST_ERROR_FATAL
00139 };
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154
00155
00156
00157
00159
00169 class gzDistError
00170 {
00171 public:
00172
00174
00176 GZ_DIST_EXPORT gzDistError();
00177
00179
00181 GZ_DIST_EXPORT gzDistError(const gzDistErrorCode& code, const gzDistErrorLevel& level);
00182
00184
00187 GZ_DIST_EXPORT gzDistError(const gzDistErrorCode& code, const gzDistErrorLevel& level, const gzString& additional);
00188
00190 GZ_DIST_EXPORT gzDistError(const gzDistError& orig);
00191
00193 GZ_DIST_EXPORT virtual ~gzDistError();
00194
00196 GZ_DIST_EXPORT gzDistError& operator=(const gzDistError& rhs);
00197
00199
00201 GZ_DIST_EXPORT gzVoid setError(const gzDistErrorCode& code, const gzDistErrorLevel& level);
00202
00204
00207 GZ_DIST_EXPORT gzVoid setError(const gzDistErrorCode& code, const gzDistErrorLevel& level, const gzString& additional);
00208
00210 GZ_DIST_EXPORT gzVoid resetError();
00211
00213 GZ_DIST_EXPORT gzBool hasError() const;
00214
00216
00217 GZ_DIST_EXPORT operator gzBool() const;
00218
00220 GZ_DIST_EXPORT gzDistErrorCode getErrorCode() const;
00221
00223 GZ_DIST_EXPORT gzDistErrorLevel getErrorLevel() const;
00224
00226 GZ_DIST_EXPORT gzBool operator==(const gzDistErrorCode& rhsCode) const;
00227
00229 GZ_DIST_EXPORT gzBool operator!=(const gzDistErrorCode& rhsCode) const;
00230
00232 GZ_DIST_EXPORT const gzString& getErrorString() const;
00233
00235 GZ_DIST_EXPORT gzString getAdditionalString() const;
00236
00238 GZ_DIST_EXPORT gzBool hasAdditionalString() const;
00239
00241 GZ_DIST_EXPORT gzVoid reportError() const;
00242
00243 private:
00244
00245
00246 gzDistErrorCode m_code : 16;
00247
00248
00249 gzDistErrorLevel m_level : 16;
00250
00251
00252 gzString* m_additional;
00253 };
00254
00255
00257 const gzDistError GZ_DIST_OK(GZ_DIST_NO_ERROR, GZ_DIST_ERROR_NOTICE);
00258
00259
00260
00261
00263
00264 GZ_DIST_EXPORT gzVoid gzDistReportLastError(gzBool clear = FALSE);
00265
00266
00268
00269 GZ_DIST_EXPORT gzDistError gzDistGetLastError(gzBool clear = FALSE);
00270
00271
00273
00276 GZ_DIST_EXPORT gzVoid gzDistSetLastError(const gzDistErrorCode& code, const gzDistErrorLevel& level);
00277
00278
00280
00284 GZ_DIST_EXPORT gzVoid gzDistSetLastError(const gzDistErrorCode& code, const gzDistErrorLevel& level, const gzString& additional);
00285
00286
00288
00290 GZ_DIST_EXPORT gzVoid gzDistSetLastError(const gzDistError& error);
00291
00292
00294 GZ_DIST_EXPORT gzVoid gzDistClearLastError();
00295
00296
00298
00299 GZ_DIST_EXPORT gzVoid gzDistClearAllErrors();
00300
00301
00302 #endif //__GZ_DIST_ERROR_H__