At 12:34 PM 12/13/2002, Kevin Lynch wrote:

>Iain K.Hanson wrote:
>>> We already have a standard
>>>portable
>>>error
>>> >scheme. Why reinvent the wheel? Will we do any better?
>>>
>>>We might. The POSIX errno scheme doesn't seem all that strong to me.
>>
>>
>> Agreed. I've given a fair ammount of though to this over the past year
>> ( whilst working on sockets). The conclusion I came to was that I would
>> rather have a standard C++ name on what ever platform I work on than
>> keep having to look them up on every platform.
>>
>
>I would hope that if the POSIX naming is not used, that at least the
>documentation would contain a clear mapping between the POSIX name and
>the C++ name.

Point taken. The mapping should be at least "implementation defined".

Below are the current mappings for Windows and POSIX. Anything else gets mapped to the general "system_error" value.

Comments appreciated. Thanks,

--Beman


# ifdef BOOST_WINDOWS
{ ERROR_ACCESS_DENIED, security_error },
{ ERROR_INVALID_ACCESS, security_error },
{ ERROR_SHARING_VIOLATION, security_error },
{ ERROR_LOCK_VIOLATION, security_error },
{ ERROR_LOCKED, security_error },
{ ERROR_NOACCESS, security_error },
{ ERROR_WRITE_PROTECT, read_only_error },
{ ERROR_NOT_READY, io_error },
{ ERROR_SEEK, io_error },
{ ERROR_READ_FAULT, io_error },
{ ERROR_WRITE_FAULT, io_error },
{ ERROR_CANTOPEN, io_error },
{ ERROR_CANTREAD, io_error },
{ ERROR_CANTWRITE, io_error },
{ ERROR_DIRECTORY, path_error },
{ ERROR_INVALID_NAME, path_error },
{ ERROR_FILE_NOT_FOUND, not_found_error },
{ ERROR_PATH_NOT_FOUND, not_found_error },
{ ERROR_DEV_NOT_EXIST, not_found_error },
{ ERROR_DEVICE_IN_USE, busy_error },
{ ERROR_OPEN_FILES, busy_error },
{ ERROR_BUSY_DRIVE, busy_error },
{ ERROR_BUSY, busy_error },
{ ERROR_FILE_EXISTS, already_exists_error },
{ ERROR_ALREADY_EXISTS, already_exists_error },
{ ERROR_DIR_NOT_EMPTY, not_empty_error },
{ ERROR_HANDLE_DISK_FULL, out_of_space_error },
{ ERROR_DISK_FULL, out_of_space_error },
{ ERROR_OUTOFMEMORY, out_of_memory_error },
{ ERROR_NOT_ENOUGH_MEMORY, out_of_memory_error },
{ ERROR_TOO_MANY_OPEN_FILES, out_of_resource_error }
# else
{ EACCES, security_error },
{ EROFS, read_only_error },
{ EIO, io_error },
{ ENAMETOOLONG, path_error },
{ ENOENT, not_found_error },
{ ENOTDIR, not_directory_error },
{ EAGAIN, busy_error },
{ EBUSY, busy_error },
{ ETXTBSY, busy_error },
{ EEXIST, already_exists_error },
{ ENOTEMPTY, not_empty_error },
{ EISDIR, is_directory_error },
{ ENOSPC, out_of_space_error },
{ ENOMEM, out_of_memory_error },
{ EMFILE, out_of_resource_error }
# endif


--Beman


_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to