[8003] | 1 | /* $Id: kError.h,v 1.1 2002-02-24 02:47:24 bird Exp $
|
---|
| 2 | *
|
---|
| 3 | * Error Wrapper.
|
---|
| 4 | *
|
---|
| 5 | * Copyright (c) 2001 knut st. osmundsen (knut.stange.osmundsen@mynd.no)
|
---|
| 6 | *
|
---|
| 7 | */
|
---|
| 8 |
|
---|
| 9 | #ifndef _kError_h_
|
---|
| 10 | #define _kError_h_
|
---|
| 11 |
|
---|
| 12 |
|
---|
| 13 |
|
---|
| 14 | class kError
|
---|
| 15 | {
|
---|
| 16 | public:
|
---|
| 17 | /**
|
---|
| 18 | * OS/2 Error Codes.
|
---|
| 19 | */
|
---|
| 20 | enum enmError
|
---|
| 21 | {
|
---|
| 22 | NO = 0,
|
---|
| 23 | INVALID_FUNCTION = 1,
|
---|
| 24 | FILE_NOT_FOUND = 2,
|
---|
| 25 | PATH_NOT_FOUND = 3,
|
---|
| 26 | TOO_MANY_OPEN_FILES = 4,
|
---|
| 27 | ACCESS_DENIED = 5,
|
---|
| 28 | INVALID_HANDLE = 6,
|
---|
| 29 | ARENA_TRASHED = 7,
|
---|
| 30 | NOT_ENOUGH_MEMORY = 8,
|
---|
| 31 | INVALID_BLOCK = 9,
|
---|
| 32 | BAD_ENVIRONMENT = 10,
|
---|
| 33 | BAD_FORMAT = 11,
|
---|
| 34 | INVALID_ACCESS = 12,
|
---|
| 35 | INVALID_DATA = 13,
|
---|
| 36 | INVALID_DRIVE = 15,
|
---|
| 37 | CURRENT_DIRECTORY = 16,
|
---|
| 38 | NOT_SAME_DEVICE = 17,
|
---|
| 39 | NO_MORE_FILES = 18,
|
---|
| 40 | WRITE_PROTECT = 19,
|
---|
| 41 | BAD_UNIT = 20,
|
---|
| 42 | NOT_READY = 21,
|
---|
| 43 | BAD_COMMAND = 22,
|
---|
| 44 | CRC = 23,
|
---|
| 45 | BAD_LENGTH = 24,
|
---|
| 46 | SEEK = 25,
|
---|
| 47 | NOT_DOS_DISK = 26,
|
---|
| 48 | SECTOR_NOT_FOUND = 27,
|
---|
| 49 | OUT_OF_PAPER = 28,
|
---|
| 50 | WRITE_FAULT = 29,
|
---|
| 51 | READ_FAULT = 30,
|
---|
| 52 | GEN_FAILURE = 31,
|
---|
| 53 | SHARING_VIOLATION = 32,
|
---|
| 54 | LOCK_VIOLATION = 33,
|
---|
| 55 | WRONG_DISK = 34,
|
---|
| 56 | FCB_UNAVAILABLE = 35,
|
---|
| 57 | SHARING_BUFFER_EXCEEDED = 36,
|
---|
| 58 | CODE_PAGE_MISMATCHED = 37,
|
---|
| 59 | HANDLE_EOF = 38,
|
---|
| 60 | HANDLE_DISK_FULL = 39,
|
---|
| 61 | NOT_SUPPORTED = 50,
|
---|
| 62 | REM_NOT_LIST = 51,
|
---|
| 63 | DUP_NAME = 52,
|
---|
| 64 | BAD_NETPATH = 53,
|
---|
| 65 | NETWORK_BUSY = 54,
|
---|
| 66 | DEV_NOT_EXIST = 55,
|
---|
| 67 | TOO_MANY_CMDS = 56,
|
---|
| 68 | ADAP_HDW_ERR = 57,
|
---|
| 69 | BAD_NET_RESP = 58,
|
---|
| 70 | UNEXP_NET_ERR = 59,
|
---|
| 71 | BAD_REM_ADAP = 60,
|
---|
| 72 | PRINTQ_FULL = 61,
|
---|
| 73 | NO_SPOOL_SPACE = 62,
|
---|
| 74 | PRINT_CANCELLED = 63,
|
---|
| 75 | NETNAME_DELETED = 64,
|
---|
| 76 | NETWORK_ACCESS_DENIED = 65,
|
---|
| 77 | BAD_DEV_TYPE = 66,
|
---|
| 78 | BAD_NET_NAME = 67,
|
---|
| 79 | TOO_MANY_NAMES = 68,
|
---|
| 80 | TOO_MANY_SESS = 69,
|
---|
| 81 | SHARING_PAUSED = 70,
|
---|
| 82 | REQ_NOT_ACCEP = 71,
|
---|
| 83 | REDIR_PAUSED = 72,
|
---|
| 84 | SBCS_ATT_WRITE_PROT = 73,
|
---|
| 85 | SBCS_GENERAL_FAILURE = 74,
|
---|
| 86 | XGA_OUT_MEMORY = 75,
|
---|
| 87 | FILE_EXISTS = 80,
|
---|
| 88 | DUP_FCB = 81,
|
---|
| 89 | CANNOT_MAKE = 82,
|
---|
| 90 | FAIL_I24 = 83,
|
---|
| 91 | OUT_OF_STRUCTURES = 84,
|
---|
| 92 | ALREADY_ASSIGNED = 85,
|
---|
| 93 | INVALID_PASSWORD = 86,
|
---|
| 94 | INVALID_PARAMETER = 87,
|
---|
| 95 | NET_WRITE_FAULT = 88,
|
---|
| 96 | NO_PROC_SLOTS = 89,
|
---|
| 97 | NOT_FROZEN = 90,
|
---|
| 98 | TSTOVFL = 91,
|
---|
| 99 | TSTDUP = 92,
|
---|
| 100 | NO_ITEMS = 93,
|
---|
| 101 | INTERRUPT = 95,
|
---|
| 102 | DEVICE_IN_USE = 99,
|
---|
| 103 | TOO_MANY_SEMAPHORES = 100,
|
---|
| 104 | EXCL_SEM_ALREADY_OWNED = 101,
|
---|
| 105 | SEM_IS_SET = 102,
|
---|
| 106 | TOO_MANY_SEM_REQUESTS = 103,
|
---|
| 107 | INVALID_AT_INTERRUPT_TIME= 104,
|
---|
| 108 | SEM_OWNER_DIED = 105,
|
---|
| 109 | SEM_USER_LIMIT = 106,
|
---|
| 110 | DISK_CHANGE = 107,
|
---|
| 111 | DRIVE_LOCKED = 108,
|
---|
| 112 | BROKEN_PIPE = 109,
|
---|
| 113 | OPEN_FAILED = 110,
|
---|
| 114 | BUFFER_OVERFLOW = 111,
|
---|
| 115 | DISK_FULL = 112,
|
---|
| 116 | NO_MORE_SEARCH_HANDLES = 113,
|
---|
| 117 | INVALID_TARGET_HANDLE = 114,
|
---|
| 118 | PROTECTION_VIOLATION = 115,
|
---|
| 119 | VIOKBD_REQUEST = 116,
|
---|
| 120 | INVALID_CATEGORY = 117,
|
---|
| 121 | INVALID_VERIFY_SWITCH = 118,
|
---|
| 122 | BAD_DRIVER_LEVEL = 119,
|
---|
| 123 | CALL_NOT_IMPLEMENTED = 120,
|
---|
| 124 | SEM_TIMEOUT = 121,
|
---|
| 125 | INSUFFICIENT_BUFFER = 122,
|
---|
| 126 | INVALID_NAME = 123,
|
---|
| 127 | INVALID_LEVEL = 124,
|
---|
| 128 | NO_VOLUME_LABEL = 125,
|
---|
| 129 | MOD_NOT_FOUND = 126,
|
---|
| 130 | PROC_NOT_FOUND = 127,
|
---|
| 131 | WAIT_NO_CHILDREN = 128,
|
---|
| 132 | CHILD_NOT_COMPLETE = 129,
|
---|
| 133 | DIRECT_ACCESS_HANDLE = 130,
|
---|
| 134 | NEGATIVE_SEEK = 131,
|
---|
| 135 | SEEK_ON_DEVICE = 132,
|
---|
| 136 | IS_JOIN_TARGET = 133,
|
---|
| 137 | IS_JOINED = 134,
|
---|
| 138 | IS_SUBSTED = 135,
|
---|
| 139 | NOT_JOINED = 136,
|
---|
| 140 | NOT_SUBSTED = 137,
|
---|
| 141 | JOIN_TO_JOIN = 138,
|
---|
| 142 | SUBST_TO_SUBST = 139,
|
---|
| 143 | JOIN_TO_SUBST = 140,
|
---|
| 144 | SUBST_TO_JOIN = 141,
|
---|
| 145 | BUSY_DRIVE = 142,
|
---|
| 146 | SAME_DRIVE = 143,
|
---|
| 147 | DIR_NOT_ROOT = 144,
|
---|
| 148 | DIR_NOT_EMPTY = 145,
|
---|
| 149 | IS_SUBST_PATH = 146,
|
---|
| 150 | IS_JOIN_PATH = 147,
|
---|
| 151 | PATH_BUSY = 148,
|
---|
| 152 | IS_SUBST_TARGET = 149,
|
---|
| 153 | SYSTEM_TRACE = 150,
|
---|
| 154 | INVALID_EVENT_COUNT = 151,
|
---|
| 155 | TOO_MANY_MUXWAITERS = 152,
|
---|
| 156 | INVALID_LIST_FORMAT = 153,
|
---|
| 157 | LABEL_TOO_LONG = 154,
|
---|
| 158 | TOO_MANY_TCBS = 155,
|
---|
| 159 | SIGNAL_REFUSED = 156,
|
---|
| 160 | DISCARDED = 157,
|
---|
| 161 | NOT_LOCKED = 158,
|
---|
| 162 | BAD_THREADID_ADDR = 159,
|
---|
| 163 | BAD_ARGUMENTS = 160,
|
---|
| 164 | BAD_PATHNAME = 161,
|
---|
| 165 | SIGNAL_PENDING = 162,
|
---|
| 166 | UNCERTAIN_MEDIA = 163,
|
---|
| 167 | MAX_THRDS_REACHED = 164,
|
---|
| 168 | MONITORS_NOT_SUPPORTED = 165,
|
---|
| 169 | UNC_DRIVER_NOT_INSTALLED= 166,
|
---|
| 170 | LOCK_FAILED = 167,
|
---|
| 171 | SWAPIO_FAILED = 168,
|
---|
| 172 | SWAPIN_FAILED = 169,
|
---|
| 173 | BUSY = 170,
|
---|
| 174 | INT_TOO_LONG = 171,
|
---|
| 175 | CANCEL_VIOLATION = 173,
|
---|
| 176 | ATOMIC_LOCK_NOT_SUPPORTED= 174,
|
---|
| 177 | READ_LOCKS_NOT_SUPPORTED= 175,
|
---|
| 178 | INVALID_SEGMENT_NUMBER = 180,
|
---|
| 179 | INVALID_CALLGATE = 181,
|
---|
| 180 | INVALID_ORDINAL = 182,
|
---|
| 181 | ALREADY_EXISTS = 183,
|
---|
| 182 | NO_CHILD_PROCESS = 184,
|
---|
| 183 | CHILD_ALIVE_NOWAIT = 185,
|
---|
| 184 | INVALID_FLAG_NUMBER = 186,
|
---|
| 185 | SEM_NOT_FOUND = 187,
|
---|
| 186 | INVALID_STARTING_CODESEG= 188,
|
---|
| 187 | INVALID_STACKSEG = 189,
|
---|
| 188 | INVALID_MODULETYPE = 190,
|
---|
| 189 | INVALID_EXE_SIGNATURE = 191,
|
---|
| 190 | EXE_MARKED_INVALID = 192,
|
---|
| 191 | BAD_EXE_FORMAT = 193,
|
---|
| 192 | ITERATED_DATA_EXCEEDS_64k= 194,
|
---|
| 193 | INVALID_MINALLOCSIZE = 195,
|
---|
| 194 | DYNLINK_FROM_INVALID_RING= 196,
|
---|
| 195 | IOPL_NOT_ENABLED = 197,
|
---|
| 196 | INVALID_SEGDPL = 198,
|
---|
| 197 | AUTODATASEG_EXCEEDS_64k = 199,
|
---|
| 198 | RING2SEG_MUST_BE_MOVABLE= 200,
|
---|
| 199 | RELOC_CHAIN_XEEDS_SEGLIM= 201,
|
---|
| 200 | INFLOOP_IN_RELOC_CHAIN = 202,
|
---|
| 201 | ENVVAR_NOT_FOUND = 203,
|
---|
| 202 | NOT_CURRENT_CTRY = 204,
|
---|
| 203 | NO_SIGNAL_SENT = 205,
|
---|
| 204 | FILENAME_EXCED_RANGE = 206,
|
---|
| 205 | RING2_STACK_IN_USE = 207,
|
---|
| 206 | META_EXPANSION_TOO_LONG = 208,
|
---|
| 207 | INVALID_SIGNAL_NUMBER = 209,
|
---|
| 208 | THREAD_1_INACTIVE = 210,
|
---|
| 209 | INFO_NOT_AVAIL = 211,
|
---|
| 210 | LOCKED = 212,
|
---|
| 211 | BAD_DYNALINK = 213,
|
---|
| 212 | TOO_MANY_MODULES = 214,
|
---|
| 213 | NESTING_NOT_ALLOWED = 215,
|
---|
| 214 | CANNOT_SHRINK = 216,
|
---|
| 215 | ZOMBIE_PROCESS = 217,
|
---|
| 216 | STACK_IN_HIGH_MEMORY = 218,
|
---|
| 217 | INVALID_EXITROUTINE_RING= 219,
|
---|
| 218 | GETBUF_FAILED = 220,
|
---|
| 219 | FLUSHBUF_FAILED = 221,
|
---|
| 220 | TRANSFER_TOO_LONG = 222,
|
---|
| 221 | FORCENOSWAP_FAILED = 223,
|
---|
| 222 | SMG_NO_TARGET_WINDOW = 224,
|
---|
| 223 | NO_CHILDREN = 228,
|
---|
| 224 | INVALID_SCREEN_GROUP = 229,
|
---|
| 225 | BAD_PIPE = 230,
|
---|
| 226 | PIPE_BUSY = 231,
|
---|
| 227 | NO_DATA = 232,
|
---|
| 228 | PIPE_NOT_CONNECTED = 233,
|
---|
| 229 | MORE_DATA = 234,
|
---|
| 230 | VC_DISCONNECTED = 240,
|
---|
| 231 | CIRCULARITY_REQUESTED = 250,
|
---|
| 232 | DIRECTORY_IN_CDS = 251,
|
---|
| 233 | INVALID_FSD_NAME = 252,
|
---|
| 234 | INVALID_PATH = 253,
|
---|
| 235 | INVALID_EA_NAME = 254,
|
---|
| 236 | EA_LIST_INCONSISTENT = 255,
|
---|
| 237 | EA_LIST_TOO_LONG = 256,
|
---|
| 238 | NO_META_MATCH = 257,
|
---|
| 239 | FINDNOTIFY_TIMEOUT = 258,
|
---|
| 240 | NO_MORE_ITEMS = 259,
|
---|
| 241 | SEARCH_STRUC_REUSED = 260,
|
---|
| 242 | CHAR_NOT_FOUND = 261,
|
---|
| 243 | TOO_MUCH_STACK = 262,
|
---|
| 244 | INVALID_ATTR = 263,
|
---|
| 245 | INVALID_STARTING_RING = 264,
|
---|
| 246 | INVALID_DLL_INIT_RING = 265,
|
---|
| 247 | CANNOT_COPY = 266,
|
---|
| 248 | DIRECTORY = 267,
|
---|
| 249 | OPLOCKED_FILE = 268,
|
---|
| 250 | OPLOCK_THREAD_EXISTS = 269,
|
---|
| 251 | VOLUME_CHANGED = 270,
|
---|
| 252 | FINDNOTIFY_HANDLE_IN_USE= 271,
|
---|
| 253 | FINDNOTIFY_HANDLE_CLOSED= 272,
|
---|
| 254 | NOTIFY_OBJECT_REMOVED = 273,
|
---|
| 255 | ALREADY_SHUTDOWN = 274,
|
---|
| 256 | EAS_DIDNT_FIT = 275,
|
---|
| 257 | EA_FILE_CORRUPT = 276,
|
---|
| 258 | EA_TABLE_FULL = 277,
|
---|
| 259 | INVALID_EA_HANDLE = 278,
|
---|
| 260 | NO_CLUSTER = 279,
|
---|
| 261 | CREATE_EA_FILE = 280,
|
---|
| 262 | CANNOT_OPEN_EA_FILE = 281,
|
---|
| 263 | EAS_NOT_SUPPORTED = 282,
|
---|
| 264 | NEED_EAS_FOUND = 283,
|
---|
| 265 | DUPLICATE_HANDLE = 284,
|
---|
| 266 | DUPLICATE_NAME = 285,
|
---|
| 267 | EMPTY_MUXWAIT = 286,
|
---|
| 268 | MUTEX_OWNED = 287,
|
---|
| 269 | NOT_OWNER = 288,
|
---|
| 270 | PARAM_TOO_SMALL = 289,
|
---|
| 271 | TOO_MANY_HANDLES = 290,
|
---|
| 272 | TOO_MANY_OPENS = 291,
|
---|
| 273 | WRONG_TYPE = 292,
|
---|
| 274 | UNUSED_CODE = 293,
|
---|
| 275 | THREAD_NOT_TERMINATED = 294,
|
---|
| 276 | INIT_ROUTINE_FAILED = 295,
|
---|
| 277 | MODULE_IN_USE = 296,
|
---|
| 278 | NOT_ENOUGH_WATCHPOINTS = 297,
|
---|
| 279 | TOO_MANY_POSTS = 298,
|
---|
| 280 | ALREADY_POSTED = 299,
|
---|
| 281 | ALREADY_RESET = 300,
|
---|
| 282 | SEM_BUSY = 301,
|
---|
| 283 |
|
---|
| 284 |
|
---|
| 285 | /*
|
---|
| 286 | * Custom errors.
|
---|
| 287 | */
|
---|
| 288 | first_custom_error = 0x10000,
|
---|
| 289 | /* Generic */
|
---|
| 290 | INVALID_ADDRESS,
|
---|
| 291 | INVALID_OFFSET,
|
---|
| 292 | INVALID_SIGNATURE,
|
---|
| 293 | INCORRECT_VERSION,
|
---|
| 294 | INTERNAL_ERROR,
|
---|
| 295 | UNSUPPORTED_ENDIAN,
|
---|
| 296 | STRING_TO_LONG,
|
---|
| 297 | BAD_ALIGNMENT,
|
---|
| 298 | BAD_STRING_LENGTH,
|
---|
| 299 | BAD_STRUCTURE,
|
---|
| 300 |
|
---|
| 301 | /* .DEF-Files */
|
---|
| 302 | DEF_MULIPLE_MODULE_STATEMENT,
|
---|
| 303 | DEF_NO_MODULE_STATEMENT,
|
---|
| 304 | DEF_BAD_LIBRARY_STATEMENT,
|
---|
| 305 | DEF_BAD_IMPORT,
|
---|
| 306 | DEF_BAD_EXPORT,
|
---|
| 307 | DEF_UNKOWN_VERB,
|
---|
| 308 |
|
---|
| 309 | /* .SDF-Files */
|
---|
| 310 | SDF_TOO_MANY,
|
---|
| 311 |
|
---|
| 312 | /* .LX-Files */
|
---|
| 313 | INVALID_PAGE,
|
---|
| 314 | BAD_ITERPAGE,
|
---|
| 315 | BAD_COMPESSED_PAGE
|
---|
| 316 | };
|
---|
| 317 |
|
---|
| 318 |
|
---|
| 319 | public:
|
---|
| 320 | /**
|
---|
| 321 | * Constructor.
|
---|
| 322 | * @param iErrorNo Error number this object should represent.
|
---|
| 323 | * If not specified a NO_ERROR object is created.
|
---|
| 324 | */
|
---|
| 325 | kError(int iErrorNo = 0) : iErrorNo(iErrorNo) { }
|
---|
| 326 |
|
---|
| 327 | /**
|
---|
| 328 | * Constructor.
|
---|
| 329 | * @param iErrorNo Error number this object should represent.
|
---|
| 330 | * If not specified a NO_ERROR object is created.
|
---|
| 331 | */
|
---|
| 332 | kError(enum enmError enmErrorNo = kError::NO) : iErrorNo(enmErrorNo) { }
|
---|
| 333 |
|
---|
| 334 | /**
|
---|
| 335 | * Gets the message text for a given error number.
|
---|
| 336 | * @returns Message text. Caller must delete it.
|
---|
| 337 | */
|
---|
| 338 | static char *getText(int iErrorNo);
|
---|
| 339 |
|
---|
| 340 | /**
|
---|
| 341 | * Gets the message text for this error.
|
---|
| 342 | * @returns Message text. Caller must delete it.
|
---|
| 343 | */
|
---|
| 344 | char *getText(void) const
|
---|
| 345 | {
|
---|
| 346 | return kError::getText(iErrorNo);
|
---|
| 347 | }
|
---|
| 348 |
|
---|
| 349 | /**
|
---|
| 350 | * Gets the error number for this error.
|
---|
| 351 | * @returns The error number.
|
---|
| 352 | */
|
---|
| 353 | int getErrno(void) const
|
---|
| 354 | {
|
---|
| 355 | return iErrorNo;
|
---|
| 356 | }
|
---|
| 357 |
|
---|
| 358 |
|
---|
| 359 | KBOOL operator !=(int iErrorNo) const
|
---|
| 360 | {
|
---|
| 361 | return this->iErrorNo != iErrorNo;
|
---|
| 362 | }
|
---|
| 363 |
|
---|
| 364 | KBOOL operator ==(int iErrorNo) const
|
---|
| 365 | {
|
---|
| 366 | return this->iErrorNo == iErrorNo;
|
---|
| 367 | }
|
---|
| 368 |
|
---|
| 369 | KBOOL operator >(int iErrorNo) const
|
---|
| 370 | {
|
---|
| 371 | return this->iErrorNo > iErrorNo;
|
---|
| 372 | }
|
---|
| 373 |
|
---|
| 374 | KBOOL operator >=(int iErrorNo) const
|
---|
| 375 | {
|
---|
| 376 | return this->iErrorNo >= iErrorNo;
|
---|
| 377 | }
|
---|
| 378 |
|
---|
| 379 | KBOOL operator <(int iErrorNo) const
|
---|
| 380 | {
|
---|
| 381 | return this->iErrorNo < iErrorNo;
|
---|
| 382 | }
|
---|
| 383 |
|
---|
| 384 | KBOOL operator <=(int iErrorNo) const
|
---|
| 385 | {
|
---|
| 386 | return this->iErrorNo <= iErrorNo;
|
---|
| 387 | }
|
---|
| 388 |
|
---|
| 389 |
|
---|
| 390 | KBOOL operator !=(enum enmError enmErrorNo) const
|
---|
| 391 | {
|
---|
| 392 | return this->iErrorNo != enmErrorNo;
|
---|
| 393 | }
|
---|
| 394 |
|
---|
| 395 | KBOOL operator ==(enum enmError enmErrorNo) const
|
---|
| 396 | {
|
---|
| 397 | return this->iErrorNo == enmErrorNo;
|
---|
| 398 | }
|
---|
| 399 |
|
---|
| 400 | KBOOL operator >(enum enmError enmErrorNo) const
|
---|
| 401 | {
|
---|
| 402 | return this->iErrorNo > enmErrorNo;
|
---|
| 403 | }
|
---|
| 404 |
|
---|
| 405 | KBOOL operator >=(enum enmError enmErrorNo) const
|
---|
| 406 | {
|
---|
| 407 | return this->iErrorNo >= enmErrorNo;
|
---|
| 408 | }
|
---|
| 409 |
|
---|
| 410 | KBOOL operator <(enum enmError enmErrorNo) const
|
---|
| 411 | {
|
---|
| 412 | return this->iErrorNo < enmErrorNo;
|
---|
| 413 | }
|
---|
| 414 |
|
---|
| 415 | KBOOL operator <=(enum enmError enmErrorNo) const
|
---|
| 416 | {
|
---|
| 417 | return this->iErrorNo <= enmErrorNo;
|
---|
| 418 | }
|
---|
| 419 |
|
---|
| 420 |
|
---|
| 421 |
|
---|
| 422 | protected:
|
---|
| 423 | int iErrorNo;
|
---|
| 424 | };
|
---|
| 425 |
|
---|
| 426 |
|
---|
| 427 |
|
---|
| 428 |
|
---|
| 429 | #endif
|
---|
| 430 |
|
---|