Листинг 16.11. Файл спецификации XDR
//sunrpc/xdr1/data.x
1 enum result_t {
2 RESULT_INT = 1, RESULT_DOUBLE = 2
3 };
4 union union_arg switch (result_t result) {
5 case RESULT_INT:
6 int intval;
7 case RESULT_DOUBLE:
8 double doubleval;
9 default:
10 void;
11 };
12 struct data {
13 short short_arg;
14 long long_arg;
15 string vstring_arg<128>; /* строка переменной длины */
16 opaque fopaque_arg[3]; /* скрытые данные фиксированной длины */
17 opaque vopaque_arg<>; /* скрытые данные переменной длины */
18 short fshort_arg[4]; /* массив фиксированной длины */
19 long vlong_arg<>; /* массив переменной длины */
20 union_arg uarg;
21 };