// boost/system/windows_error.hpp ------------------------------------------// | |
// Copyright Beman Dawes 2007 | |
// Distributed under the Boost Software License, Version 1.0. (See accompanying | |
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | |
// See library home page at http://www.boost.org/libs/system | |
#ifndef BOOST_WINDOWS_ERROR_HPP | |
#define BOOST_WINDOWS_ERROR_HPP | |
// This header is effectively empty for compiles on operating systems where | |
// it is not applicable. | |
#include <boost/system/config.hpp> | |
#ifdef BOOST_WINDOWS_API | |
#include <boost/system/error_code.hpp> | |
#include <winerror.h> | |
namespace boost | |
{ | |
namespace system | |
{ | |
// Microsoft Windows ---------------------------------------------------// | |
// To construct an error_code after a API error: | |
// | |
// error_code( ::GetLastError(), system_category() ) | |
namespace windows_error | |
{ | |
enum windows_error_code | |
{ | |
success = 0, | |
// These names and values are based on Windows winerror.h | |
invalid_function = ERROR_INVALID_FUNCTION, | |
file_not_found = ERROR_FILE_NOT_FOUND, | |
path_not_found = ERROR_PATH_NOT_FOUND, | |
too_many_open_files = ERROR_TOO_MANY_OPEN_FILES, | |
access_denied = ERROR_ACCESS_DENIED, | |
invalid_handle = ERROR_INVALID_HANDLE, | |
arena_trashed = ERROR_ARENA_TRASHED, | |
not_enough_memory = ERROR_NOT_ENOUGH_MEMORY, | |
invalid_block = ERROR_INVALID_BLOCK, | |
bad_environment = ERROR_BAD_ENVIRONMENT, | |
bad_format = ERROR_BAD_FORMAT, | |
invalid_access = ERROR_INVALID_ACCESS, | |
outofmemory = ERROR_OUTOFMEMORY, | |
invalid_drive = ERROR_INVALID_DRIVE, | |
current_directory = ERROR_CURRENT_DIRECTORY, | |
not_same_device = ERROR_NOT_SAME_DEVICE, | |
no_more_files = ERROR_NO_MORE_FILES, | |
write_protect = ERROR_WRITE_PROTECT, | |
bad_unit = ERROR_BAD_UNIT, | |
not_ready = ERROR_NOT_READY, | |
bad_command = ERROR_BAD_COMMAND, | |
crc = ERROR_CRC, | |
bad_length = ERROR_BAD_LENGTH, | |
seek = ERROR_SEEK, | |
not_dos_disk = ERROR_NOT_DOS_DISK, | |
sector_not_found = ERROR_SECTOR_NOT_FOUND, | |
out_of_paper = ERROR_OUT_OF_PAPER, | |
write_fault = ERROR_WRITE_FAULT, | |
read_fault = ERROR_READ_FAULT, | |
gen_failure = ERROR_GEN_FAILURE, | |
sharing_violation = ERROR_SHARING_VIOLATION, | |
lock_violation = ERROR_LOCK_VIOLATION, | |
wrong_disk = ERROR_WRONG_DISK, | |
sharing_buffer_exceeded = ERROR_SHARING_BUFFER_EXCEEDED, | |
handle_eof = ERROR_HANDLE_EOF, | |
handle_disk_full= ERROR_HANDLE_DISK_FULL, | |
rem_not_list = ERROR_REM_NOT_LIST, | |
dup_name = ERROR_DUP_NAME, | |
bad_net_path = ERROR_BAD_NETPATH, | |
network_busy = ERROR_NETWORK_BUSY, | |
// ... | |
file_exists = ERROR_FILE_EXISTS, | |
cannot_make = ERROR_CANNOT_MAKE, | |
// ... | |
broken_pipe = ERROR_BROKEN_PIPE, | |
open_failed = ERROR_OPEN_FAILED, | |
buffer_overflow = ERROR_BUFFER_OVERFLOW, | |
disk_full= ERROR_DISK_FULL, | |
// ... | |
lock_failed = ERROR_LOCK_FAILED, | |
busy = ERROR_BUSY, | |
cancel_violation = ERROR_CANCEL_VIOLATION, | |
already_exists = ERROR_ALREADY_EXISTS | |
// ... | |
// TODO: add more Windows errors | |
}; | |
} // namespace windows | |
# ifndef BOOST_SYSTEM_NO_DEPRECATED | |
namespace windows = windows_error; | |
# endif | |
template<> struct is_error_code_enum<windows_error::windows_error_code> | |
{ static const bool value = true; }; | |
namespace windows_error | |
{ | |
inline error_code make_error_code( windows_error_code e ) | |
{ return error_code( e, system_category() ); } | |
} | |
} // namespace system | |
} // namespace boost | |
#endif // BOOST_WINDOWS_API | |
#endif // BOOST_WINDOWS_ERROR_HPP |