diff options
| author | Kip Cole | 2012-10-04 07:34:41 +0800 |
|---|---|---|
| committer | Kip Cole | 2012-10-04 07:34:41 +0800 |
| commit | 4525becf2fd07058de87ed3c9e8aabe93bd7107d (patch) | |
| tree | ea2685dab5bbce06206640229af39690395818c6 /vendor/thrift/transport/base_transport.rb | |
| parent | d075e04fc0a5aec62ecba37581833f494affd6cd (diff) | |
| download | evernote-4525becf2fd07058de87ed3c9e8aabe93bd7107d.tar.bz2 | |
Notestore wrapper updated for oauth, add transforms from ruby method names to camel-case names in the thrift interface
Diffstat (limited to 'vendor/thrift/transport/base_transport.rb')
| -rw-r--r-- | vendor/thrift/transport/base_transport.rb | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/vendor/thrift/transport/base_transport.rb b/vendor/thrift/transport/base_transport.rb new file mode 100644 index 0000000..0a12cea --- /dev/null +++ b/vendor/thrift/transport/base_transport.rb @@ -0,0 +1,107 @@ +# encoding: ascii-8bit +# +# 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 TransportException < Exception + UNKNOWN = 0 + NOT_OPEN = 1 + ALREADY_OPEN = 2 + TIMED_OUT = 3 + END_OF_FILE = 4 + + attr_reader :type + + def initialize(type=UNKNOWN, message=nil) + super(message) + @type = type + end + end + + module TransportUtils + if RUBY_VERSION >= '1.9' + def self.get_string_byte(string, index) + string.getbyte(index) + end + + def self.set_string_byte(string, index, byte) + string.setbyte(index, byte) + end + else + def self.get_string_byte(string, index) + string[index] + end + + def self.set_string_byte(string, index, byte) + string[index] = byte + end + end + end + + class BaseTransport + def open?; end + + def open; end + + def close; end + + def read(sz) + raise NotImplementedError + end + + # Returns an unsigned byte as a Fixnum in the range (0..255). + def read_byte + buf = read_all(1) + return ::Thrift::TransportUtils.get_string_byte(buf, 0) + end + + # Reads size bytes and copies them into buffer[0..size]. + def read_into_buffer(buffer, size) + tmp = read_all(size) + i = 0 + tmp.each_byte do |byte| + ::Thrift::TransportUtils.set_string_byte(buffer, i, byte) + i += 1 + end + i + end + + def read_all(size) + return '' if size <= 0 + buf = read(size) + while (buf.length < size) + chunk = read(size - buf.length) + buf << chunk + end + + buf + end + + def write(buf); end + alias_method :<<, :write + + def flush; end + end + + class BaseTransportFactory + def get_transport(trans) + return trans + end + end +end
\ No newline at end of file |
