Current section

Files

Jump to
cttest src xep0261.erl
Raw

src/xep0261.erl

%% Created automatically by XML generator (fxml_gen.erl)
%% Source: xmpp_codec.spec
-module(xep0261).
-compile(export_all).
do_decode(<<"transport">>,
<<"urn:xmpp:jingle:transports:ibb:1">>, El, Opts) ->
decode_jingle_ibb_transport(<<"urn:xmpp:jingle:transports:ibb:1">>,
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() ->
[{<<"transport">>,
<<"urn:xmpp:jingle:transports:ibb:1">>}].
do_encode({jingle_ibb_transport, _, _, _} = Transport,
TopXMLNS) ->
encode_jingle_ibb_transport(Transport, TopXMLNS).
do_get_name({jingle_ibb_transport, _, _, _}) ->
<<"transport">>.
do_get_ns({jingle_ibb_transport, _, _, _}) ->
<<"urn:xmpp:jingle:transports:ibb:1">>.
pp(jingle_ibb_transport, 3) ->
[sid, 'block-size', stanza];
pp(_, _) -> no.
records() -> [{jingle_ibb_transport, 3}].
dec_enum(Val, Enums) ->
AtomVal = erlang:binary_to_existing_atom(Val, utf8),
case lists:member(AtomVal, Enums) of
true -> AtomVal
end.
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_enum(Atom) -> erlang:atom_to_binary(Atom, utf8).
enc_int(Int) -> erlang:integer_to_binary(Int).
decode_jingle_ibb_transport(__TopXMLNS, __Opts,
{xmlel, <<"transport">>, _attrs, _els}) ->
{Sid, Block_size, Stanza} =
decode_jingle_ibb_transport_attrs(__TopXMLNS,
_attrs,
undefined,
undefined,
undefined),
{jingle_ibb_transport, Sid, Block_size, Stanza}.
decode_jingle_ibb_transport_attrs(__TopXMLNS,
[{<<"sid">>, _val} | _attrs], _Sid,
Block_size, Stanza) ->
decode_jingle_ibb_transport_attrs(__TopXMLNS,
_attrs,
_val,
Block_size,
Stanza);
decode_jingle_ibb_transport_attrs(__TopXMLNS,
[{<<"block-size">>, _val} | _attrs], Sid,
_Block_size, Stanza) ->
decode_jingle_ibb_transport_attrs(__TopXMLNS,
_attrs,
Sid,
_val,
Stanza);
decode_jingle_ibb_transport_attrs(__TopXMLNS,
[{<<"stanza">>, _val} | _attrs], Sid,
Block_size, _Stanza) ->
decode_jingle_ibb_transport_attrs(__TopXMLNS,
_attrs,
Sid,
Block_size,
_val);
decode_jingle_ibb_transport_attrs(__TopXMLNS,
[_ | _attrs], Sid, Block_size, Stanza) ->
decode_jingle_ibb_transport_attrs(__TopXMLNS,
_attrs,
Sid,
Block_size,
Stanza);
decode_jingle_ibb_transport_attrs(__TopXMLNS, [], Sid,
Block_size, Stanza) ->
{decode_jingle_ibb_transport_attr_sid(__TopXMLNS, Sid),
'decode_jingle_ibb_transport_attr_block-size'(__TopXMLNS,
Block_size),
decode_jingle_ibb_transport_attr_stanza(__TopXMLNS,
Stanza)}.
encode_jingle_ibb_transport({jingle_ibb_transport,
Sid,
Block_size,
Stanza},
__TopXMLNS) ->
__NewTopXMLNS =
xmpp_codec:choose_top_xmlns(<<"urn:xmpp:jingle:transports:ibb:1">>,
[],
__TopXMLNS),
_els = [],
_attrs = encode_jingle_ibb_transport_attr_stanza(Stanza,
'encode_jingle_ibb_transport_attr_block-size'(Block_size,
encode_jingle_ibb_transport_attr_sid(Sid,
xmpp_codec:enc_xmlns_attrs(__NewTopXMLNS,
__TopXMLNS)))),
{xmlel, <<"transport">>, _attrs, _els}.
decode_jingle_ibb_transport_attr_sid(__TopXMLNS,
undefined) ->
erlang:error({xmpp_codec,
{missing_attr,
<<"sid">>,
<<"transport">>,
__TopXMLNS}});
decode_jingle_ibb_transport_attr_sid(__TopXMLNS,
_val) ->
_val.
encode_jingle_ibb_transport_attr_sid(_val, _acc) ->
[{<<"sid">>, _val} | _acc].
'decode_jingle_ibb_transport_attr_block-size'(__TopXMLNS,
undefined) ->
erlang:error({xmpp_codec,
{missing_attr,
<<"block-size">>,
<<"transport">>,
__TopXMLNS}});
'decode_jingle_ibb_transport_attr_block-size'(__TopXMLNS,
_val) ->
case catch dec_int(_val, 0, infinity) of
{'EXIT', _} ->
erlang:error({xmpp_codec,
{bad_attr_value,
<<"block-size">>,
<<"transport">>,
__TopXMLNS}});
_res -> _res
end.
'encode_jingle_ibb_transport_attr_block-size'(_val,
_acc) ->
[{<<"block-size">>, enc_int(_val)} | _acc].
decode_jingle_ibb_transport_attr_stanza(__TopXMLNS,
undefined) ->
iq;
decode_jingle_ibb_transport_attr_stanza(__TopXMLNS,
_val) ->
case catch dec_enum(_val, [iq, message]) of
{'EXIT', _} ->
erlang:error({xmpp_codec,
{bad_attr_value,
<<"stanza">>,
<<"transport">>,
__TopXMLNS}});
_res -> _res
end.
encode_jingle_ibb_transport_attr_stanza(iq, _acc) ->
_acc;
encode_jingle_ibb_transport_attr_stanza(_val, _acc) ->
[{<<"stanza">>, enc_enum(_val)} | _acc].