|
50 | 50 | get_server_info/1, get_server_info/2, |
51 | 51 | get/3, get/4, get/5, |
52 | 52 | fetch/2, fetch/3, push/3, |
| 53 | + peer_discovery/1, |
53 | 54 | put/2, put/3, put/4, |
54 | 55 | delete/3, delete/4, delete/5, |
55 | 56 | delete_vclock/4, delete_vclock/5, delete_vclock/6, |
@@ -380,6 +381,12 @@ push(Pid, QueueName, BucketKeyClockList) -> |
380 | 381 | Req = #rpbpushreq{queuename = QueueName, keys_value = KeysValue}, |
381 | 382 | call_infinity(Pid, {req, Req, default_timeout(get_timeout)}). |
382 | 383 |
|
| 384 | + |
| 385 | +-spec peer_discovery(pid()) -> {error, term()}|{ok, iolist()}. |
| 386 | +peer_discovery(Pid) -> |
| 387 | + Req = #rpbmembershipreq{}, |
| 388 | + call_infinity(Pid, {req, Req, default_timeout(get_timeout)}). |
| 389 | + |
383 | 390 | make_keyvalue({{T, B}, K, C}) -> |
384 | 391 | #rpbkeysvalue{type = T, bucket = B, key = K, value = C}; |
385 | 392 | make_keyvalue({B, K, C}) -> |
@@ -2505,12 +2512,17 @@ process_response(#request{msg = #rpbpushreq{queuename = Q}}, |
2505 | 2512 | iolist_to_binary( |
2506 | 2513 | io_lib:format("Queue ~s: ~w ~w ~w", [Q, FL, FSL, RTL]))}, |
2507 | 2514 | State}; |
| 2515 | + |
| 2516 | +%% rpbmembershipreq |
2508 | 2517 | process_response(#request{msg = #rpbpushreq{queuename = Q}}, |
2509 | 2518 | #rpbpushresp{queue_exists = false}, State) -> |
2510 | 2519 | {reply, |
2511 | 2520 | {ok, |
2512 | 2521 | iolist_to_binary(io_lib:format("No queue ~s", [Q]))}, |
2513 | 2522 | State}; |
| 2523 | +process_response(#request{msg = #rpbmembershipreq{}}, |
| 2524 | + #rpbmembershipresp{up_nodes = UpNodeList}, State) -> |
| 2525 | + {reply, {ok, UpNodeList}, State}; |
2514 | 2526 |
|
2515 | 2527 |
|
2516 | 2528 |
|
|
0 commit comments