Current section
Files
Jump to
Current section
Files
src/xep0198.erl
%% Created automatically by XML generator (fxml_gen.erl)
%% Source: xmpp_codec.spec
-module(xep0198).
-compile(export_all).
do_decode(<<"failed">>, <<"urn:xmpp:sm:2">>, El,
Opts) ->
decode_sm_failed(<<"urn:xmpp:sm:2">>, Opts, El);
do_decode(<<"failed">>, <<"urn:xmpp:sm:3">>, El,
Opts) ->
decode_sm_failed(<<"urn:xmpp:sm:3">>, Opts, El);
do_decode(<<"a">>, <<"urn:xmpp:sm:2">>, El, Opts) ->
decode_sm_a(<<"urn:xmpp:sm:2">>, Opts, El);
do_decode(<<"a">>, <<"urn:xmpp:sm:3">>, El, Opts) ->
decode_sm_a(<<"urn:xmpp:sm:3">>, Opts, El);
do_decode(<<"r">>, <<"urn:xmpp:sm:2">>, El, Opts) ->
decode_sm_r(<<"urn:xmpp:sm:2">>, Opts, El);
do_decode(<<"r">>, <<"urn:xmpp:sm:3">>, El, Opts) ->
decode_sm_r(<<"urn:xmpp:sm:3">>, Opts, El);
do_decode(<<"resumed">>, <<"urn:xmpp:sm:2">>, El,
Opts) ->
decode_sm_resumed(<<"urn:xmpp:sm:2">>, Opts, El);
do_decode(<<"resumed">>, <<"urn:xmpp:sm:3">>, El,
Opts) ->
decode_sm_resumed(<<"urn:xmpp:sm:3">>, Opts, El);
do_decode(<<"resume">>, <<"urn:xmpp:sm:2">>, El,
Opts) ->
decode_sm_resume(<<"urn:xmpp:sm:2">>, Opts, El);
do_decode(<<"resume">>, <<"urn:xmpp:sm:3">>, El,
Opts) ->
decode_sm_resume(<<"urn:xmpp:sm:3">>, Opts, El);
do_decode(<<"enabled">>, <<"urn:xmpp:sm:2">>, El,
Opts) ->
decode_sm_enabled(<<"urn:xmpp:sm:2">>, Opts, El);
do_decode(<<"enabled">>, <<"urn:xmpp:sm:3">>, El,
Opts) ->
decode_sm_enabled(<<"urn:xmpp:sm:3">>, Opts, El);
do_decode(<<"enable">>, <<"urn:xmpp:sm:2">>, El,
Opts) ->
decode_sm_enable(<<"urn:xmpp:sm:2">>, Opts, El);
do_decode(<<"enable">>, <<"urn:xmpp:sm:3">>, El,
Opts) ->
decode_sm_enable(<<"urn:xmpp:sm:3">>, Opts, El);
do_decode(<<"sm">>, <<"urn:xmpp:sm:2">>, El, Opts) ->
decode_feature_sm(<<"urn:xmpp:sm:2">>, Opts, El);
do_decode(<<"sm">>, <<"urn:xmpp:sm:3">>, El, Opts) ->
decode_feature_sm(<<"urn:xmpp:sm:3">>, Opts, El);
do_decode(Name, <<>>, _, _) ->
erlang:error({xmpp_codec, {missing_tag_xmlns, Name}});
do_decode(Name, XMLNS, _, _) ->
erlang:error({xmpp_codec, {unknown_tag, Name, XMLNS}}).
tags() ->
[{<<"failed">>, <<"urn:xmpp:sm:2">>},
{<<"failed">>, <<"urn:xmpp:sm:3">>},
{<<"a">>, <<"urn:xmpp:sm:2">>},
{<<"a">>, <<"urn:xmpp:sm:3">>},
{<<"r">>, <<"urn:xmpp:sm:2">>},
{<<"r">>, <<"urn:xmpp:sm:3">>},
{<<"resumed">>, <<"urn:xmpp:sm:2">>},
{<<"resumed">>, <<"urn:xmpp:sm:3">>},
{<<"resume">>, <<"urn:xmpp:sm:2">>},
{<<"resume">>, <<"urn:xmpp:sm:3">>},
{<<"enabled">>, <<"urn:xmpp:sm:2">>},
{<<"enabled">>, <<"urn:xmpp:sm:3">>},
{<<"enable">>, <<"urn:xmpp:sm:2">>},
{<<"enable">>, <<"urn:xmpp:sm:3">>},
{<<"sm">>, <<"urn:xmpp:sm:2">>},
{<<"sm">>, <<"urn:xmpp:sm:3">>}].
do_encode({feature_sm, _} = Sm, TopXMLNS) ->
encode_feature_sm(Sm, TopXMLNS);
do_encode({sm_enable, _, _, _} = Enable, TopXMLNS) ->
encode_sm_enable(Enable, TopXMLNS);
do_encode({sm_enabled, _, _, _, _, _} = Enabled,
TopXMLNS) ->
encode_sm_enabled(Enabled, TopXMLNS);
do_encode({sm_resume, _, _, _} = Resume, TopXMLNS) ->
encode_sm_resume(Resume, TopXMLNS);
do_encode({sm_resumed, _, _, _} = Resumed, TopXMLNS) ->
encode_sm_resumed(Resumed, TopXMLNS);
do_encode({sm_r, _} = R, TopXMLNS) ->
encode_sm_r(R, TopXMLNS);
do_encode({sm_a, _, _} = A, TopXMLNS) ->
encode_sm_a(A, TopXMLNS);
do_encode({sm_failed, _, _, _, _} = Failed, TopXMLNS) ->
encode_sm_failed(Failed, TopXMLNS).
do_get_name({feature_sm, _}) -> <<"sm">>;
do_get_name({sm_a, _, _}) -> <<"a">>;
do_get_name({sm_enable, _, _, _}) -> <<"enable">>;
do_get_name({sm_enabled, _, _, _, _, _}) ->
<<"enabled">>;
do_get_name({sm_failed, _, _, _, _}) -> <<"failed">>;
do_get_name({sm_r, _}) -> <<"r">>;
do_get_name({sm_resume, _, _, _}) -> <<"resume">>;
do_get_name({sm_resumed, _, _, _}) -> <<"resumed">>.
do_get_ns({feature_sm, Xmlns}) -> Xmlns;
do_get_ns({sm_a, _, Xmlns}) -> Xmlns;
do_get_ns({sm_enable, _, _, Xmlns}) -> Xmlns;
do_get_ns({sm_enabled, _, _, _, _, Xmlns}) -> Xmlns;
do_get_ns({sm_failed, _, _, _, Xmlns}) -> Xmlns;
do_get_ns({sm_r, Xmlns}) -> Xmlns;
do_get_ns({sm_resume, _, _, Xmlns}) -> Xmlns;
do_get_ns({sm_resumed, _, _, Xmlns}) -> Xmlns.
pp(feature_sm, 1) -> [xmlns];
pp(sm_enable, 3) -> [max, resume, xmlns];
pp(sm_enabled, 5) -> [id, location, max, resume, xmlns];
pp(sm_resume, 3) -> [h, previd, xmlns];
pp(sm_resumed, 3) -> [h, previd, xmlns];
pp(sm_r, 1) -> [xmlns];
pp(sm_a, 2) -> [h, xmlns];
pp(sm_failed, 4) -> [reason, text, h, xmlns];
pp(_, _) -> no.
records() ->
[{feature_sm, 1},
{sm_enable, 3},
{sm_enabled, 5},
{sm_resume, 3},
{sm_resumed, 3},
{sm_r, 1},
{sm_a, 2},
{sm_failed, 4}].
dec_bool(<<"false">>) -> false;
dec_bool(<<"0">>) -> false;
dec_bool(<<"true">>) -> true;
dec_bool(<<"1">>) -> true.
dec_int(Val, Min, Max) ->
case erlang:binary_to_integer(Val) of
Int when Int =< Max, Min == infinity -> Int;
Int when Int =< Max, Int >= Min -> Int
end.
enc_bool(false) -> <<"false">>;
enc_bool(true) -> <<"true">>.
enc_int(Int) -> erlang:integer_to_binary(Int).
decode_sm_failed(__TopXMLNS, __Opts,
{xmlel, <<"failed">>, _attrs, _els}) ->
{Text, Reason} = decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
[],
undefined),
{H, Xmlns} = decode_sm_failed_attrs(__TopXMLNS,
_attrs,
undefined,
undefined),
{sm_failed, Reason, Text, H, Xmlns}.
decode_sm_failed_els(__TopXMLNS, __Opts, [], Text,
Reason) ->
{lists:reverse(Text), Reason};
decode_sm_failed_els(__TopXMLNS, __Opts,
[{xmlel, <<"text">>, _attrs, _} = _el | _els], Text,
Reason) ->
case xmpp_codec:get_attr(<<"xmlns">>,
_attrs,
__TopXMLNS)
of
<<"urn:ietf:params:xml:ns:xmpp-stanzas">> ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
[rfc6120:decode_error_text(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>,
__Opts,
_el)
| Text],
Reason);
_ ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
Reason)
end;
decode_sm_failed_els(__TopXMLNS, __Opts,
[{xmlel, <<"bad-request">>, _attrs, _} = _el | _els],
Text, Reason) ->
case xmpp_codec:get_attr(<<"xmlns">>,
_attrs,
__TopXMLNS)
of
<<"urn:ietf:params:xml:ns:xmpp-stanzas">> ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
rfc6120:decode_error_bad_request(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>,
__Opts,
_el));
_ ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
Reason)
end;
decode_sm_failed_els(__TopXMLNS, __Opts,
[{xmlel, <<"conflict">>, _attrs, _} = _el | _els], Text,
Reason) ->
case xmpp_codec:get_attr(<<"xmlns">>,
_attrs,
__TopXMLNS)
of
<<"urn:ietf:params:xml:ns:xmpp-stanzas">> ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
rfc6120:decode_error_conflict(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>,
__Opts,
_el));
_ ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
Reason)
end;
decode_sm_failed_els(__TopXMLNS, __Opts,
[{xmlel, <<"feature-not-implemented">>, _attrs, _} = _el
| _els],
Text, Reason) ->
case xmpp_codec:get_attr(<<"xmlns">>,
_attrs,
__TopXMLNS)
of
<<"urn:ietf:params:xml:ns:xmpp-stanzas">> ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
rfc6120:decode_error_feature_not_implemented(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>,
__Opts,
_el));
_ ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
Reason)
end;
decode_sm_failed_els(__TopXMLNS, __Opts,
[{xmlel, <<"forbidden">>, _attrs, _} = _el | _els],
Text, Reason) ->
case xmpp_codec:get_attr(<<"xmlns">>,
_attrs,
__TopXMLNS)
of
<<"urn:ietf:params:xml:ns:xmpp-stanzas">> ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
rfc6120:decode_error_forbidden(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>,
__Opts,
_el));
_ ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
Reason)
end;
decode_sm_failed_els(__TopXMLNS, __Opts,
[{xmlel, <<"gone">>, _attrs, _} = _el | _els], Text,
Reason) ->
case xmpp_codec:get_attr(<<"xmlns">>,
_attrs,
__TopXMLNS)
of
<<"urn:ietf:params:xml:ns:xmpp-stanzas">> ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
rfc6120:decode_error_gone(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>,
__Opts,
_el));
_ ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
Reason)
end;
decode_sm_failed_els(__TopXMLNS, __Opts,
[{xmlel, <<"internal-server-error">>, _attrs, _} = _el
| _els],
Text, Reason) ->
case xmpp_codec:get_attr(<<"xmlns">>,
_attrs,
__TopXMLNS)
of
<<"urn:ietf:params:xml:ns:xmpp-stanzas">> ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
rfc6120:decode_error_internal_server_error(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>,
__Opts,
_el));
_ ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
Reason)
end;
decode_sm_failed_els(__TopXMLNS, __Opts,
[{xmlel, <<"item-not-found">>, _attrs, _} = _el | _els],
Text, Reason) ->
case xmpp_codec:get_attr(<<"xmlns">>,
_attrs,
__TopXMLNS)
of
<<"urn:ietf:params:xml:ns:xmpp-stanzas">> ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
rfc6120:decode_error_item_not_found(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>,
__Opts,
_el));
_ ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
Reason)
end;
decode_sm_failed_els(__TopXMLNS, __Opts,
[{xmlel, <<"jid-malformed">>, _attrs, _} = _el | _els],
Text, Reason) ->
case xmpp_codec:get_attr(<<"xmlns">>,
_attrs,
__TopXMLNS)
of
<<"urn:ietf:params:xml:ns:xmpp-stanzas">> ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
rfc6120:decode_error_jid_malformed(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>,
__Opts,
_el));
_ ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
Reason)
end;
decode_sm_failed_els(__TopXMLNS, __Opts,
[{xmlel, <<"not-acceptable">>, _attrs, _} = _el | _els],
Text, Reason) ->
case xmpp_codec:get_attr(<<"xmlns">>,
_attrs,
__TopXMLNS)
of
<<"urn:ietf:params:xml:ns:xmpp-stanzas">> ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
rfc6120:decode_error_not_acceptable(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>,
__Opts,
_el));
_ ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
Reason)
end;
decode_sm_failed_els(__TopXMLNS, __Opts,
[{xmlel, <<"not-allowed">>, _attrs, _} = _el | _els],
Text, Reason) ->
case xmpp_codec:get_attr(<<"xmlns">>,
_attrs,
__TopXMLNS)
of
<<"urn:ietf:params:xml:ns:xmpp-stanzas">> ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
rfc6120:decode_error_not_allowed(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>,
__Opts,
_el));
_ ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
Reason)
end;
decode_sm_failed_els(__TopXMLNS, __Opts,
[{xmlel, <<"not-authorized">>, _attrs, _} = _el | _els],
Text, Reason) ->
case xmpp_codec:get_attr(<<"xmlns">>,
_attrs,
__TopXMLNS)
of
<<"urn:ietf:params:xml:ns:xmpp-stanzas">> ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
rfc6120:decode_error_not_authorized(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>,
__Opts,
_el));
_ ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
Reason)
end;
decode_sm_failed_els(__TopXMLNS, __Opts,
[{xmlel, <<"policy-violation">>, _attrs, _} = _el
| _els],
Text, Reason) ->
case xmpp_codec:get_attr(<<"xmlns">>,
_attrs,
__TopXMLNS)
of
<<"urn:ietf:params:xml:ns:xmpp-stanzas">> ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
rfc6120:decode_error_policy_violation(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>,
__Opts,
_el));
_ ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
Reason)
end;
decode_sm_failed_els(__TopXMLNS, __Opts,
[{xmlel, <<"recipient-unavailable">>, _attrs, _} = _el
| _els],
Text, Reason) ->
case xmpp_codec:get_attr(<<"xmlns">>,
_attrs,
__TopXMLNS)
of
<<"urn:ietf:params:xml:ns:xmpp-stanzas">> ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
rfc6120:decode_error_recipient_unavailable(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>,
__Opts,
_el));
_ ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
Reason)
end;
decode_sm_failed_els(__TopXMLNS, __Opts,
[{xmlel, <<"redirect">>, _attrs, _} = _el | _els], Text,
Reason) ->
case xmpp_codec:get_attr(<<"xmlns">>,
_attrs,
__TopXMLNS)
of
<<"urn:ietf:params:xml:ns:xmpp-stanzas">> ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
rfc6120:decode_error_redirect(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>,
__Opts,
_el));
_ ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
Reason)
end;
decode_sm_failed_els(__TopXMLNS, __Opts,
[{xmlel, <<"registration-required">>, _attrs, _} = _el
| _els],
Text, Reason) ->
case xmpp_codec:get_attr(<<"xmlns">>,
_attrs,
__TopXMLNS)
of
<<"urn:ietf:params:xml:ns:xmpp-stanzas">> ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
rfc6120:decode_error_registration_required(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>,
__Opts,
_el));
_ ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
Reason)
end;
decode_sm_failed_els(__TopXMLNS, __Opts,
[{xmlel, <<"remote-server-not-found">>, _attrs, _} = _el
| _els],
Text, Reason) ->
case xmpp_codec:get_attr(<<"xmlns">>,
_attrs,
__TopXMLNS)
of
<<"urn:ietf:params:xml:ns:xmpp-stanzas">> ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
rfc6120:decode_error_remote_server_not_found(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>,
__Opts,
_el));
_ ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
Reason)
end;
decode_sm_failed_els(__TopXMLNS, __Opts,
[{xmlel, <<"remote-server-timeout">>, _attrs, _} = _el
| _els],
Text, Reason) ->
case xmpp_codec:get_attr(<<"xmlns">>,
_attrs,
__TopXMLNS)
of
<<"urn:ietf:params:xml:ns:xmpp-stanzas">> ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
rfc6120:decode_error_remote_server_timeout(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>,
__Opts,
_el));
_ ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
Reason)
end;
decode_sm_failed_els(__TopXMLNS, __Opts,
[{xmlel, <<"resource-constraint">>, _attrs, _} = _el
| _els],
Text, Reason) ->
case xmpp_codec:get_attr(<<"xmlns">>,
_attrs,
__TopXMLNS)
of
<<"urn:ietf:params:xml:ns:xmpp-stanzas">> ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
rfc6120:decode_error_resource_constraint(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>,
__Opts,
_el));
_ ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
Reason)
end;
decode_sm_failed_els(__TopXMLNS, __Opts,
[{xmlel, <<"service-unavailable">>, _attrs, _} = _el
| _els],
Text, Reason) ->
case xmpp_codec:get_attr(<<"xmlns">>,
_attrs,
__TopXMLNS)
of
<<"urn:ietf:params:xml:ns:xmpp-stanzas">> ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
rfc6120:decode_error_service_unavailable(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>,
__Opts,
_el));
_ ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
Reason)
end;
decode_sm_failed_els(__TopXMLNS, __Opts,
[{xmlel, <<"subscription-required">>, _attrs, _} = _el
| _els],
Text, Reason) ->
case xmpp_codec:get_attr(<<"xmlns">>,
_attrs,
__TopXMLNS)
of
<<"urn:ietf:params:xml:ns:xmpp-stanzas">> ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
rfc6120:decode_error_subscription_required(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>,
__Opts,
_el));
_ ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
Reason)
end;
decode_sm_failed_els(__TopXMLNS, __Opts,
[{xmlel, <<"undefined-condition">>, _attrs, _} = _el
| _els],
Text, Reason) ->
case xmpp_codec:get_attr(<<"xmlns">>,
_attrs,
__TopXMLNS)
of
<<"urn:ietf:params:xml:ns:xmpp-stanzas">> ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
rfc6120:decode_error_undefined_condition(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>,
__Opts,
_el));
_ ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
Reason)
end;
decode_sm_failed_els(__TopXMLNS, __Opts,
[{xmlel, <<"unexpected-request">>, _attrs, _} = _el
| _els],
Text, Reason) ->
case xmpp_codec:get_attr(<<"xmlns">>,
_attrs,
__TopXMLNS)
of
<<"urn:ietf:params:xml:ns:xmpp-stanzas">> ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
rfc6120:decode_error_unexpected_request(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>,
__Opts,
_el));
_ ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
Reason)
end;
decode_sm_failed_els(__TopXMLNS, __Opts, [_ | _els],
Text, Reason) ->
decode_sm_failed_els(__TopXMLNS,
__Opts,
_els,
Text,
Reason).
decode_sm_failed_attrs(__TopXMLNS,
[{<<"h">>, _val} | _attrs], _H, Xmlns) ->
decode_sm_failed_attrs(__TopXMLNS, _attrs, _val, Xmlns);
decode_sm_failed_attrs(__TopXMLNS,
[{<<"xmlns">>, _val} | _attrs], H, _Xmlns) ->
decode_sm_failed_attrs(__TopXMLNS, _attrs, H, _val);
decode_sm_failed_attrs(__TopXMLNS, [_ | _attrs], H,
Xmlns) ->
decode_sm_failed_attrs(__TopXMLNS, _attrs, H, Xmlns);
decode_sm_failed_attrs(__TopXMLNS, [], H, Xmlns) ->
{decode_sm_failed_attr_h(__TopXMLNS, H),
decode_sm_failed_attr_xmlns(__TopXMLNS, Xmlns)}.
encode_sm_failed({sm_failed, Reason, Text, H, Xmlns},
__TopXMLNS) ->
__NewTopXMLNS = xmpp_codec:choose_top_xmlns(Xmlns,
[<<"urn:xmpp:sm:2">>,
<<"urn:xmpp:sm:3">>],
__TopXMLNS),
_els = lists:reverse('encode_sm_failed_$text'(Text,
__NewTopXMLNS,
'encode_sm_failed_$reason'(Reason,
__NewTopXMLNS,
[]))),
_attrs = encode_sm_failed_attr_h(H,
xmpp_codec:enc_xmlns_attrs(__NewTopXMLNS,
__TopXMLNS)),
{xmlel, <<"failed">>, _attrs, _els}.
'encode_sm_failed_$text'([], __TopXMLNS, _acc) -> _acc;
'encode_sm_failed_$text'([Text | _els], __TopXMLNS,
_acc) ->
'encode_sm_failed_$text'(_els,
__TopXMLNS,
[rfc6120:encode_error_text(Text, __TopXMLNS)
| _acc]).
'encode_sm_failed_$reason'(undefined, __TopXMLNS,
_acc) ->
_acc;
'encode_sm_failed_$reason'('bad-request' = Reason,
__TopXMLNS, _acc) ->
[rfc6120:encode_error_bad_request(Reason, __TopXMLNS)
| _acc];
'encode_sm_failed_$reason'(conflict = Reason,
__TopXMLNS, _acc) ->
[rfc6120:encode_error_conflict(Reason, __TopXMLNS)
| _acc];
'encode_sm_failed_$reason'('feature-not-implemented' =
Reason,
__TopXMLNS, _acc) ->
[rfc6120:encode_error_feature_not_implemented(Reason,
__TopXMLNS)
| _acc];
'encode_sm_failed_$reason'(forbidden = Reason,
__TopXMLNS, _acc) ->
[rfc6120:encode_error_forbidden(Reason, __TopXMLNS)
| _acc];
'encode_sm_failed_$reason'({gone, _} = Reason,
__TopXMLNS, _acc) ->
[rfc6120:encode_error_gone(Reason, __TopXMLNS) | _acc];
'encode_sm_failed_$reason'('internal-server-error' =
Reason,
__TopXMLNS, _acc) ->
[rfc6120:encode_error_internal_server_error(Reason,
__TopXMLNS)
| _acc];
'encode_sm_failed_$reason'('item-not-found' = Reason,
__TopXMLNS, _acc) ->
[rfc6120:encode_error_item_not_found(Reason, __TopXMLNS)
| _acc];
'encode_sm_failed_$reason'('jid-malformed' = Reason,
__TopXMLNS, _acc) ->
[rfc6120:encode_error_jid_malformed(Reason, __TopXMLNS)
| _acc];
'encode_sm_failed_$reason'('not-acceptable' = Reason,
__TopXMLNS, _acc) ->
[rfc6120:encode_error_not_acceptable(Reason, __TopXMLNS)
| _acc];
'encode_sm_failed_$reason'('not-allowed' = Reason,
__TopXMLNS, _acc) ->
[rfc6120:encode_error_not_allowed(Reason, __TopXMLNS)
| _acc];
'encode_sm_failed_$reason'('not-authorized' = Reason,
__TopXMLNS, _acc) ->
[rfc6120:encode_error_not_authorized(Reason, __TopXMLNS)
| _acc];
'encode_sm_failed_$reason'('policy-violation' = Reason,
__TopXMLNS, _acc) ->
[rfc6120:encode_error_policy_violation(Reason,
__TopXMLNS)
| _acc];
'encode_sm_failed_$reason'('recipient-unavailable' =
Reason,
__TopXMLNS, _acc) ->
[rfc6120:encode_error_recipient_unavailable(Reason,
__TopXMLNS)
| _acc];
'encode_sm_failed_$reason'({redirect, _} = Reason,
__TopXMLNS, _acc) ->
[rfc6120:encode_error_redirect(Reason, __TopXMLNS)
| _acc];
'encode_sm_failed_$reason'('registration-required' =
Reason,
__TopXMLNS, _acc) ->
[rfc6120:encode_error_registration_required(Reason,
__TopXMLNS)
| _acc];
'encode_sm_failed_$reason'('remote-server-not-found' =
Reason,
__TopXMLNS, _acc) ->
[rfc6120:encode_error_remote_server_not_found(Reason,
__TopXMLNS)
| _acc];
'encode_sm_failed_$reason'('remote-server-timeout' =
Reason,
__TopXMLNS, _acc) ->
[rfc6120:encode_error_remote_server_timeout(Reason,
__TopXMLNS)
| _acc];
'encode_sm_failed_$reason'('resource-constraint' =
Reason,
__TopXMLNS, _acc) ->
[rfc6120:encode_error_resource_constraint(Reason,
__TopXMLNS)
| _acc];
'encode_sm_failed_$reason'('service-unavailable' =
Reason,
__TopXMLNS, _acc) ->
[rfc6120:encode_error_service_unavailable(Reason,
__TopXMLNS)
| _acc];
'encode_sm_failed_$reason'('subscription-required' =
Reason,
__TopXMLNS, _acc) ->
[rfc6120:encode_error_subscription_required(Reason,
__TopXMLNS)
| _acc];
'encode_sm_failed_$reason'('undefined-condition' =
Reason,
__TopXMLNS, _acc) ->
[rfc6120:encode_error_undefined_condition(Reason,
__TopXMLNS)
| _acc];
'encode_sm_failed_$reason'('unexpected-request' =
Reason,
__TopXMLNS, _acc) ->
[rfc6120:encode_error_unexpected_request(Reason,
__TopXMLNS)
| _acc].
decode_sm_failed_attr_h(__TopXMLNS, undefined) ->
undefined;
decode_sm_failed_attr_h(__TopXMLNS, _val) ->
case catch dec_int(_val, 0, infinity) of
{'EXIT', _} ->
erlang:error({xmpp_codec,
{bad_attr_value, <<"h">>, <<"failed">>, __TopXMLNS}});
_res -> _res
end.
encode_sm_failed_attr_h(undefined, _acc) -> _acc;
encode_sm_failed_attr_h(_val, _acc) ->
[{<<"h">>, enc_int(_val)} | _acc].
decode_sm_failed_attr_xmlns(__TopXMLNS, undefined) ->
<<>>;
decode_sm_failed_attr_xmlns(__TopXMLNS, _val) -> _val.
decode_sm_a(__TopXMLNS, __Opts,
{xmlel, <<"a">>, _attrs, _els}) ->
{H, Xmlns} = decode_sm_a_attrs(__TopXMLNS,
_attrs,
undefined,
undefined),
{sm_a, H, Xmlns}.
decode_sm_a_attrs(__TopXMLNS,
[{<<"h">>, _val} | _attrs], _H, Xmlns) ->
decode_sm_a_attrs(__TopXMLNS, _attrs, _val, Xmlns);
decode_sm_a_attrs(__TopXMLNS,
[{<<"xmlns">>, _val} | _attrs], H, _Xmlns) ->
decode_sm_a_attrs(__TopXMLNS, _attrs, H, _val);
decode_sm_a_attrs(__TopXMLNS, [_ | _attrs], H, Xmlns) ->
decode_sm_a_attrs(__TopXMLNS, _attrs, H, Xmlns);
decode_sm_a_attrs(__TopXMLNS, [], H, Xmlns) ->
{decode_sm_a_attr_h(__TopXMLNS, H),
decode_sm_a_attr_xmlns(__TopXMLNS, Xmlns)}.
encode_sm_a({sm_a, H, Xmlns}, __TopXMLNS) ->
__NewTopXMLNS = xmpp_codec:choose_top_xmlns(Xmlns,
[<<"urn:xmpp:sm:2">>,
<<"urn:xmpp:sm:3">>],
__TopXMLNS),
_els = [],
_attrs = encode_sm_a_attr_h(H,
xmpp_codec:enc_xmlns_attrs(__NewTopXMLNS,
__TopXMLNS)),
{xmlel, <<"a">>, _attrs, _els}.
decode_sm_a_attr_h(__TopXMLNS, undefined) ->
erlang:error({xmpp_codec,
{missing_attr, <<"h">>, <<"a">>, __TopXMLNS}});
decode_sm_a_attr_h(__TopXMLNS, _val) ->
case catch dec_int(_val, 0, infinity) of
{'EXIT', _} ->
erlang:error({xmpp_codec,
{bad_attr_value, <<"h">>, <<"a">>, __TopXMLNS}});
_res -> _res
end.
encode_sm_a_attr_h(_val, _acc) ->
[{<<"h">>, enc_int(_val)} | _acc].
decode_sm_a_attr_xmlns(__TopXMLNS, undefined) -> <<>>;
decode_sm_a_attr_xmlns(__TopXMLNS, _val) -> _val.
decode_sm_r(__TopXMLNS, __Opts,
{xmlel, <<"r">>, _attrs, _els}) ->
Xmlns = decode_sm_r_attrs(__TopXMLNS,
_attrs,
undefined),
{sm_r, Xmlns}.
decode_sm_r_attrs(__TopXMLNS,
[{<<"xmlns">>, _val} | _attrs], _Xmlns) ->
decode_sm_r_attrs(__TopXMLNS, _attrs, _val);
decode_sm_r_attrs(__TopXMLNS, [_ | _attrs], Xmlns) ->
decode_sm_r_attrs(__TopXMLNS, _attrs, Xmlns);
decode_sm_r_attrs(__TopXMLNS, [], Xmlns) ->
decode_sm_r_attr_xmlns(__TopXMLNS, Xmlns).
encode_sm_r({sm_r, Xmlns}, __TopXMLNS) ->
__NewTopXMLNS = xmpp_codec:choose_top_xmlns(Xmlns,
[<<"urn:xmpp:sm:2">>,
<<"urn:xmpp:sm:3">>],
__TopXMLNS),
_els = [],
_attrs = xmpp_codec:enc_xmlns_attrs(__NewTopXMLNS,
__TopXMLNS),
{xmlel, <<"r">>, _attrs, _els}.
decode_sm_r_attr_xmlns(__TopXMLNS, undefined) -> <<>>;
decode_sm_r_attr_xmlns(__TopXMLNS, _val) -> _val.
decode_sm_resumed(__TopXMLNS, __Opts,
{xmlel, <<"resumed">>, _attrs, _els}) ->
{H, Xmlns, Previd} = decode_sm_resumed_attrs(__TopXMLNS,
_attrs,
undefined,
undefined,
undefined),
{sm_resumed, H, Previd, Xmlns}.
decode_sm_resumed_attrs(__TopXMLNS,
[{<<"h">>, _val} | _attrs], _H, Xmlns, Previd) ->
decode_sm_resumed_attrs(__TopXMLNS,
_attrs,
_val,
Xmlns,
Previd);
decode_sm_resumed_attrs(__TopXMLNS,
[{<<"xmlns">>, _val} | _attrs], H, _Xmlns, Previd) ->
decode_sm_resumed_attrs(__TopXMLNS,
_attrs,
H,
_val,
Previd);
decode_sm_resumed_attrs(__TopXMLNS,
[{<<"previd">>, _val} | _attrs], H, Xmlns, _Previd) ->
decode_sm_resumed_attrs(__TopXMLNS,
_attrs,
H,
Xmlns,
_val);
decode_sm_resumed_attrs(__TopXMLNS, [_ | _attrs], H,
Xmlns, Previd) ->
decode_sm_resumed_attrs(__TopXMLNS,
_attrs,
H,
Xmlns,
Previd);
decode_sm_resumed_attrs(__TopXMLNS, [], H, Xmlns,
Previd) ->
{decode_sm_resumed_attr_h(__TopXMLNS, H),
decode_sm_resumed_attr_xmlns(__TopXMLNS, Xmlns),
decode_sm_resumed_attr_previd(__TopXMLNS, Previd)}.
encode_sm_resumed({sm_resumed, H, Previd, Xmlns},
__TopXMLNS) ->
__NewTopXMLNS = xmpp_codec:choose_top_xmlns(Xmlns,
[<<"urn:xmpp:sm:2">>,
<<"urn:xmpp:sm:3">>],
__TopXMLNS),
_els = [],
_attrs = encode_sm_resumed_attr_previd(Previd,
encode_sm_resumed_attr_h(H,
xmpp_codec:enc_xmlns_attrs(__NewTopXMLNS,
__TopXMLNS))),
{xmlel, <<"resumed">>, _attrs, _els}.
decode_sm_resumed_attr_h(__TopXMLNS, undefined) ->
erlang:error({xmpp_codec,
{missing_attr, <<"h">>, <<"resumed">>, __TopXMLNS}});
decode_sm_resumed_attr_h(__TopXMLNS, _val) ->
case catch dec_int(_val, 0, infinity) of
{'EXIT', _} ->
erlang:error({xmpp_codec,
{bad_attr_value,
<<"h">>,
<<"resumed">>,
__TopXMLNS}});
_res -> _res
end.
encode_sm_resumed_attr_h(_val, _acc) ->
[{<<"h">>, enc_int(_val)} | _acc].
decode_sm_resumed_attr_xmlns(__TopXMLNS, undefined) ->
<<>>;
decode_sm_resumed_attr_xmlns(__TopXMLNS, _val) -> _val.
decode_sm_resumed_attr_previd(__TopXMLNS, undefined) ->
erlang:error({xmpp_codec,
{missing_attr,
<<"previd">>,
<<"resumed">>,
__TopXMLNS}});
decode_sm_resumed_attr_previd(__TopXMLNS, _val) -> _val.
encode_sm_resumed_attr_previd(_val, _acc) ->
[{<<"previd">>, _val} | _acc].
decode_sm_resume(__TopXMLNS, __Opts,
{xmlel, <<"resume">>, _attrs, _els}) ->
{H, Xmlns, Previd} = decode_sm_resume_attrs(__TopXMLNS,
_attrs,
undefined,
undefined,
undefined),
{sm_resume, H, Previd, Xmlns}.
decode_sm_resume_attrs(__TopXMLNS,
[{<<"h">>, _val} | _attrs], _H, Xmlns, Previd) ->
decode_sm_resume_attrs(__TopXMLNS,
_attrs,
_val,
Xmlns,
Previd);
decode_sm_resume_attrs(__TopXMLNS,
[{<<"xmlns">>, _val} | _attrs], H, _Xmlns, Previd) ->
decode_sm_resume_attrs(__TopXMLNS,
_attrs,
H,
_val,
Previd);
decode_sm_resume_attrs(__TopXMLNS,
[{<<"previd">>, _val} | _attrs], H, Xmlns, _Previd) ->
decode_sm_resume_attrs(__TopXMLNS,
_attrs,
H,
Xmlns,
_val);
decode_sm_resume_attrs(__TopXMLNS, [_ | _attrs], H,
Xmlns, Previd) ->
decode_sm_resume_attrs(__TopXMLNS,
_attrs,
H,
Xmlns,
Previd);
decode_sm_resume_attrs(__TopXMLNS, [], H, Xmlns,
Previd) ->
{decode_sm_resume_attr_h(__TopXMLNS, H),
decode_sm_resume_attr_xmlns(__TopXMLNS, Xmlns),
decode_sm_resume_attr_previd(__TopXMLNS, Previd)}.
encode_sm_resume({sm_resume, H, Previd, Xmlns},
__TopXMLNS) ->
__NewTopXMLNS = xmpp_codec:choose_top_xmlns(Xmlns,
[<<"urn:xmpp:sm:2">>,
<<"urn:xmpp:sm:3">>],
__TopXMLNS),
_els = [],
_attrs = encode_sm_resume_attr_previd(Previd,
encode_sm_resume_attr_h(H,
xmpp_codec:enc_xmlns_attrs(__NewTopXMLNS,
__TopXMLNS))),
{xmlel, <<"resume">>, _attrs, _els}.
decode_sm_resume_attr_h(__TopXMLNS, undefined) ->
erlang:error({xmpp_codec,
{missing_attr, <<"h">>, <<"resume">>, __TopXMLNS}});
decode_sm_resume_attr_h(__TopXMLNS, _val) ->
case catch dec_int(_val, 0, infinity) of
{'EXIT', _} ->
erlang:error({xmpp_codec,
{bad_attr_value, <<"h">>, <<"resume">>, __TopXMLNS}});
_res -> _res
end.
encode_sm_resume_attr_h(_val, _acc) ->
[{<<"h">>, enc_int(_val)} | _acc].
decode_sm_resume_attr_xmlns(__TopXMLNS, undefined) ->
<<>>;
decode_sm_resume_attr_xmlns(__TopXMLNS, _val) -> _val.
decode_sm_resume_attr_previd(__TopXMLNS, undefined) ->
erlang:error({xmpp_codec,
{missing_attr,
<<"previd">>,
<<"resume">>,
__TopXMLNS}});
decode_sm_resume_attr_previd(__TopXMLNS, _val) -> _val.
encode_sm_resume_attr_previd(_val, _acc) ->
[{<<"previd">>, _val} | _acc].
decode_sm_enabled(__TopXMLNS, __Opts,
{xmlel, <<"enabled">>, _attrs, _els}) ->
{Id, Location, Xmlns, Max, Resume} =
decode_sm_enabled_attrs(__TopXMLNS,
_attrs,
undefined,
undefined,
undefined,
undefined,
undefined),
{sm_enabled, Id, Location, Max, Resume, Xmlns}.
decode_sm_enabled_attrs(__TopXMLNS,
[{<<"id">>, _val} | _attrs], _Id, Location, Xmlns, Max,
Resume) ->
decode_sm_enabled_attrs(__TopXMLNS,
_attrs,
_val,
Location,
Xmlns,
Max,
Resume);
decode_sm_enabled_attrs(__TopXMLNS,
[{<<"location">>, _val} | _attrs], Id, _Location, Xmlns,
Max, Resume) ->
decode_sm_enabled_attrs(__TopXMLNS,
_attrs,
Id,
_val,
Xmlns,
Max,
Resume);
decode_sm_enabled_attrs(__TopXMLNS,
[{<<"xmlns">>, _val} | _attrs], Id, Location, _Xmlns,
Max, Resume) ->
decode_sm_enabled_attrs(__TopXMLNS,
_attrs,
Id,
Location,
_val,
Max,
Resume);
decode_sm_enabled_attrs(__TopXMLNS,
[{<<"max">>, _val} | _attrs], Id, Location, Xmlns, _Max,
Resume) ->
decode_sm_enabled_attrs(__TopXMLNS,
_attrs,
Id,
Location,
Xmlns,
_val,
Resume);
decode_sm_enabled_attrs(__TopXMLNS,
[{<<"resume">>, _val} | _attrs], Id, Location, Xmlns,
Max, _Resume) ->
decode_sm_enabled_attrs(__TopXMLNS,
_attrs,
Id,
Location,
Xmlns,
Max,
_val);
decode_sm_enabled_attrs(__TopXMLNS, [_ | _attrs], Id,
Location, Xmlns, Max, Resume) ->
decode_sm_enabled_attrs(__TopXMLNS,
_attrs,
Id,
Location,
Xmlns,
Max,
Resume);
decode_sm_enabled_attrs(__TopXMLNS, [], Id, Location,
Xmlns, Max, Resume) ->
{decode_sm_enabled_attr_id(__TopXMLNS, Id),
decode_sm_enabled_attr_location(__TopXMLNS, Location),
decode_sm_enabled_attr_xmlns(__TopXMLNS, Xmlns),
decode_sm_enabled_attr_max(__TopXMLNS, Max),
decode_sm_enabled_attr_resume(__TopXMLNS, Resume)}.
encode_sm_enabled({sm_enabled,
Id,
Location,
Max,
Resume,
Xmlns},
__TopXMLNS) ->
__NewTopXMLNS = xmpp_codec:choose_top_xmlns(Xmlns,
[<<"urn:xmpp:sm:2">>,
<<"urn:xmpp:sm:3">>],
__TopXMLNS),
_els = [],
_attrs = encode_sm_enabled_attr_resume(Resume,
encode_sm_enabled_attr_max(Max,
encode_sm_enabled_attr_location(Location,
encode_sm_enabled_attr_id(Id,
xmpp_codec:enc_xmlns_attrs(__NewTopXMLNS,
__TopXMLNS))))),
{xmlel, <<"enabled">>, _attrs, _els}.
decode_sm_enabled_attr_id(__TopXMLNS, undefined) ->
<<>>;
decode_sm_enabled_attr_id(__TopXMLNS, _val) -> _val.
encode_sm_enabled_attr_id(<<>>, _acc) -> _acc;
encode_sm_enabled_attr_id(_val, _acc) ->
[{<<"id">>, _val} | _acc].
decode_sm_enabled_attr_location(__TopXMLNS,
undefined) ->
<<>>;
decode_sm_enabled_attr_location(__TopXMLNS, _val) ->
_val.
encode_sm_enabled_attr_location(<<>>, _acc) -> _acc;
encode_sm_enabled_attr_location(_val, _acc) ->
[{<<"location">>, _val} | _acc].
decode_sm_enabled_attr_xmlns(__TopXMLNS, undefined) ->
<<>>;
decode_sm_enabled_attr_xmlns(__TopXMLNS, _val) -> _val.
decode_sm_enabled_attr_max(__TopXMLNS, undefined) ->
undefined;
decode_sm_enabled_attr_max(__TopXMLNS, _val) ->
case catch dec_int(_val, 0, infinity) of
{'EXIT', _} ->
erlang:error({xmpp_codec,
{bad_attr_value,
<<"max">>,
<<"enabled">>,
__TopXMLNS}});
_res -> _res
end.
encode_sm_enabled_attr_max(undefined, _acc) -> _acc;
encode_sm_enabled_attr_max(_val, _acc) ->
[{<<"max">>, enc_int(_val)} | _acc].
decode_sm_enabled_attr_resume(__TopXMLNS, undefined) ->
false;
decode_sm_enabled_attr_resume(__TopXMLNS, _val) ->
case catch dec_bool(_val) of
{'EXIT', _} ->
erlang:error({xmpp_codec,
{bad_attr_value,
<<"resume">>,
<<"enabled">>,
__TopXMLNS}});
_res -> _res
end.
encode_sm_enabled_attr_resume(false, _acc) -> _acc;
encode_sm_enabled_attr_resume(_val, _acc) ->
[{<<"resume">>, enc_bool(_val)} | _acc].
decode_sm_enable(__TopXMLNS, __Opts,
{xmlel, <<"enable">>, _attrs, _els}) ->
{Max, Xmlns, Resume} =
decode_sm_enable_attrs(__TopXMLNS,
_attrs,
undefined,
undefined,
undefined),
{sm_enable, Max, Resume, Xmlns}.
decode_sm_enable_attrs(__TopXMLNS,
[{<<"max">>, _val} | _attrs], _Max, Xmlns, Resume) ->
decode_sm_enable_attrs(__TopXMLNS,
_attrs,
_val,
Xmlns,
Resume);
decode_sm_enable_attrs(__TopXMLNS,
[{<<"xmlns">>, _val} | _attrs], Max, _Xmlns, Resume) ->
decode_sm_enable_attrs(__TopXMLNS,
_attrs,
Max,
_val,
Resume);
decode_sm_enable_attrs(__TopXMLNS,
[{<<"resume">>, _val} | _attrs], Max, Xmlns, _Resume) ->
decode_sm_enable_attrs(__TopXMLNS,
_attrs,
Max,
Xmlns,
_val);
decode_sm_enable_attrs(__TopXMLNS, [_ | _attrs], Max,
Xmlns, Resume) ->
decode_sm_enable_attrs(__TopXMLNS,
_attrs,
Max,
Xmlns,
Resume);
decode_sm_enable_attrs(__TopXMLNS, [], Max, Xmlns,
Resume) ->
{decode_sm_enable_attr_max(__TopXMLNS, Max),
decode_sm_enable_attr_xmlns(__TopXMLNS, Xmlns),
decode_sm_enable_attr_resume(__TopXMLNS, Resume)}.
encode_sm_enable({sm_enable, Max, Resume, Xmlns},
__TopXMLNS) ->
__NewTopXMLNS = xmpp_codec:choose_top_xmlns(Xmlns,
[<<"urn:xmpp:sm:2">>,
<<"urn:xmpp:sm:3">>],
__TopXMLNS),
_els = [],
_attrs = encode_sm_enable_attr_resume(Resume,
encode_sm_enable_attr_max(Max,
xmpp_codec:enc_xmlns_attrs(__NewTopXMLNS,
__TopXMLNS))),
{xmlel, <<"enable">>, _attrs, _els}.
decode_sm_enable_attr_max(__TopXMLNS, undefined) ->
undefined;
decode_sm_enable_attr_max(__TopXMLNS, _val) ->
case catch dec_int(_val, 0, infinity) of
{'EXIT', _} ->
erlang:error({xmpp_codec,
{bad_attr_value,
<<"max">>,
<<"enable">>,
__TopXMLNS}});
_res -> _res
end.
encode_sm_enable_attr_max(undefined, _acc) -> _acc;
encode_sm_enable_attr_max(_val, _acc) ->
[{<<"max">>, enc_int(_val)} | _acc].
decode_sm_enable_attr_xmlns(__TopXMLNS, undefined) ->
<<>>;
decode_sm_enable_attr_xmlns(__TopXMLNS, _val) -> _val.
decode_sm_enable_attr_resume(__TopXMLNS, undefined) ->
false;
decode_sm_enable_attr_resume(__TopXMLNS, _val) ->
case catch dec_bool(_val) of
{'EXIT', _} ->
erlang:error({xmpp_codec,
{bad_attr_value,
<<"resume">>,
<<"enable">>,
__TopXMLNS}});
_res -> _res
end.
encode_sm_enable_attr_resume(false, _acc) -> _acc;
encode_sm_enable_attr_resume(_val, _acc) ->
[{<<"resume">>, enc_bool(_val)} | _acc].
decode_feature_sm(__TopXMLNS, __Opts,
{xmlel, <<"sm">>, _attrs, _els}) ->
Xmlns = decode_feature_sm_attrs(__TopXMLNS,
_attrs,
undefined),
{feature_sm, Xmlns}.
decode_feature_sm_attrs(__TopXMLNS,
[{<<"xmlns">>, _val} | _attrs], _Xmlns) ->
decode_feature_sm_attrs(__TopXMLNS, _attrs, _val);
decode_feature_sm_attrs(__TopXMLNS, [_ | _attrs],
Xmlns) ->
decode_feature_sm_attrs(__TopXMLNS, _attrs, Xmlns);
decode_feature_sm_attrs(__TopXMLNS, [], Xmlns) ->
decode_feature_sm_attr_xmlns(__TopXMLNS, Xmlns).
encode_feature_sm({feature_sm, Xmlns}, __TopXMLNS) ->
__NewTopXMLNS = xmpp_codec:choose_top_xmlns(Xmlns,
[<<"urn:xmpp:sm:2">>,
<<"urn:xmpp:sm:3">>],
__TopXMLNS),
_els = [],
_attrs = xmpp_codec:enc_xmlns_attrs(__NewTopXMLNS,
__TopXMLNS),
{xmlel, <<"sm">>, _attrs, _els}.
decode_feature_sm_attr_xmlns(__TopXMLNS, undefined) ->
<<>>;
decode_feature_sm_attr_xmlns(__TopXMLNS, _val) -> _val.