Move thrift/protocol/tprotocol to thrift/protocol and thrift/protocol/tbinaryprotocol to thrift/protocol/binaryprotocol. Leave shim files behind for backwards compatibility


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@668914 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/lib/rb/lib/thrift/protocol.rb b/lib/rb/lib/thrift/protocol.rb
new file mode 100644
index 0000000..47fe723
--- /dev/null
+++ b/lib/rb/lib/thrift/protocol.rb
@@ -0,0 +1,223 @@
+#
+# Copyright (c) 2006- Facebook
+# Distributed under the Thrift Software License
+#
+# See accompanying file LICENSE or visit the Thrift site at:
+# http://developers.facebook.com/thrift/
+#
+# Author: Mark Slee <mcslee@facebook.com>
+#
+
+module Thrift
+  class ProtocolException < Exception
+
+    UNKNOWN = 0
+    INVALID_DATA = 1
+    NEGATIVE_SIZE = 2
+    SIZE_LIMIT = 3
+    BAD_VERSION = 4
+
+    attr_reader :type
+
+    def initialize(type=UNKNOWN, message=nil)
+      super(message)
+      @type = type
+    end
+
+  end
+  deprecate_class! :TProtocolException => ProtocolException
+
+  class Protocol
+
+    attr_reader :trans
+
+    def initialize(trans)
+      @trans = trans
+    end
+
+    def writeMessageBegin(name, type, seqid); nil; end
+
+    def writeMessageEnd; nil; end
+
+    def writeStructBegin(name); nil; end
+
+    def writeStructEnd(); nil; end
+
+    def writeFieldBegin(name, type, id); nil; end
+
+    def writeFieldEnd(); nil; end
+
+    def writeFieldStop(); nil; end
+
+    def writeMapBegin(ktype, vtype, size); nil; end
+
+    def writeMapEnd(); nil; end
+
+    def writeListBegin(etype, size); nil; end
+
+    def writeListEnd(); nil; end
+
+    def writeSetBegin(etype, size); nil; end
+
+    def writeSetEnd(); nil; end
+
+    def writeBool(bool); nil; end
+
+    def writeByte(byte); nil; end
+
+    def writeI16(i16); nil; end
+
+    def writeI32(i32); nil; end
+
+    def writeI64(i64); nil; end
+
+    def writeDouble(dub); nil; end
+
+    def writeString(str); nil; end
+
+    def readMessageBegin(); nil; end
+
+    def readMessageEnd(); nil; end
+
+    def readStructBegin(); nil; end
+
+    def readStructEnd(); nil; end
+
+    def readFieldBegin(); nil; end
+
+    def readFieldEnd(); nil; end
+
+    def readMapBegin(); nil; end
+
+    def readMapEnd(); nil; end
+
+    def readListBegin(); nil; end
+
+    def readListEnd(); nil; end
+
+    def readSetBegin(); nil; end
+
+    def readSetEnd(); nil; end
+
+    def readBool(); nil; end
+
+    def readByte(); nil; end
+
+    def readI16(); nil; end
+
+    def readI32(); nil; end
+
+    def readI64(); nil; end
+
+    def readDouble(); nil; end
+
+    def readString(); nil; end
+
+    def write_field(name, type, fid, value)
+      writeFieldBegin(name, type, fid)
+      write_type(type, value)
+      writeFieldEnd
+    end
+
+    def write_type(type, value)
+      case type
+      when Types::BOOL
+        writeBool(value)
+      when Types::BYTE
+        writeByte(value)
+      when Types::DOUBLE
+        writeDouble(value)
+      when Types::I16
+        writeI16(value)
+      when Types::I32
+        writeI32(value)
+      when Types::I64
+        writeI64(value)
+      when Types::STRING
+        writeString(value)
+      when Types::STRUCT
+        value.write(self)
+      else
+        raise NotImplementedError
+      end
+    end
+
+    def read_type(type)
+      case type
+      when Types::BOOL
+        readBool
+      when Types::BYTE
+        readByte
+      when Types::DOUBLE
+        readDouble
+      when Types::I16
+        readI16
+      when Types::I32
+        readI32
+      when Types::I64
+        readI64
+      when Types::STRING
+        readString
+      else
+        raise NotImplementedError
+      end
+    end
+
+    def skip(type)
+      if type === Types::STOP
+        nil
+      elsif type === Types::BOOL
+        readBool()
+      elsif type === Types::BYTE
+        readByte()
+      elsif type === Types::I16
+        readI16()
+      elsif type === Types::I32
+        readI32()
+      elsif type === Types::I64
+        readI64()
+      elsif type === Types::DOUBLE
+        readDouble()
+      elsif type === Types::STRING
+        readString()
+      elsif type === Types::STRUCT
+        readStructBegin()
+        while true
+          name, type, id = readFieldBegin()
+          if type === Types::STOP
+            break
+          else
+            skip(type)
+            readFieldEnd()
+          end
+          readStructEnd()
+        end
+      elsif type === Types::MAP
+        ktype, vtype, size = readMapBegin()
+        for i in 1..size
+          skip(ktype)
+          skip(vtype)
+        end
+        readMapEnd()
+      elsif type === Types::SET
+        etype, size = readSetBegin()
+        for i in 1..size
+          skip(etype)
+        end
+        readSetEnd()
+      elsif type === Types::LIST
+        etype, size = readListBegin()
+        for i in 1..size
+          skip(etype)
+        end
+        readListEnd()
+      end
+    end
+
+  end
+  deprecate_class! :TProtocol => Protocol
+end
+
+class TProtocolFactory
+  def getProtocol(trans); nil; end
+end
diff --git a/lib/rb/lib/thrift/protocol/binaryprotocol.rb b/lib/rb/lib/thrift/protocol/binaryprotocol.rb
new file mode 100644
index 0000000..9832383
--- /dev/null
+++ b/lib/rb/lib/thrift/protocol/binaryprotocol.rb
@@ -0,0 +1,191 @@
+#
+# Copyright (c) 2006- Facebook
+# Distributed under the Thrift Software License
+#
+# See accompanying file LICENSE or visit the Thrift site at:
+# http://developers.facebook.com/thrift/
+#
+# Author: Mark Slee <mcslee@facebook.com>
+#
+require 'thrift/protocol'
+
+module Thrift
+  class BinaryProtocol < Protocol
+    VERSION_MASK = 0xffff0000
+    VERSION_1 = 0x80010000
+
+    def initialize(trans)
+      super(trans)
+    end
+
+    def writeMessageBegin(name, type, seqid)
+      writeI32(VERSION_1 | type)
+      writeString(name)
+      writeI32(seqid)
+    end
+
+    def writeFieldBegin(name, type, id)
+      writeByte(type)
+      writeI16(id)
+    end
+
+    def writeFieldStop()
+      writeByte(Thrift::Types::STOP)
+    end
+
+    def writeMapBegin(ktype, vtype, size)
+      writeByte(ktype)
+      writeByte(vtype)
+      writeI32(size)
+    end
+
+    def writeListBegin(etype, size)
+      writeByte(etype)
+      writeI32(size)
+    end
+
+    def writeSetBegin(etype, size)
+      writeByte(etype)
+      writeI32(size)
+    end
+
+    def writeBool(bool)
+      if (bool)
+        writeByte(1)
+      else
+        writeByte(0)
+      end
+    end
+
+    def writeByte(byte)
+      trans.write([byte].pack('n')[1..1])
+    end
+
+    def writeI16(i16)
+      trans.write([i16].pack('n'))
+    end
+
+    def writeI32(i32)
+      trans.write([i32].pack('N'))
+    end
+
+    def writeI64(i64)
+      hi = i64 >> 32
+      lo = i64 & 0xffffffff
+      trans.write([hi, lo].pack('N2'))
+    end
+
+    def writeDouble(dub)
+      trans.write([dub].pack('G'))
+    end
+
+    def writeString(str)
+      writeI32(str.length)
+      trans.write(str)
+    end
+
+    def readMessageBegin()
+      version = readI32()
+      if (version & VERSION_MASK != VERSION_1)
+        raise ProtocolException.new(ProtocolException::BAD_VERSION, 'Missing version identifier')
+      end
+      type = version & 0x000000ff
+      name = readString()
+      seqid = readI32()
+      return name, type, seqid
+    end
+
+    def readFieldBegin()
+      type = readByte()
+      if (type === Types::STOP)
+        return nil, type, 0
+      end
+      id = readI16()
+      return nil, type, id
+    end
+
+    def readMapBegin()
+      ktype = readByte()
+      vtype = readByte()
+      size = readI32()
+      return ktype, vtype, size
+    end
+
+    def readListBegin()
+      etype = readByte()
+      size = readI32()
+      return etype, size
+    end
+
+    def readSetBegin()
+      etype = readByte()
+      size = readI32()
+      return etype, size
+    end
+
+    def readBool()
+      byte = readByte()
+      return byte != 0
+    end
+
+    def readByte()
+      dat = trans.readAll(1)
+      val = dat[0]
+      if (val > 0x7f)
+        val = 0 - ((val - 1) ^ 0xff)
+      end
+      return val
+    end
+
+    def readI16()
+      dat = trans.readAll(2)
+      val, = dat.unpack('n')
+      if (val > 0x7fff)
+        val = 0 - ((val - 1) ^ 0xffff)
+      end
+      return val
+    end
+
+    def readI32()
+      dat = trans.readAll(4)
+      val, = dat.unpack('N')
+      if (val > 0x7fffffff)
+        val = 0 - ((val - 1) ^ 0xffffffff)
+      end
+      return val
+    end
+
+    def readI64()
+      dat = trans.readAll(8)
+      hi, lo = dat.unpack('N2')
+      if (hi > 0x7fffffff)
+        hi = hi ^ 0xffffffff
+        lo = lo ^ 0xffffffff
+        return 0 - hi*4294967296 - lo - 1
+      else
+        return hi*4294967296 + lo
+      end
+    end
+
+    def readDouble()
+      dat = trans.readAll(8)
+      val, = dat.unpack('G')
+      return val
+    end
+
+    def readString()
+      sz = readI32()
+      dat = trans.readAll(sz)
+      return dat
+    end
+
+  end
+  deprecate_class! :TBinaryProtocol => BinaryProtocol
+end
+
+class TBinaryProtocolFactory < TProtocolFactory
+  def getProtocol(trans)
+    return TBinaryProtocol.new(trans)
+  end
+end
+
diff --git a/lib/rb/lib/thrift/protocol/tbinaryprotocol.rb b/lib/rb/lib/thrift/protocol/tbinaryprotocol.rb
index adfeb81..038e190 100644
--- a/lib/rb/lib/thrift/protocol/tbinaryprotocol.rb
+++ b/lib/rb/lib/thrift/protocol/tbinaryprotocol.rb
@@ -1,192 +1 @@
-#!/usr/bin/env ruby
-#
-# Copyright (c) 2006- Facebook
-# Distributed under the Thrift Software License
-#
-# See accompanying file LICENSE or visit the Thrift site at:
-# http://developers.facebook.com/thrift/
-#
-# Author: Mark Slee <mcslee@facebook.com>
-#
-require 'thrift/protocol/tprotocol'
-
-module Thrift
-  class BinaryProtocol < Protocol
-    VERSION_MASK = 0xffff0000
-    VERSION_1 = 0x80010000
-
-    def initialize(trans)
-      super(trans)
-    end
-
-    def writeMessageBegin(name, type, seqid)
-      writeI32(VERSION_1 | type)
-      writeString(name)
-      writeI32(seqid)
-    end
-
-    def writeFieldBegin(name, type, id)
-      writeByte(type)
-      writeI16(id)
-    end
-
-    def writeFieldStop()
-      writeByte(Thrift::Types::STOP)
-    end
-
-    def writeMapBegin(ktype, vtype, size)
-      writeByte(ktype)
-      writeByte(vtype)
-      writeI32(size)
-    end
-
-    def writeListBegin(etype, size)
-      writeByte(etype)
-      writeI32(size)
-    end
-
-    def writeSetBegin(etype, size)
-      writeByte(etype)
-      writeI32(size)
-    end
-
-    def writeBool(bool)
-      if (bool)
-        writeByte(1)
-      else
-        writeByte(0)
-      end
-    end
-
-    def writeByte(byte)
-      trans.write([byte].pack('n')[1..1])
-    end
-
-    def writeI16(i16)
-      trans.write([i16].pack('n'))
-    end
-
-    def writeI32(i32)
-      trans.write([i32].pack('N'))
-    end
-
-    def writeI64(i64)
-      hi = i64 >> 32
-      lo = i64 & 0xffffffff
-      trans.write([hi, lo].pack('N2'))
-    end
-
-    def writeDouble(dub)
-      trans.write([dub].pack('G'))
-    end
-
-    def writeString(str)
-      writeI32(str.length)
-      trans.write(str)
-    end
-
-    def readMessageBegin()
-      version = readI32()
-      if (version & VERSION_MASK != VERSION_1)
-        raise ProtocolException.new(ProtocolException::BAD_VERSION, 'Missing version identifier')
-      end
-      type = version & 0x000000ff
-      name = readString()
-      seqid = readI32()
-      return name, type, seqid
-    end
-
-    def readFieldBegin()
-      type = readByte()
-      if (type === Types::STOP)
-        return nil, type, 0
-      end
-      id = readI16()
-      return nil, type, id
-    end
-
-    def readMapBegin()
-      ktype = readByte()
-      vtype = readByte()
-      size = readI32()
-      return ktype, vtype, size
-    end
-
-    def readListBegin()
-      etype = readByte()
-      size = readI32()
-      return etype, size
-    end
-
-    def readSetBegin()
-      etype = readByte()
-      size = readI32()
-      return etype, size
-    end
-
-    def readBool()
-      byte = readByte()
-      return byte != 0
-    end
-
-    def readByte()
-      dat = trans.readAll(1)
-      val = dat[0]
-      if (val > 0x7f)
-        val = 0 - ((val - 1) ^ 0xff)
-      end
-      return val
-    end
-
-    def readI16()
-      dat = trans.readAll(2)
-      val, = dat.unpack('n')
-      if (val > 0x7fff)
-        val = 0 - ((val - 1) ^ 0xffff)
-      end
-      return val
-    end
-
-    def readI32()
-      dat = trans.readAll(4)
-      val, = dat.unpack('N')
-      if (val > 0x7fffffff)
-        val = 0 - ((val - 1) ^ 0xffffffff)
-      end
-      return val
-    end
-
-    def readI64()
-      dat = trans.readAll(8)
-      hi, lo = dat.unpack('N2')
-      if (hi > 0x7fffffff)
-        hi = hi ^ 0xffffffff
-        lo = lo ^ 0xffffffff
-        return 0 - hi*4294967296 - lo - 1
-      else
-        return hi*4294967296 + lo
-      end
-    end
-
-    def readDouble()
-      dat = trans.readAll(8)
-      val, = dat.unpack('G')
-      return val
-    end
-
-    def readString()
-      sz = readI32()
-      dat = trans.readAll(sz)
-      return dat
-    end
-
-  end
-  deprecate_class! :TBinaryProtocol => BinaryProtocol
-end
-
-class TBinaryProtocolFactory < TProtocolFactory
-  def getProtocol(trans)
-    return TBinaryProtocol.new(trans)
-  end
-end
-
+require 'thrift/protocol/binaryprotocol'
diff --git a/lib/rb/lib/thrift/protocol/tprotocol.rb b/lib/rb/lib/thrift/protocol/tprotocol.rb
index 905b754..48bf261 100644
--- a/lib/rb/lib/thrift/protocol/tprotocol.rb
+++ b/lib/rb/lib/thrift/protocol/tprotocol.rb
@@ -1,224 +1 @@
-#!/usr/bin/env ruby
-#
-# Copyright (c) 2006- Facebook
-# Distributed under the Thrift Software License
-#
-# See accompanying file LICENSE or visit the Thrift site at:
-# http://developers.facebook.com/thrift/
-#
-# Author: Mark Slee <mcslee@facebook.com>
-#
-
-module Thrift
-  class ProtocolException < Exception
-
-    UNKNOWN = 0
-    INVALID_DATA = 1
-    NEGATIVE_SIZE = 2
-    SIZE_LIMIT = 3
-    BAD_VERSION = 4
-
-    attr_reader :type
-
-    def initialize(type=UNKNOWN, message=nil)
-      super(message)
-      @type = type
-    end
-
-  end
-  deprecate_class! :TProtocolException => ProtocolException
-
-  class Protocol
-
-    attr_reader :trans
-
-    def initialize(trans)
-      @trans = trans
-    end
-
-    def writeMessageBegin(name, type, seqid); nil; end
-
-    def writeMessageEnd; nil; end
-
-    def writeStructBegin(name); nil; end
-
-    def writeStructEnd(); nil; end
-
-    def writeFieldBegin(name, type, id); nil; end
-
-    def writeFieldEnd(); nil; end
-
-    def writeFieldStop(); nil; end
-
-    def writeMapBegin(ktype, vtype, size); nil; end
-
-    def writeMapEnd(); nil; end
-
-    def writeListBegin(etype, size); nil; end
-
-    def writeListEnd(); nil; end
-
-    def writeSetBegin(etype, size); nil; end
-
-    def writeSetEnd(); nil; end
-
-    def writeBool(bool); nil; end
-
-    def writeByte(byte); nil; end
-
-    def writeI16(i16); nil; end
-
-    def writeI32(i32); nil; end
-
-    def writeI64(i64); nil; end
-
-    def writeDouble(dub); nil; end
-
-    def writeString(str); nil; end
-
-    def readMessageBegin(); nil; end
-
-    def readMessageEnd(); nil; end
-
-    def readStructBegin(); nil; end
-
-    def readStructEnd(); nil; end
-
-    def readFieldBegin(); nil; end
-
-    def readFieldEnd(); nil; end
-
-    def readMapBegin(); nil; end
-
-    def readMapEnd(); nil; end
-
-    def readListBegin(); nil; end
-
-    def readListEnd(); nil; end
-
-    def readSetBegin(); nil; end
-
-    def readSetEnd(); nil; end
-
-    def readBool(); nil; end
-
-    def readByte(); nil; end
-
-    def readI16(); nil; end
-
-    def readI32(); nil; end
-
-    def readI64(); nil; end
-
-    def readDouble(); nil; end
-
-    def readString(); nil; end
-
-    def write_field(name, type, fid, value)
-      writeFieldBegin(name, type, fid)
-      write_type(type, value)
-      writeFieldEnd
-    end
-
-    def write_type(type, value)
-      case type
-      when Types::BOOL
-        writeBool(value)
-      when Types::BYTE
-        writeByte(value)
-      when Types::DOUBLE
-        writeDouble(value)
-      when Types::I16
-        writeI16(value)
-      when Types::I32
-        writeI32(value)
-      when Types::I64
-        writeI64(value)
-      when Types::STRING
-        writeString(value)
-      when Types::STRUCT
-        value.write(self)
-      else
-        raise NotImplementedError
-      end
-    end
-
-    def read_type(type)
-      case type
-      when Types::BOOL
-        readBool
-      when Types::BYTE
-        readByte
-      when Types::DOUBLE
-        readDouble
-      when Types::I16
-        readI16
-      when Types::I32
-        readI32
-      when Types::I64
-        readI64
-      when Types::STRING
-        readString
-      else
-        raise NotImplementedError
-      end
-    end
-
-    def skip(type)
-      if type === Types::STOP
-        nil
-      elsif type === Types::BOOL
-        readBool()
-      elsif type === Types::BYTE
-        readByte()
-      elsif type === Types::I16
-        readI16()
-      elsif type === Types::I32
-        readI32()
-      elsif type === Types::I64
-        readI64()
-      elsif type === Types::DOUBLE
-        readDouble()
-      elsif type === Types::STRING
-        readString()
-      elsif type === Types::STRUCT
-        readStructBegin()
-        while true
-          name, type, id = readFieldBegin()
-          if type === Types::STOP
-            break
-          else
-            skip(type)
-            readFieldEnd()
-          end
-          readStructEnd()
-        end
-      elsif type === Types::MAP
-        ktype, vtype, size = readMapBegin()
-        for i in 1..size
-          skip(ktype)
-          skip(vtype)
-        end
-        readMapEnd()
-      elsif type === Types::SET
-        etype, size = readSetBegin()
-        for i in 1..size
-          skip(etype)
-        end
-        readSetEnd()
-      elsif type === Types::LIST
-        etype, size = readListBegin()
-        for i in 1..size
-          skip(etype)
-        end
-        readListEnd()
-      end
-    end
-
-  end
-  deprecate_class! :TProtocol => Protocol
-end
-
-class TProtocolFactory
-  def getProtocol(trans); nil; end
-end
+require 'thrift/protocol'
diff --git a/lib/rb/lib/thrift/thrift.rb b/lib/rb/lib/thrift/thrift.rb
index dfad650..a676160 100644
--- a/lib/rb/lib/thrift/thrift.rb
+++ b/lib/rb/lib/thrift/thrift.rb
@@ -1,8 +1,9 @@
 # This file kept for backwards compatability
 # require File.join(File.dirname(__FILE__), '../thrift')
-require File.join(File.dirname(__FILE__), 'deprecation')
-require File.join(File.dirname(__FILE__), 'types')
-require File.join(File.dirname(__FILE__), 'processor')
-require File.join(File.dirname(__FILE__), 'exceptions')
-require File.join(File.dirname(__FILE__), 'client')
-require File.join(File.dirname(__FILE__), 'struct')
+$:.unshift File.dirname(File.dirname(__FILE__))
+require 'thrift/deprecation'
+require 'thrift/types'
+require 'thrift/processor'
+require 'thrift/exceptions'
+require 'thrift/client'
+require 'thrift/struct'