neo4j-ruby-driver 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/Gemfile +8 -0
- data/LICENSE.txt +21 -0
- data/README.md +68 -0
- data/Rakefile +16 -0
- data/ffi/bolt/address.rb +11 -0
- data/ffi/bolt/auth.rb +10 -0
- data/ffi/bolt/auto_releasable.rb +22 -0
- data/ffi/bolt/boolean.rb +9 -0
- data/ffi/bolt/bytes.rb +10 -0
- data/ffi/bolt/config.rb +10 -0
- data/ffi/bolt/connection.rb +44 -0
- data/ffi/bolt/connector.rb +17 -0
- data/ffi/bolt/dictionary.rb +15 -0
- data/ffi/bolt/error.rb +74 -0
- data/ffi/bolt/float.rb +9 -0
- data/ffi/bolt/integer.rb +9 -0
- data/ffi/bolt/library.rb +12 -0
- data/ffi/bolt/lifecycle.rb +9 -0
- data/ffi/bolt/list.rb +10 -0
- data/ffi/bolt/status.rb +15 -0
- data/ffi/bolt/string.rb +9 -0
- data/ffi/bolt/structure.rb +10 -0
- data/ffi/bolt/value.rb +35 -0
- data/ffi/bolt/values_private.rb +36 -0
- data/ffi/neo4j/driver.rb +45 -0
- data/ffi/neo4j/driver/access_mode.rb +10 -0
- data/ffi/neo4j/driver/auth_tokens.rb +17 -0
- data/ffi/neo4j/driver/config.rb +11 -0
- data/ffi/neo4j/driver/graph_database.rb +29 -0
- data/ffi/neo4j/driver/internal/async/access_mode_connection.rb +19 -0
- data/ffi/neo4j/driver/internal/async/direct_connection.rb +88 -0
- data/ffi/neo4j/driver/internal/bookmarks_holder.rb +30 -0
- data/ffi/neo4j/driver/internal/direct_connection_provider.rb +27 -0
- data/ffi/neo4j/driver/internal/driver_factory.rb +38 -0
- data/ffi/neo4j/driver/internal/error_handling.rb +50 -0
- data/ffi/neo4j/driver/internal/explicit_transaction.rb +144 -0
- data/ffi/neo4j/driver/internal/handlers/pull_all_response_handler.rb +101 -0
- data/ffi/neo4j/driver/internal/handlers/response_handler.rb +46 -0
- data/ffi/neo4j/driver/internal/handlers/run_response_handler.rb +32 -0
- data/ffi/neo4j/driver/internal/handlers/session_pull_all_response_handler.rb +32 -0
- data/ffi/neo4j/driver/internal/handlers/transaction_pull_all_response_handler.rb +23 -0
- data/ffi/neo4j/driver/internal/internal_driver.rb +41 -0
- data/ffi/neo4j/driver/internal/internal_record.rb +22 -0
- data/ffi/neo4j/driver/internal/internal_statement_result.rb +52 -0
- data/ffi/neo4j/driver/internal/messaging/bolt_protocol.rb +24 -0
- data/ffi/neo4j/driver/internal/messaging/v1/bolt_protocol_v1.rb +59 -0
- data/ffi/neo4j/driver/internal/messaging/v2/bolt_protocol_v2.rb +16 -0
- data/ffi/neo4j/driver/internal/messaging/v3/bolt_protocol_v3.rb +63 -0
- data/ffi/neo4j/driver/internal/network_session.rb +124 -0
- data/ffi/neo4j/driver/internal/session_factory_impl.rb +28 -0
- data/ffi/neo4j/driver/internal/summary/internal_result_summary.rb +67 -0
- data/ffi/neo4j/driver/internal/summary/internal_server_info.rb +19 -0
- data/ffi/neo4j/driver/internal/summary/internal_summary_counters.rb +23 -0
- data/ffi/neo4j/driver/internal/util/metadata_extractor.rb +15 -0
- data/ffi/neo4j/driver/internal/value/base_time_value.rb +22 -0
- data/ffi/neo4j/driver/internal/value/date_value.rb +25 -0
- data/ffi/neo4j/driver/internal/value/duration_value.rb +27 -0
- data/ffi/neo4j/driver/internal/value/local_date_time_value.rb +24 -0
- data/ffi/neo4j/driver/internal/value/local_time_value.rb +19 -0
- data/ffi/neo4j/driver/internal/value/node_value.rb +18 -0
- data/ffi/neo4j/driver/internal/value/offset_time_value.rb +25 -0
- data/ffi/neo4j/driver/internal/value/path_value.rb +41 -0
- data/ffi/neo4j/driver/internal/value/point2_d_value.rb +24 -0
- data/ffi/neo4j/driver/internal/value/point3_d_value.rb +24 -0
- data/ffi/neo4j/driver/internal/value/relationship_value.rb +18 -0
- data/ffi/neo4j/driver/internal/value/structure_value.rb +42 -0
- data/ffi/neo4j/driver/internal/value/time_with_zone_id_value.rb +25 -0
- data/ffi/neo4j/driver/internal/value/time_with_zone_offset_value.rb +28 -0
- data/ffi/neo4j/driver/internal/value/unbound_relationship_value.rb +18 -0
- data/ffi/neo4j/driver/internal/value/value_adapter.rb +95 -0
- data/ffi/neo4j/driver/statement.rb +14 -0
- data/ffi/neo4j/driver/summary/statement_type.rb +14 -0
- data/ffi/neo4j/driver/types/entity.rb +17 -0
- data/ffi/neo4j/driver/types/node.rb +16 -0
- data/ffi/neo4j/driver/types/path.rb +35 -0
- data/ffi/neo4j/driver/types/relationship.rb +19 -0
- data/lib/loader.rb +18 -0
- data/lib/neo4j/driver/auto_closable.rb +32 -0
- data/lib/neo4j/driver/exceptions/authentication_exception.rb +10 -0
- data/lib/neo4j/driver/exceptions/client_exception.rb +10 -0
- data/lib/neo4j/driver/exceptions/database_exception.rb +10 -0
- data/lib/neo4j/driver/exceptions/illegal_state_exception.rb +10 -0
- data/lib/neo4j/driver/exceptions/neo4j_exception.rb +18 -0
- data/lib/neo4j/driver/exceptions/no_such_record_exception.rb +33 -0
- data/lib/neo4j/driver/exceptions/protocol_exception.rb +10 -0
- data/lib/neo4j/driver/exceptions/security_exception.rb +10 -0
- data/lib/neo4j/driver/exceptions/service_unavailable_exception.rb +10 -0
- data/lib/neo4j/driver/exceptions/session_expired_exception.rb +10 -0
- data/lib/neo4j/driver/exceptions/transient_exception.rb +10 -0
- data/lib/neo4j/driver/exceptions/untrusted_server_exception.rb +10 -0
- data/lib/neo4j/driver/internal/duration_normalizer.rb +42 -0
- data/lib/neo4j/driver/internal/ruby_signature.rb +18 -0
- data/lib/neo4j/driver/types/byte_array.rb +17 -0
- data/lib/neo4j/driver/types/local_date_time.rb +20 -0
- data/lib/neo4j/driver/types/local_time.rb +19 -0
- data/lib/neo4j/driver/types/offset_time.rb +19 -0
- data/lib/neo4j/driver/types/point.rb +39 -0
- data/lib/neo4j/driver/types/time.rb +43 -0
- data/lib/neo4j/driver/version.rb +7 -0
- data/lib/neo4j_ruby_driver.rb +19 -0
- data/neo4j-ruby-driver.gemspec +63 -0
- metadata +274 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 20187e624cb8b3b41c311fa3212d0464f326fd382b463a77c1943087667de719
|
4
|
+
data.tar.gz: 14dd13179266b82ffdca7ca880580d533d7f703fc85693486d5368f5a2db76ed
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 601176c163751a2dfd9ccec38d6f266ba731533e142c138e7e77f5947dd4d27e4bc0c5ff63ec6db09070cf45fa5a590c1bed330dd8f4305a872577d40e804e46
|
7
|
+
data.tar.gz: 1ba727e6f43f9933eda745a48dc0d334f90b9544bf17db9b9729f0e3ee7fa4d2beea7650e61e04ba95c1aed48819f176924de599a79d28e7188e1579b045963c
|
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2018 Heinrich Klobuczek
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
13
|
+
all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,68 @@
|
|
1
|
+
# Neo4j::Driver
|
2
|
+
|
3
|
+
Proposal for an API for neo4j ruby driver. This gem contains reference implementation in jruby with most of the features
|
4
|
+
completed.
|
5
|
+
The proposed API is heavilly inspired but the java and javascipt driver. Please add comments and suggestions if you feel there
|
6
|
+
is better idiomatic alternative in ruby.
|
7
|
+
|
8
|
+
The file `doc/dev_manual_examples_spec.rb` contains all the code examples included in the
|
9
|
+
[Chapter 4. Drivers][https://neo4j.com/docs/developer-manual/3.4/drivers/] of the Developer Manual and should be
|
10
|
+
reviewed side by side with that manual.
|
11
|
+
|
12
|
+
## Installation
|
13
|
+
|
14
|
+
Add this line to your application's Gemfile:
|
15
|
+
|
16
|
+
```ruby
|
17
|
+
gem 'neo4j-ruby-driver'
|
18
|
+
```
|
19
|
+
|
20
|
+
And then execute:
|
21
|
+
|
22
|
+
$ bundle
|
23
|
+
|
24
|
+
Or install it yourself as:
|
25
|
+
|
26
|
+
$ gem install neo4j-ruby-driver
|
27
|
+
|
28
|
+
## Usage
|
29
|
+
|
30
|
+
Refer to https://neo4j.com/docs/developer-manual/3.4/drivers/.
|
31
|
+
|
32
|
+
## Development
|
33
|
+
|
34
|
+
After checking out the repo, run `bin/setup` to install dependencies.
|
35
|
+
In order to run test by running `rake spec` you may have to set your own `NEO4J_BOLT_URL` URI or it will
|
36
|
+
fallback to `bolt://localhost:7687`.
|
37
|
+
You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
38
|
+
|
39
|
+
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
40
|
+
|
41
|
+
This gem includes 2 different implementations: java driver based and another one using seabolt via ffi
|
42
|
+
|
43
|
+
For java driver based:
|
44
|
+
|
45
|
+
$ rvm use jruby-9.2.5.0
|
46
|
+
$ bundle
|
47
|
+
$ rspec
|
48
|
+
|
49
|
+
FFI based:
|
50
|
+
|
51
|
+
$ rvm use 2.5.3 # or jruby-9.2.5.0
|
52
|
+
$ SEABOLT_LIB=~/seabolt/build/dist/lib/libseabolt17.dylib bundle
|
53
|
+
$ SEABOLT_LIB=~/seabolt/build/dist/lib/libseabolt17.dylib rspec
|
54
|
+
|
55
|
+
Please note that seabolt for now has to be installed separately: https://github.com/neo4j-drivers/seabolt
|
56
|
+
|
57
|
+
## Contributing
|
58
|
+
|
59
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/neo4j-driver.
|
60
|
+
|
61
|
+
## License
|
62
|
+
|
63
|
+
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
64
|
+
|
65
|
+
|
66
|
+
[https://neo4j.com/docs/developer-manual/3.4/drivers/]: https://neo4j.com/docs/developer-manual/3.4/drivers/
|
67
|
+
|
68
|
+
[https://neo4j.com/docs/developer-manual/3.4/drivers/]: https://neo4j.com/docs/developer-manual/3.4/drivers/
|
data/Rakefile
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'bundler/gem_tasks'
|
4
|
+
require 'rspec/core/rake_task'
|
5
|
+
require 'neo4j/rake_tasks'
|
6
|
+
|
7
|
+
if RUBY_PLATFORM.match?(/java/) && ENV['SEABOLT_LIB']&.length&.positive?
|
8
|
+
require 'jars/installer'
|
9
|
+
task :install_jars do
|
10
|
+
Jars::Installer.vendor_jars!('jruby')
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
RSpec::Core::RakeTask.new(:spec)
|
15
|
+
|
16
|
+
task default: :spec
|
data/ffi/bolt/address.rb
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Bolt
|
4
|
+
module Address
|
5
|
+
extend Bolt::Library
|
6
|
+
attach_function :create, :BoltAddress_create, %i[string string], :auto_pointer
|
7
|
+
attach_function :destroy, :BoltAddress_destroy, [:pointer], :void
|
8
|
+
attach_function :host, :BoltAddress_host, [:pointer], :strptr
|
9
|
+
attach_function :port, :BoltAddress_port, [:pointer], :strptr
|
10
|
+
end
|
11
|
+
end
|
data/ffi/bolt/auth.rb
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Bolt
|
4
|
+
module Auth
|
5
|
+
extend Bolt::Library
|
6
|
+
attach_function :basic, :BoltAuth_basic, %i[string string string], :auto_pointer,
|
7
|
+
releaser: Bolt::Value.method(:destroy)
|
8
|
+
attach_function :none, :BoltAuth_none, [], :auto_pointer, releaser: Bolt::Value.method(:destroy)
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Bolt
|
4
|
+
module AutoReleasable
|
5
|
+
def attach_function(name, func, args, returns = nil, options = nil)
|
6
|
+
return super unless returns == :auto_pointer
|
7
|
+
|
8
|
+
super(name, func, args, :pointer, options)
|
9
|
+
singleton_class.prepend with_auto_releaser(name, options&.dig(:releaser))
|
10
|
+
end
|
11
|
+
|
12
|
+
private
|
13
|
+
|
14
|
+
def with_auto_releaser(method, releaser)
|
15
|
+
Module.new do
|
16
|
+
define_method(method) do |*args|
|
17
|
+
FFI::AutoPointer.new(super(*args), releaser || self.method(:destroy))
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/ffi/bolt/boolean.rb
ADDED
data/ffi/bolt/bytes.rb
ADDED
data/ffi/bolt/config.rb
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Bolt
|
4
|
+
module Config
|
5
|
+
extend Bolt::Library
|
6
|
+
attach_function :create, :BoltConfig_create, [], :auto_pointer
|
7
|
+
attach_function :destroy, :BoltConfig_destroy, [:pointer], :void
|
8
|
+
attach_function :set_user_agent, :BoltConfig_set_user_agent, %i[pointer string], :int32
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Bolt
|
4
|
+
module Connection
|
5
|
+
extend Bolt::Library
|
6
|
+
|
7
|
+
typedef :uint64, :bolt_request
|
8
|
+
|
9
|
+
attach_function :flush, :BoltConnection_send, [:pointer], :int32
|
10
|
+
attach_function :fetch, :BoltConnection_fetch, %i[pointer bolt_request], :int32
|
11
|
+
attach_function :fetch_summary, :BoltConnection_fetch_summary, %i[pointer bolt_request], :int32
|
12
|
+
attach_function :clear_begin, :BoltConnection_clear_begin, %i[pointer], :int32
|
13
|
+
attach_function :set_begin_bookmarks, :BoltConnection_set_begin_bookmarks, %i[pointer pointer], :int32
|
14
|
+
attach_function :set_begin_tx_timeout, :BoltConnection_set_begin_tx_timeout, %i[pointer int64], :int32
|
15
|
+
attach_function :set_begin_tx_metadata, :BoltConnection_set_begin_tx_metadata, %i[pointer pointer], :int32
|
16
|
+
attach_function :load_begin_request, :BoltConnection_load_begin_request, %i[pointer], :int32
|
17
|
+
attach_function :load_commit_request, :BoltConnection_load_commit_request, %i[pointer], :int32
|
18
|
+
attach_function :load_rollback_request, :BoltConnection_load_rollback_request, %i[pointer], :int32
|
19
|
+
attach_function :clear_run, :BoltConnection_clear_run, %i[pointer], :int32
|
20
|
+
attach_function :set_run_bookmarks, :BoltConnection_set_run_bookmarks, %i[pointer pointer], :int32
|
21
|
+
attach_function :set_run_tx_timeout, :BoltConnection_set_run_tx_timeout, %i[pointer int64], :int32
|
22
|
+
attach_function :set_run_tx_metadata, :BoltConnection_set_run_tx_metadata, %i[pointer pointer], :int32
|
23
|
+
attach_function :set_run_cypher, :BoltConnection_set_run_cypher, %i[pointer string uint64 int32], :int32
|
24
|
+
attach_function :set_run_cypher_parameter, :BoltConnection_set_run_cypher_parameter,
|
25
|
+
%i[pointer int32 string uint64], :pointer
|
26
|
+
attach_function :load_run_request, :BoltConnection_load_run_request, [:pointer], :int32
|
27
|
+
attach_function :load_discard_request, :BoltConnection_load_discard_request, %i[pointer int32], :int32
|
28
|
+
attach_function :load_pull_request, :BoltConnection_load_pull_request, %i[pointer int32], :int32
|
29
|
+
attach_function :load_reset_request, :BoltConnection_load_reset_request, [:pointer], :int32
|
30
|
+
attach_function :last_request, :BoltConnection_last_request, [:pointer], :bolt_request
|
31
|
+
attach_function :server, :BoltConnection_server, %i[pointer], :strptr
|
32
|
+
attach_function :id, :BoltConnection_id, %i[pointer], :strptr
|
33
|
+
attach_function :address, :BoltConnection_address, %i[pointer], :pointer
|
34
|
+
attach_function :remote_endpoint, :BoltConnection_remote_endpoint, %i[pointer], :pointer
|
35
|
+
attach_function :local_endpoint, :BoltConnection_local_endpoint, %i[pointer], :pointer
|
36
|
+
attach_function :last_bookmark, :BoltConnection_last_bookmark, %i[pointer], :strptr
|
37
|
+
attach_function :summary_success, :BoltConnection_summary_success, [:pointer], :int32
|
38
|
+
attach_function :failure, :BoltConnection_failure, [:pointer], :pointer
|
39
|
+
attach_function :field_names, :BoltConnection_field_names, [:pointer], :pointer
|
40
|
+
attach_function :field_values, :BoltConnection_field_values, [:pointer], :pointer
|
41
|
+
attach_function :metadata, :BoltConnection_metadata, %i[pointer], :pointer
|
42
|
+
attach_function :status, :BoltConnection_status, [:pointer], :pointer
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Bolt
|
4
|
+
module Connector
|
5
|
+
extend Bolt::Library
|
6
|
+
|
7
|
+
BoltAccessMode = enum(
|
8
|
+
:bolt_access_mode_write,
|
9
|
+
:bolt_access_mode_read
|
10
|
+
)
|
11
|
+
|
12
|
+
attach_function :create, :BoltConnector_create, %i[pointer pointer pointer], :pointer
|
13
|
+
attach_function :destroy, :BoltConnector_destroy, [:pointer], :void
|
14
|
+
attach_function :acquire, :BoltConnector_acquire, [:pointer, BoltAccessMode, :pointer], :pointer
|
15
|
+
attach_function :release, :BoltConnector_release, %i[pointer pointer], :void
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Bolt
|
4
|
+
module Dictionary
|
5
|
+
extend Bolt::Library
|
6
|
+
|
7
|
+
attach_function :key, :BoltDictionary_key, %i[pointer int32], :pointer
|
8
|
+
attach_function :get_key, :BoltDictionary_get_key, %i[pointer int32], :pointer
|
9
|
+
attach_function :get_key_size, :BoltDictionary_get_key_size, %i[pointer int32], :int32
|
10
|
+
attach_function :get_key_index, :BoltDictionary_get_key_index, %i[pointer string int32 int32], :int32
|
11
|
+
attach_function :set_key, :BoltDictionary_set_key, %i[pointer int32 string int32], :int32
|
12
|
+
attach_function :value, :BoltDictionary_value, %i[pointer int32], :pointer
|
13
|
+
attach_function :value_by_key, :BoltDictionary_value_by_key, %i[pointer string int32], :pointer
|
14
|
+
end
|
15
|
+
end
|
data/ffi/bolt/error.rb
ADDED
@@ -0,0 +1,74 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Bolt
|
4
|
+
module Error
|
5
|
+
extend Bolt::Library
|
6
|
+
|
7
|
+
# Identifies a successful operation which is defined as 0
|
8
|
+
BOLT_SUCCESS = 0
|
9
|
+
# Unknown error
|
10
|
+
BOLT_UNKNOWN_ERROR = 1
|
11
|
+
# Unsupported protocol or address family
|
12
|
+
BOLT_UNSUPPORTED = 2
|
13
|
+
# Operation interrupted
|
14
|
+
BOLT_INTERRUPTED = 3
|
15
|
+
# Connection reset by peer
|
16
|
+
BOLT_CONNECTION_RESET = 4
|
17
|
+
# No valid resolved addresses found to connect
|
18
|
+
BOLT_NO_VALID_ADDRESS = 5
|
19
|
+
# Operation timed out
|
20
|
+
BOLT_TIMED_OUT = 6
|
21
|
+
# Permission denied
|
22
|
+
BOLT_PERMISSION_DENIED = 7
|
23
|
+
# Too may open files
|
24
|
+
BOLT_OUT_OF_FILES = 8
|
25
|
+
# Out of memory
|
26
|
+
BOLT_OUT_OF_MEMORY = 9
|
27
|
+
# Too many open ports
|
28
|
+
BOLT_OUT_OF_PORTS = 10
|
29
|
+
# Connection refused
|
30
|
+
BOLT_CONNECTION_REFUSED = 11
|
31
|
+
# Network unreachable
|
32
|
+
BOLT_NETWORK_UNREACHABLE = 12
|
33
|
+
# An unknown TLS error
|
34
|
+
BOLT_TLS_ERROR = 13
|
35
|
+
# Connection closed by remote peer
|
36
|
+
BOLT_END_OF_TRANSMISSION = 15
|
37
|
+
# Server returned a FAILURE message, more info available through \ref BoltConnection_failure
|
38
|
+
BOLT_SERVER_FAILURE = 16
|
39
|
+
# Unsupported bolt transport
|
40
|
+
BOLT_TRANSPORT_UNSUPPORTED = 0x400
|
41
|
+
# Unsupported protocol usage
|
42
|
+
BOLT_PROTOCOL_VIOLATION = 0x500
|
43
|
+
# Unsupported bolt type
|
44
|
+
BOLT_PROTOCOL_UNSUPPORTED_TYPE = 0x501
|
45
|
+
# Unknown pack stream type
|
46
|
+
BOLT_PROTOCOL_NOT_IMPLEMENTED_TYPE = 0x502
|
47
|
+
# Unexpected marker
|
48
|
+
BOLT_PROTOCOL_UNEXPECTED_MARKER = 0x503
|
49
|
+
# Unsupported bolt protocol version
|
50
|
+
BOLT_PROTOCOL_UNSUPPORTED = 0x504
|
51
|
+
# Connection pool is full
|
52
|
+
BOLT_POOL_FULL = 0x600
|
53
|
+
# Connection acquisition from the connection pool timed out
|
54
|
+
BOLT_POOL_ACQUISITION_TIMED_OUT = 0x601
|
55
|
+
# Address resolution failed
|
56
|
+
BOLT_ADDRESS_NOT_RESOLVED = 0x700
|
57
|
+
# Routing table retrieval failed
|
58
|
+
BOLT_ROUTING_UNABLE_TO_RETRIEVE_ROUTING_TABLE = 0x800
|
59
|
+
# No servers to select for the requested operation
|
60
|
+
BOLT_ROUTING_NO_SERVERS_TO_SELECT = 0x801
|
61
|
+
# Connection pool construction for server failed
|
62
|
+
BOLT_ROUTING_UNABLE_TO_CONSTRUCT_POOL_FOR_SERVER = 0x802
|
63
|
+
# Routing table refresh failed
|
64
|
+
BOLT_ROUTING_UNABLE_TO_REFRESH_ROUTING_TABLE = 0x803
|
65
|
+
# Invalid discovery response
|
66
|
+
BOLT_ROUTING_UNEXPECTED_DISCOVERY_RESPONSE = 0x804
|
67
|
+
# Error set in connection
|
68
|
+
BOLT_CONNECTION_HAS_MORE_INFO = 0xFFE
|
69
|
+
# Error set in connection
|
70
|
+
BOLT_STATUS_SET = 0xFFF
|
71
|
+
|
72
|
+
attach_function :get_string, :BoltError_get_string, [:int32], :string
|
73
|
+
end
|
74
|
+
end
|
data/ffi/bolt/float.rb
ADDED
data/ffi/bolt/integer.rb
ADDED
data/ffi/bolt/library.rb
ADDED
data/ffi/bolt/list.rb
ADDED
data/ffi/bolt/status.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Bolt
|
4
|
+
module Status
|
5
|
+
extend Bolt::Library
|
6
|
+
|
7
|
+
typedef :int32, :bolt_connection_state
|
8
|
+
|
9
|
+
attach_function :create, :BoltStatus_create, [], :auto_pointer
|
10
|
+
attach_function :destroy, :BoltStatus_destroy, [:pointer], :void
|
11
|
+
attach_function :get_state, :BoltStatus_get_state, [:pointer], :bolt_connection_state
|
12
|
+
attach_function :get_error, :BoltStatus_get_error, [:pointer], :int32
|
13
|
+
attach_function :get_error_context, :BoltStatus_get_error_context, [:pointer], :string
|
14
|
+
end
|
15
|
+
end
|