|
14 | 14 | new/9, |
15 | 15 | new_with_version/9, |
16 | 16 | new_with_version/10, |
17 | | - new_target/4, |
| 17 | + new_target/2, |
18 | 18 | fields/0, |
19 | 19 | fields/1, |
20 | 20 | field_vhost/0, |
|
87 | 87 | (T =:= classic orelse T =:= ?amqqueue_v1_type)). |
88 | 88 |
|
89 | 89 | -type amqqueue_options() :: map() | ets:match_pattern(). |
| 90 | +-type extra_bcc() :: rabbit_misc:resource_name() | none. |
90 | 91 |
|
91 | 92 | -record(amqqueue, { |
92 | 93 | %% immutable |
|
127 | 128 | %% to deliver a message to a target queue. |
128 | 129 | -record(queue_target, |
129 | 130 | {name :: rabbit_amqqueue:name(), |
130 | | - type :: rabbit_queue_type:queue_type(), |
131 | | - pid :: pid() | ra_server_id() | none, |
132 | | - extra_bcc :: rabbit_misc:resource_name() | none |
| 131 | + target :: {rabbit_queue_type:queue_type(), |
| 132 | + pid() | ra_server_id() | none, |
| 133 | + extra_bcc()} |
133 | 134 | }). |
134 | 135 |
|
135 | 136 | -opaque target() :: #queue_target{}. |
@@ -344,15 +345,13 @@ new_with_version(?record_version, |
344 | 345 | type = ensure_type_compat(Type)}. |
345 | 346 |
|
346 | 347 | -spec new_target(rabbit_amqqueue:name(), |
347 | | - rabbit_queue_type:queue_type(), |
348 | | - pid() | ra_server_id() | none, |
349 | | - rabbit_misc:resource_name() | none) -> |
| 348 | + {rabbit_queue_type:queue_type(), |
| 349 | + pid() | ra_server_id() | none, |
| 350 | + extra_bcc()}) -> |
350 | 351 | target(). |
351 | | -new_target(Name, Type, Pid, ExtraBcc) -> |
| 352 | +new_target(Name, Target) when tuple_size(Target) =:= 3 -> |
352 | 353 | #queue_target{name = Name, |
353 | | - type = Type, |
354 | | - pid = Pid, |
355 | | - extra_bcc = ExtraBcc}. |
| 354 | + target = Target}. |
356 | 355 |
|
357 | 356 | -spec is_amqqueue(any()) -> boolean(). |
358 | 357 |
|
@@ -395,13 +394,13 @@ set_options(#amqqueue{} = Queue, Options) -> |
395 | 394 | Queue#amqqueue{options = Options}. |
396 | 395 |
|
397 | 396 | -spec get_extra_bcc(amqqueue() | target()) -> |
398 | | - rabbit_misc:resource_name() | none. |
399 | | -get_extra_bcc(#amqqueue{options = #{extra_bcc := Name}}) -> |
400 | | - Name; |
| 397 | + extra_bcc(). |
| 398 | +get_extra_bcc(#amqqueue{options = #{extra_bcc := ExtraBcc}}) -> |
| 399 | + ExtraBcc; |
401 | 400 | get_extra_bcc(#amqqueue{}) -> |
402 | 401 | none; |
403 | | -get_extra_bcc(#queue_target{extra_bcc = Name}) -> |
404 | | - Name. |
| 402 | +get_extra_bcc(#queue_target{target = {_Type, _Pid, ExtraBcc}}) -> |
| 403 | + ExtraBcc. |
405 | 404 |
|
406 | 405 | % decorators |
407 | 406 |
|
@@ -465,7 +464,7 @@ set_name(#amqqueue{} = Queue, Name) -> |
465 | 464 | -spec get_pid(amqqueue_v2() | target()) -> pid() | ra_server_id() | none. |
466 | 465 |
|
467 | 466 | get_pid(#amqqueue{pid = Pid}) -> Pid; |
468 | | -get_pid(#queue_target{pid = Pid}) -> Pid. |
| 467 | +get_pid(#queue_target{target = {_Type, Pid, _ExtraBcc}}) -> Pid. |
469 | 468 |
|
470 | 469 | -spec set_pid(amqqueue_v2(), pid() | ra_server_id() | none) -> amqqueue_v2(). |
471 | 470 |
|
@@ -525,7 +524,7 @@ set_state(#amqqueue{} = Queue, State) -> |
525 | 524 | -spec get_type(amqqueue() | target()) -> atom(). |
526 | 525 |
|
527 | 526 | get_type(#amqqueue{type = Type}) -> Type; |
528 | | -get_type(#queue_target{type = Type}) -> Type. |
| 527 | +get_type(#queue_target{target = {Type, _Pid, _ExtraBcc}}) -> Type. |
529 | 528 |
|
530 | 529 | -spec get_vhost(amqqueue()) -> rabbit_types:vhost() | undefined. |
531 | 530 |
|
|
0 commit comments