]> rtime.felk.cvut.cz Git - frescor/frsh.git/blob - frsh_api/tests/negotiation.c
Implemented contract cancellation
[frescor/frsh.git] / frsh_api / tests / negotiation.c
1 #include <frsh.h>
2 #include <error.h>
3 #include <res_dummy.h>
4
5 #define N 3
6
7 int b[N] = { 10, 20, 30 };
8
9 int main(int argc, char *argv[])
10 {
11         int ret;
12         frsh_contract_t contract[N];
13         frsh_vres_id_t vres[N];
14         frsh_rel_time_t budget, period, deadline;
15         frsh_signal_info_t si;
16         int i;
17
18         ret = frsh_init();
19         if (ret) PERROR_AND_EXIT(ret, "frsh_init");
20
21         /* Negotiate N contracts */
22         for (i=0; i<N; i++) {
23                 ret = frsh_contract_init(&contract[i]);
24                 if (ret) PERROR_AND_EXIT(ret, "frsh_contract_init");
25
26                 ret = frsh_contract_set_resource_and_label(
27                         &contract[i],
28                         DUMMY_RESOURCE_TYPE, DUMMY_RESOURCE_ID,
29                         NULL);
30                 if (ret) PERROR_AND_EXIT(ret, "frsh_contract_set_resource_and_label");
31
32                 budget = fosa_msec_to_rel_time(b[i]);
33                 period = fosa_msec_to_rel_time(100);
34                 period = fosa_msec_to_rel_time(50);
35                 ret = frsh_contract_set_basic_params(&contract[i],
36                                                      &budget,
37                                                      &period,
38                                                      FRSH_WT_BOUNDED,
39                                                      FRSH_CT_REGULAR);
40                 if (ret) PERROR_AND_EXIT(ret, "frsh_contract_set_basic_params");
41                 
42                 ret = frsh_contract_set_timing_reqs(&contract[i],
43                                                     false, &deadline,
44                                             0, si, 0, si);
45                 if (ret) PERROR_AND_EXIT(ret, "frsh_contract_set_timing_reqs");
46                 
47                 ret = frsh_contract_negotiate(&contract[i], &vres[i]);
48                 if (ret) PERROR_AND_EXIT(ret, "frsh_contract_negotiate");
49         }
50         /* Cancel N contracts */
51         for (i=0; i<N; i++) {
52                 ret = frsh_contract_cancel(vres[i]);
53                 if (ret) PERROR_AND_EXIT(ret, "frsh_contract_cancel");
54         }
55         return 0;
56 }