1module Groonga 2 class Context 3 class RC 4 @@codes = {} 5 @@names = {} 6 7 class << self 8 def find(name_or_code) 9 if name_or_code.is_a?(Symbol) 10 @@names[name_or_code] || UNKNOWN_ERROR 11 else 12 @@codes[name_or_code] || UNKNOWN_ERROR 13 end 14 end 15 16 def register(name, code, error_class) 17 rc = new(name, code, error_class) 18 @@codes[code] = rc 19 @@names[name] = rc 20 error_class.rc = rc if error_class 21 rc 22 end 23 end 24 25 attr_reader :name 26 attr_reader :error_class 27 def initialize(name, code, error_class) 28 @name = name 29 @code = code 30 @error_class = error_class 31 end 32 33 def to_i 34 @code 35 end 36 37 SUCCESS = 38 register(:success, 0, nil) 39 END_OF_DATA = 40 register(:end_of_data, 1, EndOfData) 41 UNKNOWN_ERROR = 42 register(:unknown_error, -1, UnknownError) 43 OPERATION_NOT_PERMITTED = 44 register(:operation_not_permitted, -2, OperationNotPermitted) 45 NO_SUCH_FILE_OR_DIRECTORY = 46 register(:no_such_file_or_directory, -3, NoSuchFileOrDirectory) 47 NO_SUCH_PROCESS = 48 register(:no_such_process, -4, NoSuchProcess) 49 INTERRUPTED_FUNCTION_CALL = 50 register(:interrupted_function_call, -5, InterruptedFunctionCall) 51 INPUT_OUTPUT_ERROR = 52 register(:input_output_error, -6, InputOutputError) 53 NO_SUCH_DEVICE_OR_ADDRESS = 54 register(:no_such_device_or_address, -7, NoSuchDeviceOrAddress) 55 ARG_LIST_TOO_LONG = 56 register(:arg_list_too_long, -8, ArgListTooLong) 57 EXEC_FORMAT_ERROR = 58 register(:exec_format_error, -9, ExecFormatError) 59 BAD_FILE_DESCRIPTOR = 60 register(:bad_file_descriptor, -10, BadFileDescriptor) 61 NO_CHILD_PROCESSES = 62 register(:no_child_processes, -11, NoChildProcesses) 63 RESOURCE_TEMPORARILY_UNAVAILABLE = 64 register(:resource_temporarily_unavailable, -12, 65 ResourceTemporarilyUnavailable) 66 NOT_ENOUGH_SPACE = 67 register(:not_enough_space, -13, NotEnoughSpace) 68 PERMISSION_DENIED = 69 register(:permission_denied, -14, PermissionDenied) 70 BAD_ADDRESS = 71 register(:bad_address, -15, BadAddress) 72 RESOURCE_BUSY = 73 register(:resource_busy, -16, ResourceBusy) 74 FILE_EXISTS = 75 register(:file_exists, -17, FileExists) 76 IMPROPER_LINK = 77 register(:improper_link, -18, ImproperLink) 78 NO_SUCH_DEVICE = 79 register(:no_such_device, -19, NoSuchDevice) 80 NOT_DIRECTORY = 81 register(:not_directory, -20, NotDirectory) 82 IS_DIRECTORY = 83 register(:is_directory, -21, IsDirectory) 84 INVALID_ARGUMENT = 85 register(:invalid_argument, -22, InvalidArgument) 86 TOO_MANY_OPEN_FILES_IN_SYSTEM = 87 register(:too_many_open_files_in_system, -23, TooManyOpenFilesInSystem) 88 TOO_MANY_OPEN_FILES = 89 register(:too_many_open_files, -24, TooManyOpenFiles) 90 INAPPROPRIATE_IO_CONTROL_OPERATION = 91 register(:inappropriate_io_control_operation, -25, 92 InappropriateIOControlOperation) 93 FILE_TOO_LARGE = 94 register(:file_too_large, -26, FileTooLarge) 95 NO_SPACE_LEFT_ON_DEVICE = 96 register(:no_space_left_on_device, -27, NoSpaceLeftOnDevice) 97 INVALID_SEEK = 98 register(:invalid_seek, -28, InvalidSeek) 99 READ_ONLY_FILE_SYSTEM = 100 register(:read_only_file_system, -29, ReadOnlyFileSystem) 101 TOO_MANY_LINKS = 102 register(:too_many_links, -30, TooManyLinks) 103 BROKEN_PIPE = 104 register(:broken_pipe, -31, BrokenPipe) 105 DOMAIN_ERROR = 106 register(:domain_error, -32, DomainError) 107 RESULT_TOO_LARGE = 108 register(:result_too_large, -33, ResultTooLarge) 109 RESOURCE_DEADLOCK_AVOIDED = 110 register(:resource_deadlock_avoided, -34, ResourceDeadlockAvoided) 111 NO_MEMORY_AVAILABLE = 112 register(:no_memory_available, -35, NoMemoryAvailable) 113 FILENAME_TOO_LONG = 114 register(:filename_too_long, -36, FilenameTooLong) 115 NO_LOCKS_AVAILABLE = 116 register(:no_locks_available, -37, NoLocksAvailable) 117 FUNCTION_NOT_IMPLEMENTED = 118 register(:function_not_implemented, -38, FunctionNotImplemented) 119 DIRECTORY_NOT_EMPTY = 120 register(:directory_not_empty, -39, DirectoryNotEmpty) 121 ILLEGAL_BYTE_SEQUENCE = 122 register(:illegal_byte_sequence, -40, IllegalByteSequence) 123 SOCKET_NOT_INITIALIZED = 124 register(:socket_not_initialized, -41, SocketNotInitialized) 125 OPERATION_WOULD_BLOCK = 126 register(:operation_would_block, -42, OperationWouldBlock) 127 ADDRESS_IS_NOT_AVAILABLE = 128 register(:address_is_not_available, -43, AddressIsNotAvailable) 129 NETWORK_IS_DOWN = 130 register(:network_is_down, -44, NetworkIsDown) 131 NO_BUFFER = 132 register(:no_buffer, -45, NoBuffer) 133 SOCKET_IS_ALREADY_CONNECTED = 134 register(:socket_is_already_connected, -46, SocketIsAlreadyConnected) 135 SOCKET_IS_NOT_CONNECTED = 136 register(:socket_is_not_connected, -47, SocketIsNotConnected) 137 SOCKET_IS_ALREADY_SHUTDOWNED = 138 register(:socket_is_already_shutdowned, -48, SocketIsAlreadyShutdowned) 139 OPERATION_TIMEOUT = 140 register(:operation_timeout, -49, OperationTimeout) 141 CONNECTION_REFUSED = 142 register(:connection_refused, -50, ConnectionRefused) 143 RANGE_ERROR = 144 register(:range_error, -51, RangeError) 145 TOKENIZER_ERROR = 146 register(:tokenizer_error, -52, TokenizerError) 147 FILE_CORRUPT = 148 register(:file_corrupt, -53, FileCorrupt) 149 INVALID_FORMAT = 150 register(:invalid_format, -54, InvalidFormat) 151 OBJECT_CORRUPT = 152 register(:object_corrupt, -55, ObjectCorrupt) 153 TOO_MANY_SYMBOLIC_LINKS = 154 register(:too_many_symbolic_links, -56, TooManySymbolicLinks) 155 NOT_SOCKET = 156 register(:not_socket, -57, NotSocket) 157 OPERATION_NOT_SUPPORTED = 158 register(:operation_not_supported, -58, OperationNotSupported) 159 ADDRESS_IS_IN_USE = 160 register(:address_is_in_use, -59, AddressIsInUse) 161 ZLIB_ERROR = 162 register(:zlib_error, -60, ZlibError) 163 LZ4_ERROR = 164 register(:lz4_error, -61, LZ4Error) 165 STACK_OVER_FLOW = 166 register(:stack_over_flow, -62, StackOverFlow) 167 SYNTAX_ERROR = 168 register(:syntax_error, -63, SyntaxError) 169 RETRY_MAX = 170 register(:retry_max, -64, RetryMax) 171 INCOMPATIBLE_FILE_FORMAT = 172 register(:incompatible_file_format, -65, IncompatibleFileFormat) 173 UPDATE_NOT_ALLOWED = 174 register(:update_not_allowed, -66, UpdateNotAllowed) 175 TOO_SMALL_OFFSET = 176 register(:too_small_offset, -67, TooSmallOffset) 177 TOO_LARGE_OFFSET = 178 register(:too_large_offset, -68, TooLargeOffset) 179 TOO_SMALL_LIMIT = 180 register(:too_small_limit, -69, TooSmallLimit) 181 CAS_ERROR = 182 register(:cas_error, -70, CASError) 183 UNSUPPORTED_COMMAND_VERSION = 184 register(:unsupported_command_version, -71, UnsupportedCommandVersion) 185 NORMALIZER_ERROR = 186 register(:normalizer_error, -72, NormalizerError) 187 TOKEN_FILTER_ERROR = 188 register(:token_filter_error, -73, TokenFilterError) 189 COMMAND_ERROR = 190 register(:command_error, -74, CommandError) 191 PLUGIN_ERROR = 192 register(:plugin_error, -75, PluginError) 193 SCORER_ERROR = 194 register(:scorer_error, -76, ScorerError) 195 CANCEL = 196 register(:cancel, -77, Cancel) 197 WINDOW_FUNCTION_ERROR = 198 register(:window_function_error, -78, WindowFunctionError) 199 ZSTD_ERROR = 200 register(:zstd_error, -79, ZstdError) 201 202 GroongaError.rc = UNKNOWN_ERROR 203 end 204 end 205end 206