rdkafka 0.1.7 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/rdkafka/config.rb +26 -15
- data/lib/rdkafka/ffi.rb +21 -0
- data/lib/rdkafka/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a9b016b16ea543f75f53572f0a16e89aae152000
|
4
|
+
data.tar.gz: ea73ee4d951be90743901a7b9e2fe75708823ebb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 75f6817837f86d3b136a98fe87850bb63275bc389a5bdb7abfb8dd3dfd14633a73ac0073a26cd98d596b63901bf3796e4ec87f6e4c2c25320328f250fd960308
|
7
|
+
data.tar.gz: 7cac0e27475bd2571e6eb104fcaf977efed4e306b04cd8c735b2c390d119eff0f2538eced0a06f66c90c36d60ecc5e569b8bd77fe7f01e4c38ca40eaba960fda
|
data/lib/rdkafka/config.rb
CHANGED
@@ -1,5 +1,17 @@
|
|
1
|
+
require "logger"
|
2
|
+
|
1
3
|
module Rdkafka
|
2
4
|
class Config
|
5
|
+
@@logger = Logger.new(STDOUT)
|
6
|
+
|
7
|
+
def self.logger
|
8
|
+
@@logger
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.logger=(logger)
|
12
|
+
@@logger=logger
|
13
|
+
end
|
14
|
+
|
3
15
|
DEFAULT_CONFIG = {
|
4
16
|
:"api.version.request" => true
|
5
17
|
}
|
@@ -39,23 +51,22 @@ module Rdkafka
|
|
39
51
|
# This method is only intented to be used to create a client,
|
40
52
|
# using it in another way will leak memory.
|
41
53
|
def native_config
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
54
|
+
Rdkafka::FFI.rd_kafka_conf_new.tap do |config|
|
55
|
+
@config_hash.each do |key, value|
|
56
|
+
error_buffer = ::FFI::MemoryPointer.from_string(" " * 256)
|
57
|
+
result = Rdkafka::FFI.rd_kafka_conf_set(
|
58
|
+
config,
|
59
|
+
key.to_s,
|
60
|
+
value.to_s,
|
61
|
+
error_buffer,
|
62
|
+
256
|
63
|
+
)
|
64
|
+
unless result == :config_ok
|
65
|
+
raise ConfigError.new(error_buffer.read_string)
|
66
|
+
end
|
55
67
|
end
|
68
|
+
Rdkafka::FFI.rd_kafka_conf_set_log_cb(config, Rdkafka::FFI::LogCallback)
|
56
69
|
end
|
57
|
-
|
58
|
-
config
|
59
70
|
end
|
60
71
|
|
61
72
|
def native_kafka(config, type)
|
data/lib/rdkafka/ffi.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require "ffi"
|
2
|
+
require "logger"
|
2
3
|
|
3
4
|
module Rdkafka
|
4
5
|
module FFI
|
@@ -113,6 +114,26 @@ module Rdkafka
|
|
113
114
|
|
114
115
|
attach_function :rd_kafka_conf_new, [], :pointer
|
115
116
|
attach_function :rd_kafka_conf_set, [:pointer, :string, :string, :pointer, :int], :kafka_config_response
|
117
|
+
callback :log_cb, [:pointer, :int, :string, :string], :void
|
118
|
+
attach_function :rd_kafka_conf_set_log_cb, [:pointer, :log_cb], :void
|
119
|
+
|
120
|
+
LogCallback = Proc.new do |client_ptr, level, level_string, line|
|
121
|
+
severity = case level
|
122
|
+
when 0 || 1 || 2
|
123
|
+
Logger::FATAL
|
124
|
+
when 3
|
125
|
+
Logger::ERROR
|
126
|
+
when 4
|
127
|
+
Logger::WARN
|
128
|
+
when 5 || 6
|
129
|
+
Logger::INFO
|
130
|
+
when 7
|
131
|
+
Logger::DEBUG
|
132
|
+
else
|
133
|
+
Logger::UNKNOWN
|
134
|
+
end
|
135
|
+
Rdkafka::Config.logger.add(severity) { line }
|
136
|
+
end
|
116
137
|
|
117
138
|
# Handle
|
118
139
|
|
data/lib/rdkafka/version.rb
CHANGED