1 -ifndef(_lwes_internal_included
).
2 -define(_lwes_internal_included
, yup
).
4 -define (is_ttl (V
), is_integer(V
), V
>= 0, V
=< 32).
5 -define (is_int16 (V
), is_integer(V
), V
>= -32768, V
=< 32767).
6 -define (is_uint16 (V
), is_integer(V
), V
>= 0, V
=< 65535).
7 -define (is_int32 (V
), is_integer(V
), V
>= -2147483648, V
=< 2147483647).
8 -define (is_uint32 (V
), is_integer(V
), V
>= 0, V
=< 4294967295).
9 -define (is_int64 (V
), is_integer(V
), V
>= -9223372036854775808, V
=< 9223372036854775807).
10 -define (is_uint64 (V
), is_integer(V
), V
>= 0, V
=< 18446744073709551615).
11 -define (is_byte (V
), is_integer(V
), V
>= 0, V
=< 255).
12 -define (is_string (V
), is_list (V
); is_binary (V
); is_atom (V
)).
13 -define (is_ip_addr (V
),
15 tuple_size (V
) =:= 4 andalso
16 is_integer (element (1,V
)) andalso
17 element (1,V
) >= 0 andalso
18 element (1,V
) =< 255 andalso
19 is_integer (element (2,V
)) andalso
20 element (2,V
) >= 0 andalso
21 element (2,V
) =< 255 andalso
22 is_integer (element (3,V
)) andalso
23 element (3,V
) >= 0 andalso
24 element (3,V
) =< 255 andalso
25 is_integer (element (4,V
)) andalso
26 element (4,V
) >= 0 andalso
27 element (4,V
) =< 255)).
29 -record (lwes_channel
, { type
,
33 -record (lwes_multi_emitter
, {type
, max
, num
, configs
}).
35 -define (LWES_TYPE_U_INT_16
, 1).
36 -define (LWES_TYPE_INT_16
, 2).
37 -define (LWES_TYPE_U_INT_32
, 3).
38 -define (LWES_TYPE_INT_32
, 4).
39 -define (LWES_TYPE_STRING
, 5).
40 -define (LWES_TYPE_IP_ADDR
, 6).
41 -define (LWES_TYPE_INT_64
, 7).
42 -define (LWES_TYPE_U_INT_64
, 8).
43 -define (LWES_TYPE_BOOLEAN
, 9).
44 -define (LWES_TYPE_BYTE
, 10).
45 -define (LWES_TYPE_FLOAT
, 11).
46 -define (LWES_TYPE_DOUBLE
, 12).
47 -define (LWES_TYPE_LONG_STRING
, 13).
48 -define (LWES_TYPE_U_INT_16_ARRAY
, 129).
49 -define (LWES_TYPE_INT_16_ARRAY
, 130).
50 -define (LWES_TYPE_U_INT_32_ARRAY
, 131).
51 -define (LWES_TYPE_INT_32_ARRAY
, 132).
52 -define (LWES_TYPE_STRING_ARRAY
, 133).
53 -define (LWES_TYPE_IP_ADDR_ARRAY
, 134).
54 -define (LWES_TYPE_INT_64_ARRAY
, 135).
55 -define (LWES_TYPE_U_INT_64_ARRAY
, 136).
56 -define (LWES_TYPE_BOOLEAN_ARRAY
, 137).
57 -define (LWES_TYPE_BYTE_ARRAY
, 138).
58 -define (LWES_TYPE_FLOAT_ARRAY
, 139).
59 -define (LWES_TYPE_DOUBLE_ARRAY
, 140).
60 -define (LWES_TYPE_N_U_INT_16_ARRAY
, 141).
61 -define (LWES_TYPE_N_INT_16_ARRAY
, 142).
62 -define (LWES_TYPE_N_U_INT_32_ARRAY
, 143).
63 -define (LWES_TYPE_N_INT_32_ARRAY
, 144).
64 -define (LWES_TYPE_N_STRING_ARRAY
, 145).
65 % TODO: this is not implemented
66 % -define (LWES_TYPE_N_IP_ADDR_ARRAY, 146).
67 -define (LWES_TYPE_N_INT_64_ARRAY
, 147).
68 -define (LWES_TYPE_N_U_INT_64_ARRAY
, 148).
69 -define (LWES_TYPE_N_BOOLEAN_ARRAY
, 149).
70 -define (LWES_TYPE_N_BYTE_ARRAY
, 150).
71 -define (LWES_TYPE_N_FLOAT_ARRAY
, 151).
72 -define (LWES_TYPE_N_DOUBLE_ARRAY
, 152).