88 lines
2.3 KiB
Ruby
88 lines
2.3 KiB
Ruby
|
#
|
||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||
|
# or more contributor license agreements. See the NOTICE file
|
||
|
# distributed with this work for additional information
|
||
|
# regarding copyright ownership. The ASF licenses this file
|
||
|
# to you under the Apache License, Version 2.0 (the
|
||
|
# "License"); you may not use this file except in compliance
|
||
|
# with the License. You may obtain a copy of the License at
|
||
|
#
|
||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||
|
#
|
||
|
# Unless required by applicable law or agreed to in writing,
|
||
|
# software distributed under the License is distributed on an
|
||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||
|
# KIND, either express or implied. See the License for the
|
||
|
# specific language governing permissions and limitations
|
||
|
# under the License.
|
||
|
#
|
||
|
|
||
|
module Thrift
|
||
|
class Exception < StandardError
|
||
|
def initialize(message)
|
||
|
super
|
||
|
@message = message
|
||
|
end
|
||
|
|
||
|
attr_reader :message
|
||
|
end
|
||
|
|
||
|
class ApplicationException < Exception
|
||
|
|
||
|
UNKNOWN = 0
|
||
|
UNKNOWN_METHOD = 1
|
||
|
INVALID_MESSAGE_TYPE = 2
|
||
|
WRONG_METHOD_NAME = 3
|
||
|
BAD_SEQUENCE_ID = 4
|
||
|
MISSING_RESULT = 5
|
||
|
INTERNAL_ERROR = 6
|
||
|
PROTOCOL_ERROR = 7
|
||
|
INVALID_TRANSFORM = 8
|
||
|
INVALID_PROTOCOL = 9
|
||
|
UNSUPPORTED_CLIENT_TYPE = 10
|
||
|
|
||
|
attr_reader :type
|
||
|
|
||
|
def initialize(type=UNKNOWN, message=nil)
|
||
|
super(message)
|
||
|
@type = type
|
||
|
end
|
||
|
|
||
|
def read(iprot)
|
||
|
iprot.read_struct_begin
|
||
|
while true
|
||
|
fname, ftype, fid = iprot.read_field_begin
|
||
|
if ftype == Types::STOP
|
||
|
break
|
||
|
end
|
||
|
if fid == 1 and ftype == Types::STRING
|
||
|
@message = iprot.read_string
|
||
|
elsif fid == 2 and ftype == Types::I32
|
||
|
@type = iprot.read_i32
|
||
|
else
|
||
|
iprot.skip(ftype)
|
||
|
end
|
||
|
iprot.read_field_end
|
||
|
end
|
||
|
iprot.read_struct_end
|
||
|
end
|
||
|
|
||
|
def write(oprot)
|
||
|
oprot.write_struct_begin('Thrift::ApplicationException')
|
||
|
unless @message.nil?
|
||
|
oprot.write_field_begin('message', Types::STRING, 1)
|
||
|
oprot.write_string(@message)
|
||
|
oprot.write_field_end
|
||
|
end
|
||
|
unless @type.nil?
|
||
|
oprot.write_field_begin('type', Types::I32, 2)
|
||
|
oprot.write_i32(@type)
|
||
|
oprot.write_field_end
|
||
|
end
|
||
|
oprot.write_field_stop
|
||
|
oprot.write_struct_end
|
||
|
end
|
||
|
|
||
|
end
|
||
|
end
|