Commit Graph

94 Commits

Author SHA1 Message Date
Kevin Clark
5ad6d4a7e3 rb: Add pretty inspect, optional field hint for Thrift::Struct
Author: Bryan Duxbury


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@689193 13f79535-47bb-0310-9956-ffa450edef68
2008-08-26 20:02:07 +00:00
Kevin Clark
969c04b912 rb: Add FramedTransport#borrow/consume! [THRIFT-117]
This addition makes FramedTransport BinaryProtocolAccelerated ready.

Author: Bryan Duxbury


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@688901 13f79535-47bb-0310-9956-ffa450edef68
2008-08-25 22:16:45 +00:00
Kevin Clark
38a2ce635d rb: Speed up Struct#initialize for optional fields [THRFIT-112]
Struct#initialize previously walked over every field and checked for
default values before assigning nil. The new approach assigns defaults
only to fields that have defaults, and lets Ruby handle nil ivars.

Author: Bryan Duxbury


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@688891 13f79535-47bb-0310-9956-ffa450edef68
2008-08-25 21:34:19 +00:00
Kevin Clark
14fe791ef3 Merge branch 'THRIFT-103'
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@682458 13f79535-47bb-0310-9956-ffa450edef68
2008-08-04 18:46:19 +00:00
Kevin Clark
a2693c135e rb: Check container elements when Thrift.type_checking = true [THRIFT-104]
Author: Kevin Ballard <kevin@rapleaf.com>


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@681863 13f79535-47bb-0310-9956-ffa450edef68
2008-08-01 22:04:09 +00:00
Kevin Clark
3af9287a74 rb: Support raise Xception, message for Structs that inherit from ::Exception [THRIFT-58]
Author: Kevin Ballard <kevin@rapleaf.com>


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@680542 13f79535-47bb-0310-9956-ffa450edef68
2008-07-28 22:20:36 +00:00
Kevin Clark
c8190174dc rb: Add ext/ to loadpath so BinaryProtocolAccelerated specs pass
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@680539 13f79535-47bb-0310-9956-ffa450edef68
2008-07-28 22:16:34 +00:00
Kevin Clark
5ebb23b3e1 rb: Ensure the transport is closed if an exception is raised serializing data in Client.send_message [THRIFT-75]
Author: Kevin Ballard <kevin@rapleaf.com>


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@680538 13f79535-47bb-0310-9956-ffa450edef68
2008-07-28 22:16:28 +00:00
David Reiss
0c7d38cf83 rb: Teach BinaryProtocolAccelerated to encode strings with NULs [THRIFT-97]
This patch adds a spec and fixes the behavior to properly treat strings as binary
blobs of data instead of as C strings when writing to the transport.


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@679899 13f79535-47bb-0310-9956-ffa450edef68
2008-07-25 21:06:06 +00:00
David Reiss
72754e198f rb: Spec out Thrift::BinaryProtocolAccelerated [THRIFT-90]
Convert most of the BinaryProtocol spec into shared examples and
add specific specs for encode_binary/decode_binary.


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@679898 13f79535-47bb-0310-9956-ffa450edef68
2008-07-25 21:06:03 +00:00
Kevin Clark
f4e700883b rb: Improve IOStreamTransport to behave more like a real transport [THRIFT-76]
Author: Kevin Ballard <kevin@rapleaf.com>


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@678065 13f79535-47bb-0310-9956-ffa450edef68
2008-07-18 22:27:03 +00:00
Kevin Clark
b586339453 rb: Display field name in type-checking error [THRIFT-78]
Author: Kevin Ballard <kevin@rapleaf.com>


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@678059 13f79535-47bb-0310-9956-ffa450edef68
2008-07-18 22:03:48 +00:00
Kevin Clark
8d1918be78 rb: Add TProtocolException to the backwards_compatibility_spec [THRIFT-88]
Author: Kevin Ballard <kevin@rapleaf.com>


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@678055 13f79535-47bb-0310-9956-ffa450edef68
2008-07-18 21:57:07 +00:00
Kevin Clark
5ae0bab247 rb: Add optional timeout argument to Thrift::Socket [THRIFT-74]
Socket.new and UNIXSocket.new both now have a new optional argument: timeout.
There's also a timeout field accessor. This timeout is used when reading or
writing.

Author: Kevin Ballard <kevin@rapleaf.com>


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@678053 13f79535-47bb-0310-9956-ffa450edef68
2008-07-18 21:49:50 +00:00
Kevin Clark
615da24995 rb: Check Thrift.type_checking earlier for a performance boost [THRIFT-55]
Author: Kevin Ballard <kevin@rapleaf.com>


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@675053 13f79535-47bb-0310-9956-ffa450edef68
2008-07-08 23:30:13 +00:00
Kevin Clark
bf2ff249b9 rb: Buffer the slice!s in MemoryBuffer for a significant performance increase [THRIFT-63]
Author: Kevin Ballard <kevin@rapleaf.com>

Currently it buffers up to 4kB before throwing away the data.
Tests with 1MB shows the exact same performance characteristics.


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@675049 13f79535-47bb-0310-9956-ffa450edef68
2008-07-08 23:20:15 +00:00
Kevin Clark
4bd8916b12 Merge branch 'fastbinary'
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@674688 13f79535-47bb-0310-9956-ffa450edef68
2008-07-08 00:47:49 +00:00
Kevin Clark
28744ab833 rb: Ensure the specs that expect deprecation warnings actually get them [THRIFT-56]
Author: Kevin Ballard <kevin@rapleaf.com>


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@671985 13f79535-47bb-0310-9956-ffa450edef68
2008-06-26 18:45:29 +00:00
Kevin Clark
f2e4d107af rb: The deprecation stuff should skip thrift library code when showing caller [THRIFT-56]
Author: Kevin Ballard <kevin@rapleaf.com>


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@671984 13f79535-47bb-0310-9956-ffa450edef68
2008-06-26 18:45:19 +00:00
Kevin Clark
5da153b36a rb: Add some additional error handling to Thrift::Socket [THRIFT-53]
Author: Kevin Ballard <kevin@rapleaf.com>


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@671979 13f79535-47bb-0310-9956-ffa450edef68
2008-06-26 18:35:15 +00:00
Kevin Clark
091fa95233 rb: BufferedTransport should flush on close [THRIFT-49]
This also adds code and spec so nothing will be written to the transport
if there's nothing in the write buffer.


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@671967 13f79535-47bb-0310-9956-ffa450edef68
2008-06-26 18:10:56 +00:00
Kevin Clark
2bd3a30b91 rb: Use File.dirname(__FILE__) in generated requires [THRIFT-57]
This means you no longer have to put the gen-rb folder in $:

Author: Kevin Ballard <kevin@rapleaf.com>


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@671963 13f79535-47bb-0310-9956-ffa450edef68
2008-06-26 17:49:49 +00:00
Kevin Clark
1ce8b3d7d5 rb: When passing unknown keys to Thrift::Struct.new, report those keys in the exception [THRIFT-51]
Author: kevin@rapleaf.com


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@670989 13f79535-47bb-0310-9956-ffa450edef68
2008-06-24 01:32:03 +00:00
Kevin Clark
cd72befc86 rb: Use defined? JRUBY_VERSION to detect JRuby [THRIFT-38]
From kevin@rapleaf.com


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@670980 13f79535-47bb-0310-9956-ffa450edef68
2008-06-24 01:05:55 +00:00
Kevin Clark
3836f9ba35 rb: require 'thrift' first in generated service definitions [THRIFT-38]
From kevin@rapleaf.com


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@670979 13f79535-47bb-0310-9956-ffa450edef68
2008-06-24 01:05:51 +00:00
Kevin Clark
a058d02eda rb: Bugfix for deprecation code [kevin@rapleaf.com][THRIFT-50]
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@670976 13f79535-47bb-0310-9956-ffa450edef68
2008-06-24 00:33:00 +00:00
Kevin Clark
f731b49b69 rb: Switch NonblockingServer spec from Queue to sleep
Using sleep instead of Queue#pop means the thread is killable under JRuby


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@669043 13f79535-47bb-0310-9956-ffa450edef68
2008-06-18 01:20:25 +00:00
Kevin Clark
f8ecb02ef4 rb: NonblockingServer: Use a select() loop in the acceptor thread
Using a select() loop with a timeout allows the acceptor thread to be shut down
cleanly under JRuby.


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@669042 13f79535-47bb-0310-9956-ffa450edef68
2008-06-18 01:20:22 +00:00
Kevin Clark
980e445347 rb: Make a few of the NonblockingServer specs pass under jruby
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@669036 13f79535-47bb-0310-9956-ffa450edef68
2008-06-18 01:19:59 +00:00
Kevin Clark
8c3e0932f2 rb: Fix up the deprecation spec for JRuby
JRuby has different behavior regarding #method_added and #included, so the deprecation spec has to handle this


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@669035 13f79535-47bb-0310-9956-ffa450edef68
2008-06-18 01:19:54 +00:00
Kevin Clark
830f46a382 rb: Fix the binaryprotocol spec to run under jruby
Stop testing for RangeErrors with bignums in i64, that was just an artifact of the MRI interpreter that has different behavior under jruby.
JRuby uses a different Float::MIN/MAX so stop hard-coding the binary representation


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@669034 13f79535-47bb-0310-9956-ffa450edef68
2008-06-18 01:19:51 +00:00
Kevin Clark
1aca9c4097 rb: Add spec to ensure UNIXServerSocket deletes the socket when closing
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@669023 13f79535-47bb-0310-9956-ffa450edef68
2008-06-18 01:18:57 +00:00
Kevin Clark
2ddd8ed40f rb: Implement Thrift::UNIXSocket and Thrift::UNIXServerSocket
In benchmarking it turns out these don't give any noticeable performance boost,
but as I've already written them, somebody may want them for something.


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@669019 13f79535-47bb-0310-9956-ffa450edef68
2008-06-18 01:18:35 +00:00
Kevin Clark
138c0e126f rb: Implement Thrift::Serializer and Thrift::Deserializer
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@669018 13f79535-47bb-0310-9956-ffa450edef68
2008-06-18 01:18:28 +00:00
Kevin Clark
c83d4451b7 rb: Add the path to gen-rb to $: in spec_helper instead of in multiple different specs
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@669017 13f79535-47bb-0310-9956-ffa450edef68
2008-06-18 01:18:21 +00:00
Kevin Clark
c3783f4cdb rb: Don't type-check when given a nil value.
Turn on type-checking for all specs


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@669016 13f79535-47bb-0310-9956-ffa450edef68
2008-06-18 01:18:14 +00:00
Kevin Clark
23193757bc rb: Implement type-checking in Thrift::Struct.new and field accessors
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@669015 13f79535-47bb-0310-9956-ffa450edef68
2008-06-18 01:18:07 +00:00
Kevin Clark
140b555bf4 rb: Fix struct_spec to use a proper description
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@669014 13f79535-47bb-0310-9956-ffa450edef68
2008-06-18 01:17:57 +00:00
Kevin Clark
2818b09c87 rb: Add helpers for optional type-checking
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@669013 13f79535-47bb-0310-9956-ffa450edef68
2008-06-18 01:17:51 +00:00
Kevin Clark
e45bf59417 rb: Completely rewrite Thrift::NonblockingServer
It now has a much better and cleaner architecture, a proper persistent thread pool,
a dedicated acceptor thread, and no concurrency issues


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@669012 13f79535-47bb-0310-9956-ffa450edef68
2008-06-18 01:17:44 +00:00
Kevin Clark
3c59aff0b9 rb: Add a hack to prevent fastthread from being loaded when executing specs
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@669011 13f79535-47bb-0310-9956-ffa450edef68
2008-06-18 01:17:37 +00:00
Kevin Clark
1067425ef7 rb: Enhance non-blocking read in Socket
Also prevent errors when trying to close a @handle twice


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@669010 13f79535-47bb-0310-9956-ffa450edef68
2008-06-18 01:17:30 +00:00
Kevin Clark
2e4f9d61dc rb: Enhance the backwards compatibility spec to ensure that the deprecated method names really do correspond to the new method names
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@669005 13f79535-47bb-0310-9956-ffa450edef68
2008-06-18 01:16:50 +00:00
Kevin Clark
4eea89737a rb: Stop calling rspec_clear in specs (which really should have been rspec_reset), as rspec_verify already resets
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@669004 13f79535-47bb-0310-9956-ffa450edef68
2008-06-18 01:16:42 +00:00
Kevin Clark
1535078231 rb: Add spec for shutting down NonblockingServer in response to a client message
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@669002 13f79535-47bb-0310-9956-ffa450edef68
2008-06-18 01:16:27 +00:00
Kevin Clark
6c4598bbc0 rb: Struct#new should properly initialize boolean values
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@669001 13f79535-47bb-0310-9956-ffa450edef68
2008-06-18 01:16:20 +00:00
Kevin Clark
1d4b2d87f7 rb: Thrift::Socket should return false from #open? if an error occurred during a read/write (THRIFT-7)
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@669000 13f79535-47bb-0310-9956-ffa450edef68
2008-06-18 01:16:11 +00:00
Kevin Clark
e0fdddea44 Implement NonblockingServer and add specs
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@668999 13f79535-47bb-0310-9956-ffa450edef68
2008-06-18 01:16:02 +00:00
Kevin Clark
90a2cbe0a4 Squelch warning about parens and standardize require for generated code
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@668998 13f79535-47bb-0310-9956-ffa450edef68
2008-06-18 01:15:53 +00:00
Kevin Clark
c67587006f Add optional host argument to ServerSocket
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@668997 13f79535-47bb-0310-9956-ffa450edef68
2008-06-18 01:15:45 +00:00