]> rtime.felk.cvut.cz Git - frescor/fna.git/blob - src_frescan/frescan_bwres_requests.h
Unified header for FNA
[frescor/fna.git] / src_frescan / frescan_bwres_requests.h
1 /*!
2  * @file frescan_bwres_requests.h
3  *
4  * @brief FRESCAN bandwith reservation layer: requests
5  *
6  * This module contains the request type definition and queues. They are used
7  * to ask negotiation, renegotiation or cancel contracts.
8  *
9  * @version 0.01
10  *
11  * @date 1-Apr-2008
12  *
13  * @author Daniel Sangorrin <daniel.sangorrin@unican.es>
14  *
15  * @license
16  *
17 //----------------------------------------------------------------------
18 //  Copyright (C) 2006 - 2009 by the FRESCOR consortium:
19 //
20 //    Universidad de Cantabria,              SPAIN
21 //    University of York,                    UK
22 //    Scuola Superiore Sant'Anna,            ITALY
23 //    Kaiserslautern University,             GERMANY
24 //    Univ. Politecnica  Valencia,           SPAIN
25 //    Czech Technical University in Prague,  CZECH REPUBLIC
26 //    ENEA                                   SWEDEN
27 //    Thales Communication S.A.              FRANCE
28 //    Visual Tools S.A.                      SPAIN
29 //    Rapita Systems Ltd                     UK
30 //    Evidence                               ITALY
31 //
32 //    See http://www.frescor.org
33 //
34 //        The FRESCOR project (FP6/2005/IST/5-034026) is funded
35 //        in part by the European Union Sixth Framework Programme
36 //        The European Union is not liable of any use that may be
37 //        made of this code.
38 //
39 //
40 //  based on previous work (FSF) done in the FIRST project
41 //
42 //   Copyright (C) 2005  Mälardalen University, SWEDEN
43 //                       Scuola Superiore S.Anna, ITALY
44 //                       Universidad de Cantabria, SPAIN
45 //                       University of York, UK
46 //
47 // This file is part of FNA (Frescor Network Adaptation)
48 //
49 // FNA is free software; you can redistribute it and/or modify it
50 // under terms of the GNU General Public License as published by the
51 // Free Software Foundation; either version 2, or (at your option) any
52 // later version.  FNA is distributed in the hope that it will be
53 // useful, but WITHOUT ANY WARRANTY; without even the implied warranty
54 // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
55 // General Public License for more details. You should have received a
56 // copy of the GNU General Public License along with FNA; see file
57 // COPYING. If not, write to the Free Software Foundation, 675 Mass Ave,
58 // Cambridge, MA 02139, USA.
59 //
60 // As a special exception, including FNA header files in a file,
61 // instantiating FNA generics or templates, or linking other files
62 // with FNA objects to produce an executable application, does not
63 // by itself cause the resulting executable application to be covered
64 // by the GNU General Public License. This exception does not
65 // however invalidate any other reasons why the executable file might be
66 // covered by the GNU Public License.
67 // -----------------------------------------------------------------------
68  *
69  */
70
71 #ifndef _FRESCAN_BWRES_REQUESTS_H_
72 #define _FRESCAN_BWRES_REQUESTS_H_
73
74 #include "frescan_types.h"
75
76 extern int frescan_bwres_requests_init(int max_ceiling);
77 extern int frescan_bwres_requests_alloc(frescan_bwres_request_id_t *req);
78 extern int frescan_bwres_requests_free(frescan_bwres_request_id_t req);
79 extern int frescan_bwres_requests_enqueue(frescan_bwres_request_id_t req);
80 extern int frescan_bwres_requests_dequeue(frescan_bwres_request_id_t *req);
81
82 /**
83  * frescan_bwres_requests_get_data() - gets the data of the request
84  *
85  * @data: the data is obtained as a pointer an manipulated directly
86  *        accesing to the members of the structure. Note that this is
87  *        just an internal API so instead of using get/set functions we
88  *        will just access to the members of the struc directly
89  */
90
91 extern int frescan_bwres_requests_get_data(frescan_bwres_request_id_t   req,
92                                            frescan_bwres_request_data_t **data);
93
94 #endif // _FRESCAN_BWRES_REQUESTS_H_