00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef _SML_ERROR_H_
00023 #define _SML_ERROR_H_
00024
00025 typedef enum {
00026 SML_ERRORCLASS_UNKNOWN = 0,
00027 SML_ERRORCLASS_SUCCESS = 2,
00028 SML_ERRORCLASS_RETRY = 3,
00029 SML_ERRORCLASS_FATAL = 5
00030 } SmlErrorClass;
00031
00035 typedef enum {
00036 SML_ERROR_UNKNOWN = 0,
00037
00038
00039 SML_IN_PROGRESS = 101,
00040
00041
00043 SML_NO_ERROR = 200,
00045 SML_ITEM_ADDED = 201,
00047 SML_PROCESSING_ACCEPTED = 202,
00049 SML_NON_AUTHORITATIVE = 203,
00051 SML_NO_CONTENT = 204,
00053 SML_RESET_CONTENT = 205,
00055 SML_PARTIAL_CONTENT = 206,
00057 SML_CONFLICT_MERGE = 207,
00059 SML_CONFLICT_CLIENT_WIN = 208,
00061 SML_CONFLICT_DUPLICATE = 209,
00063 SML_DELETE_NO_ARCHIVE = 210,
00065 SML_DELETE_NOT_FOUND = 211,
00067 SML_AUTH_ACCEPTED = 212,
00069 SML_CHUNK_ACCEPTED = 213,
00071 SML_OPERATION_CANCELLED = 214,
00073 SML_NOT_EXECUTED = 215,
00075 SML_ATOMIC_ROLLBACK_OK = 216,
00076
00077
00078 SML_ERROR_MULTIPLE_CHOICES = 300,
00079 SML_ERROR_MOVED_PERMANENTLY = 301,
00080 SML_ERROR_FOUND_RETRY = 302,
00081 SML_ERROR_SEE_OTHER_RETRY = 303,
00082 SML_ERROR_NOT_MODIFIED = 304,
00083 SML_ERROR_USE_PROXY = 305,
00084
00085
00086 SML_ERROR_BAD_REQUEST = 400,
00087 SML_ERROR_AUTH_REJECTED = 401,
00088 SML_ERROR_PAYMENT_NEEDED =402,
00089 SML_ERROR_FORBIDDEN = 403,
00090 SML_ERROR_NOT_FOUND = 404,
00091 SML_ERROR_COMMAND_NOT_ALLOWED = 405,
00092 SML_ERROR_UNSUPPORTED_FEATURE = 406,
00093 SML_ERROR_AUTH_REQUIRED = 407,
00094 SML_ERROR_RETRY_LATER = 417,
00095 SML_ERROR_ALREADY_EXISTS = 418,
00096 SML_ERROR_SIZE_MISMATCH = 424,
00097
00098
00099 SML_ERROR_GENERIC = 500,
00100 SML_ERROR_NOT_IMPLEMENTED = 501,
00101 SML_ERROR_SERVICE_UNAVAILABLE = 503,
00102 SML_ERROR_REQUIRE_REFRESH = 508,
00103 SML_ERROR_SERVER_FAILURE = 511,
00104
00105
00106 SML_ERROR_INTERNAL_IO_ERROR = 1501,
00107 SML_ERROR_INTERNAL_TIMEOUT = 1503,
00108 SML_ERROR_INTERNAL_FILE_NOT_FOUND = 1505,
00109 SML_ERROR_INTERNAL_MISCONFIGURATION = 1506,
00110 SML_ERROR_INTERNAL_NO_MEMORY = 1512
00111
00112 } SmlErrorType;
00113
00114 SmlError **smlErrorRef(SmlError **error);
00115 void smlErrorDeref(SmlError **error);
00116 SmlBool smlErrorIsSet(SmlError **error);
00117 void smlErrorSet(SmlError **error, SmlErrorType type, const char *format, ...);
00118 void smlErrorUpdate(SmlError **error, const char *format, ...);
00119 void smlErrorDuplicate(SmlError **target, SmlError **source);
00120 const char *smlErrorPrint(SmlError **error);
00121 SmlErrorType smlErrorGetType(SmlError **error);
00122 void smlErrorSetType(SmlError **error, SmlErrorType type);
00123 SmlErrorClass smlErrorGetClass(SmlError **error);
00124
00125 #endif //_SML_ERROR_H_