qpid_proton 0.17.0 → 0.18.0
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/ChangeLog +176 -27
- data/TODO +2 -8
- data/ext/cproton/cproton.c +278 -65
- data/lib/codec/data.rb +32 -36
- data/lib/codec/mapping.rb +3 -3
- data/lib/core/connection.rb +14 -5
- data/lib/core/delivery.rb +1 -1
- data/lib/core/disposition.rb +2 -2
- data/lib/core/link.rb +10 -10
- data/lib/core/message.rb +8 -21
- data/lib/core/receiver.rb +3 -3
- data/lib/core/sasl.rb +68 -36
- data/lib/core/sender.rb +3 -3
- data/lib/core/session.rb +5 -5
- data/lib/core/ssl_domain.rb +1 -1
- data/lib/core/terminus.rb +5 -5
- data/lib/core/transport.rb +19 -17
- data/lib/core/url.rb +3 -3
- data/lib/handler/acking.rb +1 -1
- data/lib/handler/endpoint_state_handler.rb +1 -1
- data/lib/handler/messaging_handler.rb +1 -3
- data/lib/messenger/messenger.rb +3 -3
- data/lib/reactor/connector.rb +45 -28
- data/lib/reactor/container.rb +45 -47
- data/lib/reactor/reactor.rb +2 -2
- data/lib/reactor/urls.rb +6 -1
- data/lib/util/condition.rb +2 -0
- data/lib/util/engine.rb +1 -1
- data/lib/util/swig_helper.rb +1 -1
- metadata +6 -5
data/lib/codec/data.rb
CHANGED
@@ -82,13 +82,12 @@ module Qpid::Proton::Codec
|
|
82
82
|
|
83
83
|
# Creates a new instance with the specified capacity.
|
84
84
|
#
|
85
|
-
# @param capacity [
|
85
|
+
# @param capacity [Integer, Object] The initial capacity or content.
|
86
86
|
#
|
87
87
|
def initialize(capacity = 16)
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
@data = Cproton.pn_data(capacity)
|
88
|
+
# TODO aconway 2017-08-11: error prone, confusion between capacity and Integer content.
|
89
|
+
if capacity.is_a?(Integer)
|
90
|
+
@data = Cproton.pn_data(capacity.to_i)
|
92
91
|
@free = true
|
93
92
|
else
|
94
93
|
@data = capacity
|
@@ -165,7 +164,7 @@ module Qpid::Proton::Codec
|
|
165
164
|
|
166
165
|
# Returns the numeric type code of the current node.
|
167
166
|
#
|
168
|
-
# @return [
|
167
|
+
# @return [Integer] The current node type.
|
169
168
|
# @return [nil] If there is no current node.
|
170
169
|
#
|
171
170
|
def type_code
|
@@ -173,10 +172,7 @@ module Qpid::Proton::Codec
|
|
173
172
|
return (dtype == -1) ? nil : dtype
|
174
173
|
end
|
175
174
|
|
176
|
-
#
|
177
|
-
#
|
178
|
-
# @param [Fixnum] The object type.
|
179
|
-
#
|
175
|
+
# @return [Integer] The type object for the current node.
|
180
176
|
# @see #type_code
|
181
177
|
#
|
182
178
|
def type
|
@@ -319,7 +315,7 @@ module Qpid::Proton::Codec
|
|
319
315
|
# is the descriptor and may be of any type.
|
320
316
|
#
|
321
317
|
# @param described [Boolean] True if the array is described.
|
322
|
-
# @param element_type [
|
318
|
+
# @param element_type [Integer] The AMQP type for each element of the array.
|
323
319
|
#
|
324
320
|
# @example
|
325
321
|
#
|
@@ -489,7 +485,7 @@ module Qpid::Proton::Codec
|
|
489
485
|
|
490
486
|
# Puts an unsigned byte value.
|
491
487
|
#
|
492
|
-
# @param value [
|
488
|
+
# @param value [Integer] The unsigned byte value.
|
493
489
|
#
|
494
490
|
def ubyte=(value)
|
495
491
|
check(Cproton.pn_data_put_ubyte(@data, value))
|
@@ -498,7 +494,7 @@ module Qpid::Proton::Codec
|
|
498
494
|
# If the current node is an unsigned byte, returns its value. Otherwise,
|
499
495
|
# it returns 0.
|
500
496
|
#
|
501
|
-
# @return [
|
497
|
+
# @return [Integer] The unsigned byte value.
|
502
498
|
#
|
503
499
|
def ubyte
|
504
500
|
Cproton.pn_data_get_ubyte(@data)
|
@@ -506,7 +502,7 @@ module Qpid::Proton::Codec
|
|
506
502
|
|
507
503
|
# Puts a byte value.
|
508
504
|
#
|
509
|
-
# @param value [
|
505
|
+
# @param value [Integer] The byte value.
|
510
506
|
#
|
511
507
|
def byte=(value)
|
512
508
|
check(Cproton.pn_data_put_byte(@data, value))
|
@@ -515,7 +511,7 @@ module Qpid::Proton::Codec
|
|
515
511
|
# If the current node is an byte, returns its value. Otherwise,
|
516
512
|
# it returns 0.
|
517
513
|
#
|
518
|
-
# @return [
|
514
|
+
# @return [Integer] The byte value.
|
519
515
|
#
|
520
516
|
def byte
|
521
517
|
Cproton.pn_data_get_byte(@data)
|
@@ -523,7 +519,7 @@ module Qpid::Proton::Codec
|
|
523
519
|
|
524
520
|
# Puts an unsigned short value.
|
525
521
|
#
|
526
|
-
# @param value [
|
522
|
+
# @param value [Integer] The unsigned short value
|
527
523
|
#
|
528
524
|
def ushort=(value)
|
529
525
|
check(Cproton.pn_data_put_ushort(@data, value))
|
@@ -532,7 +528,7 @@ module Qpid::Proton::Codec
|
|
532
528
|
# If the current node is an unsigned short, returns its value. Otherwise,
|
533
529
|
# it returns 0.
|
534
530
|
#
|
535
|
-
# @return [
|
531
|
+
# @return [Integer] The unsigned short value.
|
536
532
|
#
|
537
533
|
def ushort
|
538
534
|
Cproton.pn_data_get_ushort(@data)
|
@@ -540,7 +536,7 @@ module Qpid::Proton::Codec
|
|
540
536
|
|
541
537
|
# Puts a short value.
|
542
538
|
#
|
543
|
-
# @param value [
|
539
|
+
# @param value [Integer] The short value.
|
544
540
|
#
|
545
541
|
def short=(value)
|
546
542
|
check(Cproton.pn_data_put_short(@data, value))
|
@@ -549,7 +545,7 @@ module Qpid::Proton::Codec
|
|
549
545
|
# If the current node is a short, returns its value. Otherwise,
|
550
546
|
# returns a 0.
|
551
547
|
#
|
552
|
-
# @return [
|
548
|
+
# @return [Integer] The short value.
|
553
549
|
#
|
554
550
|
def short
|
555
551
|
Cproton.pn_data_get_short(@data)
|
@@ -557,7 +553,7 @@ module Qpid::Proton::Codec
|
|
557
553
|
|
558
554
|
# Puts an unsigned integer value.
|
559
555
|
#
|
560
|
-
# @param value [
|
556
|
+
# @param value [Integer] the unsigned integer value
|
561
557
|
#
|
562
558
|
def uint=(value)
|
563
559
|
raise TypeError if value.nil?
|
@@ -568,7 +564,7 @@ module Qpid::Proton::Codec
|
|
568
564
|
# If the current node is an unsigned int, returns its value. Otherwise,
|
569
565
|
# returns 0.
|
570
566
|
#
|
571
|
-
# @return [
|
567
|
+
# @return [Integer] The unsigned integer value.
|
572
568
|
#
|
573
569
|
def uint
|
574
570
|
Cproton.pn_data_get_uint(@data)
|
@@ -586,7 +582,7 @@ module Qpid::Proton::Codec
|
|
586
582
|
# If the current node is an integer, returns its value. Otherwise,
|
587
583
|
# returns 0.
|
588
584
|
#
|
589
|
-
# @return [
|
585
|
+
# @return [Integer] The integer value.
|
590
586
|
#
|
591
587
|
def int
|
592
588
|
Cproton.pn_data_get_int(@data)
|
@@ -594,7 +590,7 @@ module Qpid::Proton::Codec
|
|
594
590
|
|
595
591
|
# Puts a character value.
|
596
592
|
#
|
597
|
-
# @param value [
|
593
|
+
# @param value [Integer] The character value.
|
598
594
|
#
|
599
595
|
def char=(value)
|
600
596
|
check(Cproton.pn_data_put_char(@data, value))
|
@@ -603,7 +599,7 @@ module Qpid::Proton::Codec
|
|
603
599
|
# If the current node is a character, returns its value. Otherwise,
|
604
600
|
# returns 0.
|
605
601
|
#
|
606
|
-
# @return [
|
602
|
+
# @return [Integer] The character value.
|
607
603
|
#
|
608
604
|
def char
|
609
605
|
Cproton.pn_data_get_char(@data)
|
@@ -611,7 +607,7 @@ module Qpid::Proton::Codec
|
|
611
607
|
|
612
608
|
# Puts an unsigned long value.
|
613
609
|
#
|
614
|
-
# @param value [
|
610
|
+
# @param value [Integer] The unsigned long value.
|
615
611
|
#
|
616
612
|
def ulong=(value)
|
617
613
|
raise TypeError if value.nil?
|
@@ -622,7 +618,7 @@ module Qpid::Proton::Codec
|
|
622
618
|
# If the current node is an unsigned long, returns its value. Otherwise,
|
623
619
|
# returns 0.
|
624
620
|
#
|
625
|
-
# @return [
|
621
|
+
# @return [Integer] The unsigned long value.
|
626
622
|
#
|
627
623
|
def ulong
|
628
624
|
Cproton.pn_data_get_ulong(@data)
|
@@ -630,7 +626,7 @@ module Qpid::Proton::Codec
|
|
630
626
|
|
631
627
|
# Puts a long value.
|
632
628
|
#
|
633
|
-
# @param value [
|
629
|
+
# @param value [Integer] The long value.
|
634
630
|
#
|
635
631
|
def long=(value)
|
636
632
|
check(Cproton.pn_data_put_long(@data, value))
|
@@ -638,14 +634,14 @@ module Qpid::Proton::Codec
|
|
638
634
|
|
639
635
|
# If the current node is a long, returns its value. Otherwise, returns 0.
|
640
636
|
#
|
641
|
-
# @return [
|
637
|
+
# @return [Integer] The long value.
|
642
638
|
def long
|
643
639
|
Cproton.pn_data_get_long(@data)
|
644
640
|
end
|
645
641
|
|
646
642
|
# Puts a timestamp value.
|
647
643
|
#
|
648
|
-
# @param value [
|
644
|
+
# @param value [Integer] The timestamp value.
|
649
645
|
#
|
650
646
|
def timestamp=(value)
|
651
647
|
value = value.to_i if (!value.nil? && value.is_a?(Time))
|
@@ -655,7 +651,7 @@ module Qpid::Proton::Codec
|
|
655
651
|
# If the current node is a timestamp, returns its value. Otherwise,
|
656
652
|
# returns 0.
|
657
653
|
#
|
658
|
-
# @return [
|
654
|
+
# @return [Integer] The timestamp value.
|
659
655
|
#
|
660
656
|
def timestamp
|
661
657
|
Cproton.pn_data_get_timestamp(@data)
|
@@ -697,7 +693,7 @@ module Qpid::Proton::Codec
|
|
697
693
|
|
698
694
|
# Puts a decimal32 value.
|
699
695
|
#
|
700
|
-
# @param value [
|
696
|
+
# @param value [Integer] The decimal32 value.
|
701
697
|
#
|
702
698
|
def decimal32=(value)
|
703
699
|
check(Cproton.pn_data_put_decimal32(@data, value))
|
@@ -706,7 +702,7 @@ module Qpid::Proton::Codec
|
|
706
702
|
# If the current node is a decimal32, returns its value. Otherwise,
|
707
703
|
# returns 0.
|
708
704
|
#
|
709
|
-
# @return [
|
705
|
+
# @return [Integer] The decimal32 value.
|
710
706
|
#
|
711
707
|
def decimal32
|
712
708
|
Cproton.pn_data_get_decimal32(@data)
|
@@ -714,7 +710,7 @@ module Qpid::Proton::Codec
|
|
714
710
|
|
715
711
|
# Puts a decimal64 value.
|
716
712
|
#
|
717
|
-
# @param value [
|
713
|
+
# @param value [Integer] The decimal64 value.
|
718
714
|
#
|
719
715
|
def decimal64=(value)
|
720
716
|
check(Cproton.pn_data_put_decimal64(@data, value))
|
@@ -723,7 +719,7 @@ module Qpid::Proton::Codec
|
|
723
719
|
# If the current node is a decimal64, returns its value. Otherwise,
|
724
720
|
# it returns 0.
|
725
721
|
#
|
726
|
-
# @return [
|
722
|
+
# @return [Integer] The decimal64 value.
|
727
723
|
#
|
728
724
|
def decimal64
|
729
725
|
Cproton.pn_data_get_decimal64(@data)
|
@@ -731,7 +727,7 @@ module Qpid::Proton::Codec
|
|
731
727
|
|
732
728
|
# Puts a decimal128 value.
|
733
729
|
#
|
734
|
-
# @param value [
|
730
|
+
# @param value [Integer] The decimal128 value.
|
735
731
|
#
|
736
732
|
def decimal128=(value)
|
737
733
|
raise TypeError, "invalid decimal128 value: #{value}" if value.nil?
|
@@ -744,7 +740,7 @@ module Qpid::Proton::Codec
|
|
744
740
|
# If the current node is a decimal128, returns its value. Otherwise,
|
745
741
|
# returns 0.
|
746
742
|
#
|
747
|
-
# @return [
|
743
|
+
# @return [Integer] The decimal128 value.
|
748
744
|
#
|
749
745
|
def decimal128
|
750
746
|
value = ""
|
data/lib/codec/mapping.rb
CHANGED
@@ -34,7 +34,7 @@ module Qpid::Proton::Codec
|
|
34
34
|
#
|
35
35
|
# * code - the AMQP code for this type
|
36
36
|
# * name - the AMQP name for this type
|
37
|
-
# * klasses -
|
37
|
+
# * klasses - native Ruby classes that are mapped to this AMQP type
|
38
38
|
# * getter - overrides the get method for the type
|
39
39
|
def initialize(code, name, klasses = nil, getter = nil)
|
40
40
|
|
@@ -77,7 +77,7 @@ module Qpid::Proton::Codec
|
|
77
77
|
end
|
78
78
|
|
79
79
|
def self.for_class(klass) # :nodoc:
|
80
|
-
@@by_class[klass]
|
80
|
+
klass and (@@by_class[klass] or self.for_class(klass.superclass))
|
81
81
|
end
|
82
82
|
|
83
83
|
def self.for_code(code)
|
@@ -96,7 +96,7 @@ module Qpid::Proton::Codec
|
|
96
96
|
INT = Mapping.new(Cproton::PN_INT, "int")
|
97
97
|
CHAR = Mapping.new(Cproton::PN_CHAR, "char")
|
98
98
|
ULONG = Mapping.new(Cproton::PN_ULONG, "ulong")
|
99
|
-
LONG = Mapping.new(Cproton::PN_LONG, "long", [
|
99
|
+
LONG = Mapping.new(Cproton::PN_LONG, "long", [Integer])
|
100
100
|
TIMESTAMP = Mapping.new(Cproton::PN_TIMESTAMP, "timestamp", [Date, Time])
|
101
101
|
FLOAT = Mapping.new(Cproton::PN_FLOAT, "float")
|
102
102
|
DOUBLE = Mapping.new(Cproton::PN_DOUBLE, "double", [Float])
|
data/lib/core/connection.rb
CHANGED
@@ -19,7 +19,7 @@
|
|
19
19
|
|
20
20
|
module Qpid::Proton
|
21
21
|
|
22
|
-
# A Connection
|
22
|
+
# A Connection has at most one Qpid::Proton::Transport instance.
|
23
23
|
#
|
24
24
|
class Connection < Endpoint
|
25
25
|
|
@@ -35,6 +35,15 @@ module Qpid::Proton
|
|
35
35
|
#
|
36
36
|
proton_accessor :hostname
|
37
37
|
|
38
|
+
# @!attribute user
|
39
|
+
# The user name for authentication.
|
40
|
+
#
|
41
|
+
# @return [String] the user name
|
42
|
+
proton_accessor :user
|
43
|
+
|
44
|
+
# @private
|
45
|
+
proton_writer :password
|
46
|
+
|
38
47
|
# @private
|
39
48
|
proton_reader :attachments
|
40
49
|
|
@@ -224,7 +233,7 @@ module Qpid::Proton
|
|
224
233
|
# @see Endpoint#LOCAL_CLOSED
|
225
234
|
# @see Endpoint#LOCAL_MASK
|
226
235
|
#
|
227
|
-
# @return [
|
236
|
+
# @return [Integer] The state flags.
|
228
237
|
#
|
229
238
|
def state
|
230
239
|
Cproton.pn_connection_state(@impl)
|
@@ -248,7 +257,7 @@ module Qpid::Proton
|
|
248
257
|
# remote flags, then a match occurs if a*any* of the local or remote flags
|
249
258
|
# are set, respectively.
|
250
259
|
#
|
251
|
-
# @param mask [
|
260
|
+
# @param mask [Integer] The state mask to be matched.
|
252
261
|
#
|
253
262
|
# @return [Session] The first matching session, or nil if none matched.
|
254
263
|
#
|
@@ -272,7 +281,7 @@ module Qpid::Proton
|
|
272
281
|
# then a match occurs if *any* of the local ore remote flags are set,
|
273
282
|
# respectively.
|
274
283
|
#
|
275
|
-
# @param mask [
|
284
|
+
# @param mask [Integer] The state mask to be matched.
|
276
285
|
#
|
277
286
|
# @return [Link] The first matching link, or nil if none matched.
|
278
287
|
#
|
@@ -307,7 +316,7 @@ module Qpid::Proton
|
|
307
316
|
|
308
317
|
# Returns the code for a connection error.
|
309
318
|
#
|
310
|
-
# @return [
|
319
|
+
# @return [Integer] The error code.
|
311
320
|
#
|
312
321
|
def error
|
313
322
|
Cproton.pn_error_code(Cproton.pn_connection_error(@impl))
|
data/lib/core/delivery.rb
CHANGED
@@ -104,7 +104,7 @@ module Qpid::Proton
|
|
104
104
|
|
105
105
|
# @!attribute [r] pending
|
106
106
|
#
|
107
|
-
# @return [
|
107
|
+
# @return [Integer] Return the amount of pending message data for the
|
108
108
|
# delivery.
|
109
109
|
#
|
110
110
|
proton_caller :pending
|
data/lib/core/disposition.rb
CHANGED
@@ -62,13 +62,13 @@ module Qpid::Proton
|
|
62
62
|
|
63
63
|
# @!attribute section_number
|
64
64
|
#
|
65
|
-
# @return [
|
65
|
+
# @return [Integer] The section number of the disposition.
|
66
66
|
#
|
67
67
|
proton_accessor :section_number
|
68
68
|
|
69
69
|
# @!attribute section_offset
|
70
70
|
#
|
71
|
-
# @return [
|
71
|
+
# @return [Integer] The section offset of the disposition.
|
72
72
|
#
|
73
73
|
proton_accessor :section_offset
|
74
74
|
|
data/lib/core/link.rb
CHANGED
@@ -113,7 +113,7 @@ module Qpid::Proton
|
|
113
113
|
# the link until enough credit is obtained from the receiver to send them
|
114
114
|
# over the wire. In this case the balance reported will go negative.
|
115
115
|
#
|
116
|
-
# @return [
|
116
|
+
# @return [Integer] The credit balance.
|
117
117
|
#
|
118
118
|
# @see #flow
|
119
119
|
#
|
@@ -130,7 +130,7 @@ module Qpid::Proton
|
|
130
130
|
# @see #queued
|
131
131
|
# @see #credit
|
132
132
|
#
|
133
|
-
# @return [
|
133
|
+
# @return [Integer] The remove view of the credit.
|
134
134
|
#
|
135
135
|
proton_caller :remote_credit
|
136
136
|
|
@@ -142,7 +142,7 @@ module Qpid::Proton
|
|
142
142
|
# deliveries that might be able to be sent if sufficient credit were issued
|
143
143
|
# by the receiving link endpoint.
|
144
144
|
#
|
145
|
-
# @return [
|
145
|
+
# @return [Integer] The available deliveries hint.
|
146
146
|
#
|
147
147
|
# @see Sender#offered
|
148
148
|
#
|
@@ -156,7 +156,7 @@ module Qpid::Proton
|
|
156
156
|
# be insufficient credit to send them to the receiver, or they simply may
|
157
157
|
# not have yet had a chance to be written to the wire.
|
158
158
|
#
|
159
|
-
# @return [
|
159
|
+
# @return [Integer] The number of queued deliveries.
|
160
160
|
#
|
161
161
|
# @see #credit
|
162
162
|
#
|
@@ -203,7 +203,7 @@ module Qpid::Proton
|
|
203
203
|
# When invoked on a Receiver, this operation will return and reset the
|
204
204
|
# number of credits the sender has released back to it.
|
205
205
|
#
|
206
|
-
# @return [
|
206
|
+
# @return [Integer] The number of credits drained.
|
207
207
|
#
|
208
208
|
proton_caller :drained
|
209
209
|
|
@@ -243,7 +243,7 @@ module Qpid::Proton
|
|
243
243
|
|
244
244
|
# Returns the next link that matches the given state mask.
|
245
245
|
#
|
246
|
-
# @param state_mask [
|
246
|
+
# @param state_mask [Integer] The state mask.
|
247
247
|
#
|
248
248
|
# @return [Sender, Receiver] The next link.
|
249
249
|
#
|
@@ -328,7 +328,7 @@ module Qpid::Proton
|
|
328
328
|
|
329
329
|
# Sets the local sender settle mode.
|
330
330
|
#
|
331
|
-
# @param mode [
|
331
|
+
# @param mode [Integer] The settle mode.
|
332
332
|
#
|
333
333
|
# @see #SND_UNSETTLED
|
334
334
|
# @see #SND_SETTLED
|
@@ -340,7 +340,7 @@ module Qpid::Proton
|
|
340
340
|
|
341
341
|
# Returns the local sender settle mode.
|
342
342
|
#
|
343
|
-
# @return [
|
343
|
+
# @return [Integer] The local sender settle mode.
|
344
344
|
#
|
345
345
|
# @see #snd_settle_mode
|
346
346
|
#
|
@@ -350,7 +350,7 @@ module Qpid::Proton
|
|
350
350
|
|
351
351
|
# Sets the local receiver settle mode.
|
352
352
|
#
|
353
|
-
# @param mode [
|
353
|
+
# @param mode [Integer] The settle mode.
|
354
354
|
#
|
355
355
|
# @see #RCV_FIRST
|
356
356
|
# @see #RCV_SECOND
|
@@ -361,7 +361,7 @@ module Qpid::Proton
|
|
361
361
|
|
362
362
|
# Returns the local receiver settle mode.
|
363
363
|
#
|
364
|
-
# @return [
|
364
|
+
# @return [Integer] The local receiver settle mode.
|
365
365
|
#
|
366
366
|
def rcv_settle_mode
|
367
367
|
Cproton.pn_link_rcv_settle_mode(@impl)
|