diff options
Diffstat (limited to 'src/arrow/ruby/red-arrow-flight/lib')
8 files changed, 273 insertions, 0 deletions
diff --git a/src/arrow/ruby/red-arrow-flight/lib/arrow-flight.rb b/src/arrow/ruby/red-arrow-flight/lib/arrow-flight.rb new file mode 100644 index 000000000..2070f354a --- /dev/null +++ b/src/arrow/ruby/red-arrow-flight/lib/arrow-flight.rb @@ -0,0 +1,29 @@ +# 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. + +require "arrow" + +require "arrow-flight/version" + +require "arrow-flight/loader" + +module ArrowFlight + class Error < StandardError + end + + Loader.load +end diff --git a/src/arrow/ruby/red-arrow-flight/lib/arrow-flight/call-options.rb b/src/arrow/ruby/red-arrow-flight/lib/arrow-flight/call-options.rb new file mode 100644 index 000000000..2030b2d33 --- /dev/null +++ b/src/arrow/ruby/red-arrow-flight/lib/arrow-flight/call-options.rb @@ -0,0 +1,35 @@ +# 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 ArrowFlight + class CallOptions + class << self + def try_convert(value) + case value + when Hash + options = new + value.each do |name, value| + options.__send__("#{name}=", value) + end + options + else + nil + end + end + end + end +end diff --git a/src/arrow/ruby/red-arrow-flight/lib/arrow-flight/client-options.rb b/src/arrow/ruby/red-arrow-flight/lib/arrow-flight/client-options.rb new file mode 100644 index 000000000..2294b2133 --- /dev/null +++ b/src/arrow/ruby/red-arrow-flight/lib/arrow-flight/client-options.rb @@ -0,0 +1,35 @@ +# 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 ArrowFlight + class ClientOptions + class << self + def try_convert(value) + case value + when Hash + options = new + value.each do |name, value| + options.__send__("#{name}=", value) + end + options + else + nil + end + end + end + end +end diff --git a/src/arrow/ruby/red-arrow-flight/lib/arrow-flight/loader.rb b/src/arrow/ruby/red-arrow-flight/lib/arrow-flight/loader.rb new file mode 100644 index 000000000..2e8878d69 --- /dev/null +++ b/src/arrow/ruby/red-arrow-flight/lib/arrow-flight/loader.rb @@ -0,0 +1,44 @@ +# 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 ArrowFlight + class Loader < GObjectIntrospection::Loader + class << self + def load + super("ArrowFlight", ArrowFlight) + end + end + + private + def post_load(repository, namespace) + require_libraries + self.class.start_callback_dispatch_thread + end + + def require_libraries + require "arrow-flight/call-options" + require "arrow-flight/client-options" + require "arrow-flight/location" + require "arrow-flight/server-options" + require "arrow-flight/ticket" + end + + def should_unlock_gvl?(info, klass) + true + end + end +end diff --git a/src/arrow/ruby/red-arrow-flight/lib/arrow-flight/location.rb b/src/arrow/ruby/red-arrow-flight/lib/arrow-flight/location.rb new file mode 100644 index 000000000..d49178d04 --- /dev/null +++ b/src/arrow/ruby/red-arrow-flight/lib/arrow-flight/location.rb @@ -0,0 +1,31 @@ +# 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 ArrowFlight + class Location + class << self + def try_convert(value) + case value + when String + new(value) + else + nil + end + end + end + end +end diff --git a/src/arrow/ruby/red-arrow-flight/lib/arrow-flight/server-options.rb b/src/arrow/ruby/red-arrow-flight/lib/arrow-flight/server-options.rb new file mode 100644 index 000000000..f28aed87e --- /dev/null +++ b/src/arrow/ruby/red-arrow-flight/lib/arrow-flight/server-options.rb @@ -0,0 +1,41 @@ +# 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 ArrowFlight + class ServerOptions + class << self + def try_convert(value) + case value + when Location + new(value) + when Hash + return nil unless value.key?(:location) + options = new(value[:location]) + value.each do |name, value| + next if name == :location + options.__send__("#{name}=", value) + end + options + else + value = Location.try_convert(value) + return nil if value.nil? + try_convert(value) + end + end + end + end +end diff --git a/src/arrow/ruby/red-arrow-flight/lib/arrow-flight/ticket.rb b/src/arrow/ruby/red-arrow-flight/lib/arrow-flight/ticket.rb new file mode 100644 index 000000000..92afad386 --- /dev/null +++ b/src/arrow/ruby/red-arrow-flight/lib/arrow-flight/ticket.rb @@ -0,0 +1,32 @@ +# 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 ArrowFlight + class Ticket + class << self + # @api private + def try_convert(value) + case value + when String + new(value) + else + nil + end + end + end + end +end diff --git a/src/arrow/ruby/red-arrow-flight/lib/arrow-flight/version.rb b/src/arrow/ruby/red-arrow-flight/lib/arrow-flight/version.rb new file mode 100644 index 000000000..b4a252b15 --- /dev/null +++ b/src/arrow/ruby/red-arrow-flight/lib/arrow-flight/version.rb @@ -0,0 +1,26 @@ +# 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 ArrowFlight + VERSION = "6.0.1" + + module Version + numbers, TAG = VERSION.split("-") + MAJOR, MINOR, MICRO = numbers.split(".").collect(&:to_i) + STRING = VERSION + end +end |