~ubuntu-branches/ubuntu/saucy/rabbitmq-server/saucy

« back to all changes in this revision

Viewing changes to src/rabbit_binary_parser.erl

  • Committer: Package Import Robot
  • Author(s): Emile Joubert
  • Date: 2012-11-19 11:42:31 UTC
  • mfrom: (0.2.18) (0.1.32 sid)
  • Revision ID: package-import@ubuntu.com-20121119114231-hvapkn4akng09etr
Tags: 3.0.0-1
New upstream release

Show diffs side-by-side

added added

removed removed

Lines of Context:
50
50
    {Type, Value, Rest} = parse_field_value(ValueAndRest),
51
51
    [{Type, Value} | parse_array(Rest)].
52
52
 
53
 
parse_field_value(<<"S", VLen:32/unsigned, ValueString:VLen/binary, Rest/binary>>) ->
54
 
    {longstr, ValueString, Rest};
55
 
 
56
 
parse_field_value(<<"I", Value:32/signed, Rest/binary>>) ->
57
 
    {signedint, Value, Rest};
58
 
 
59
 
parse_field_value(<<"D", Before:8/unsigned, After:32/unsigned, Rest/binary>>) ->
60
 
    {decimal, {Before, After}, Rest};
61
 
 
62
 
parse_field_value(<<"T", Value:64/unsigned, Rest/binary>>) ->
63
 
    {timestamp, Value, Rest};
64
 
 
65
 
parse_field_value(<<"F", VLen:32/unsigned, Table:VLen/binary, Rest/binary>>) ->
66
 
    {table, parse_table(Table), Rest};
67
 
 
68
 
parse_field_value(<<"A", VLen:32/unsigned, Array:VLen/binary, Rest/binary>>) ->
69
 
    {array, parse_array(Array), Rest};
70
 
 
71
 
parse_field_value(<<"b", Value:8/unsigned, Rest/binary>>) ->
72
 
    {byte, Value, Rest};
73
 
 
74
 
parse_field_value(<<"d", Value:64/float, Rest/binary>>) ->
75
 
    {double, Value, Rest};
76
 
 
77
 
parse_field_value(<<"f", Value:32/float, Rest/binary>>) ->
78
 
    {float, Value, Rest};
79
 
 
80
 
parse_field_value(<<"l", Value:64/signed, Rest/binary>>) ->
81
 
    {long, Value, Rest};
82
 
 
83
 
parse_field_value(<<"s", Value:16/signed, Rest/binary>>) ->
84
 
    {short, Value, Rest};
85
 
 
86
 
parse_field_value(<<"t", Value:8/unsigned, Rest/binary>>) ->
87
 
    {bool, (Value /= 0), Rest};
88
 
 
89
 
parse_field_value(<<"x", VLen:32/unsigned, ValueString:VLen/binary, Rest/binary>>) ->
90
 
    {binary, ValueString, Rest};
91
 
 
92
 
parse_field_value(<<"V", Rest/binary>>) ->
93
 
    {void, undefined, Rest}.
 
53
parse_field_value(<<"S", VLen:32/unsigned, V:VLen/binary, R/binary>>) ->
 
54
    {longstr, V, R};
 
55
 
 
56
parse_field_value(<<"I", V:32/signed, R/binary>>) ->
 
57
    {signedint, V, R};
 
58
 
 
59
parse_field_value(<<"D", Before:8/unsigned, After:32/unsigned, R/binary>>) ->
 
60
    {decimal, {Before, After}, R};
 
61
 
 
62
parse_field_value(<<"T", V:64/unsigned, R/binary>>) ->
 
63
    {timestamp, V, R};
 
64
 
 
65
parse_field_value(<<"F", VLen:32/unsigned, Table:VLen/binary, R/binary>>) ->
 
66
    {table, parse_table(Table), R};
 
67
 
 
68
parse_field_value(<<"A", VLen:32/unsigned, Array:VLen/binary, R/binary>>) ->
 
69
    {array, parse_array(Array), R};
 
70
 
 
71
parse_field_value(<<"b", V:8/unsigned, R/binary>>) -> {byte,        V, R};
 
72
parse_field_value(<<"d", V:64/float,   R/binary>>) -> {double,      V, R};
 
73
parse_field_value(<<"f", V:32/float,   R/binary>>) -> {float,       V, R};
 
74
parse_field_value(<<"l", V:64/signed,  R/binary>>) -> {long,        V, R};
 
75
parse_field_value(<<"s", V:16/signed,  R/binary>>) -> {short,       V, R};
 
76
parse_field_value(<<"t", V:8/unsigned, R/binary>>) -> {bool, (V /= 0), R};
 
77
 
 
78
parse_field_value(<<"x", VLen:32/unsigned, V:VLen/binary, R/binary>>) ->
 
79
    {binary, V, R};
 
80
 
 
81
parse_field_value(<<"V", R/binary>>) ->
 
82
    {void, undefined, R}.
94
83
 
95
84
ensure_content_decoded(Content = #content{properties = Props})
96
85
  when Props =/= none ->