_site/cover/msmp_register_replica.COVER.html

1 %% Copyright (c) 2023 Peter Morgan <peter.james.morgan@gmail.com>
2 %%
3 %% Licensed under the Apache License, Version 2.0 (the "License");
4 %% you may not use this file except in compliance with the License.
5 %% You may obtain a copy of the License at
6 %%
7 %% http://www.apache.org/licenses/LICENSE-2.0
8 %%
9 %% Unless required by applicable law or agreed to in writing, software
10 %% distributed under the License is distributed on an "AS IS" BASIS,
11 %% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 %% See the License for the specific language governing permissions and
13 %% limitations under the License.
14
15
16 -module(msmp_register_replica).
17
18
19 -export([decode/0]).
20 -export([encode/0]).
21
22
23 decode() ->
24 3 fun
25 (Encoded) ->
26 1 (scran_result:into_map(
27 scran_sequence:sequence(
28 [scran_result:kv(
29 action,
30 scran_combinator:value(
31 register_replica, scran_bytes:tag(<<21>>))),
32 scran_result:kv(server_id, msmp_integer_fixed:decode(4)),
33 scran_result:kv(host, msmp_string_length_encoded:decode()),
34 scran_result:kv(user, msmp_string_length_encoded:decode()),
35 scran_result:kv(password, msmp_string_length_encoded:decode()),
36 scran_result:kv(port, msmp_integer_fixed:decode(2)),
37 scran_result:kv(recovery_rank, scran_bytes:take(4)),
38 scran_result:kv(master_id, msmp_integer_fixed:decode(4))])))(Encoded)
39 end.
40
41
42 encode() ->
43 3 fun
44 (Decoded) ->
45 1 (narcs_sequence:sequence(
46 [narcs_bytes:tag(<<21>>),
47 narcs_combinator:v(server_id, msmp_integer_fixed:encode(4)),
48 narcs_combinator:v(host, msmp_string_length_encoded:encode()),
49 narcs_combinator:v(user, msmp_string_length_encoded:encode()),
50 narcs_combinator:v(password, msmp_string_length_encoded:encode()),
51 narcs_combinator:v(port, msmp_integer_fixed:encode(2)),
52 narcs_combinator:v(recovery_rank, narcs_combinator:rest()),
53 narcs_combinator:v(master_id, msmp_integer_fixed:encode(4))]))(Decoded)
54 end.
Line Hits Source