]> rtime.felk.cvut.cz Git - frescor/frsh-include.git/blobdiff - frsh.h
Update transaction API
[frescor/frsh-include.git] / frsh.h
diff --git a/frsh.h b/frsh.h
index b8871070441b60c19b439997a09bcec4b37cba0c..f6347f3c058b49645f32a0afae06b0fd447cc2d2 100644 (file)
--- a/frsh.h
+++ b/frsh.h
 // -----------------------------------------------------------------------
-//   Copyright (C) 2005  Mälardalen University, SWEDEN
+//  Copyright (C) 2006 - 2009 FRESCOR consortium partners:
+//
+//    Universidad de Cantabria,              SPAIN
+//    University of York,                    UK
+//    Scuola Superiore Sant'Anna,            ITALY
+//    Kaiserslautern University,             GERMANY
+//    Univ. Politécnica  Valencia,           SPAIN
+//    Czech Technical University in Prague,  CZECH REPUBLIC
+//    ENEA                                   SWEDEN
+//    Thales Communication S.A.              FRANCE
+//    Visual Tools S.A.                      SPAIN
+//    Rapita Systems Ltd                     UK
+//    Evidence                               ITALY
+//
+//    See http://www.frescor.org for a link to partners' websites
+//
+//           FRESCOR project (FP6/2005/IST/5-034026) is funded
+//        in part by the European Union Sixth Framework Programme
+//        The European Union is not liable of any use that may be
+//        made of this code.
+//
+//
+//  based on previous work (FSF) done in the FIRST project
+//
+//   Copyright (C) 2005  Mälardalen University, SWEDEN
 //                       Scuola Superiore S.Anna, ITALY
 //                       Universidad de Cantabria, SPAIN
 //                       University of York, UK
 //
-//   FRSH API web pages: http://marte.unican.es/frsh/docs/
+//   FSF API web pages: http://marte.unican.es/fsf/docs
 //                      http://shark.sssup.it/contrib/first/docs/
 //
-//  This file is part of FRSH API
-//
-//  FRSH API is free software; you can  redistribute it and/or  modify
-//  it under the terms of  the GNU General Public License as published by
-//  the Free Software Foundation;  either  version 2, or (at  your option)
-//  any later version.
-//
-//  FRSH API  is distributed  in  the hope  that  it  will  be useful,  but
-//  WITHOUT  ANY  WARRANTY;     without  even the   implied   warranty  of
-//  MERCHANTABILITY  or  FITNESS FOR  A  PARTICULAR PURPOSE. See  the  GNU
-//  General Public License for more details.
+//   This file is part of FRSH (FRescor ScHeduler)
 //
-//  You should have  received a  copy of  the  GNU  General Public License
-//  distributed  with  FRSH API;  see file COPYING.   If not,  write to the
-//  Free Software  Foundation,  59 Temple Place  -  Suite 330,  Boston, MA
-//  02111-1307, USA.
+//  FRSH is free software; you can redistribute it and/or modify it
+//  under terms of the GNU General Public License as published by the
+//  Free Software Foundation; either version 2, or (at your option) any
+//  later version.  FRSH is distributed in the hope that it will be
+//  useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+//  of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+//  General Public License for more details. You should have received a
+//  copy of the GNU General Public License along with FRSH; see file
+//  COPYING. If not, write to the Free Software Foundation, 675 Mass Ave,
+//  Cambridge, MA 02139, USA.
 //
-//  As a special exception, if you include this header file into source
-//  files to be compiled, this header file does not by itself cause
-//  the resulting executable to be covered by the GNU General Public
-//  License.  This exception does not however invalidate any other
-//  reasons why the executable file might be covered by the GNU General
-//  Public License.
+//  As a special exception, including FRSH header files in a file,
+//  instantiating FRSH generics or templates, or linking other files
+//  with FRSH objects to produce an executable application, does not
+//  by itself cause the resulting executable application to be covered
+//  by the GNU General Public License. This exception does not
+//  however invalidate any other reasons why the executable file might be
+//  covered by the GNU Public License.
 // -----------------------------------------------------------------------
-//frsh.h
-//===========================================================
-//       FFFFFFIII   RRRRR      SSTTTTTTT
-//      FF         IIR   RR    SS
-//     FF           IR        SS
-//    FFFFFF         RRRR    SSSSST
-//   FF       FI       RRR  SS
-//  FF         II     RRR  SS
-// FF           IIIIIR    RS
+
+//==============================================
+//  ******** *******    ********  **      **
+//  **///// /**////**  **//////  /**     /**
+//  **      /**   /** /**        /**     /**
+//  ******* /*******  /********* /**********
+//  **////  /**///**  ////////** /**//////**
+//  **      /**  //**        /** /**     /**
+//  **      /**   //** ********  /**     /**
+//  //       //     // ////////   //      //
 //
-// FRSH(FIRST Scheduling Framework) available functionality
-//============================================================
+// FRSH(FRescor ScHeduler), pronounced "fresh"
+//==============================================
+#ifndef _FRSH_H_
+#define _FRSH_H_
+
+/**
+ * @file frsh.h
+ *
+ * Intended to be used by API clients to get the interface
+ * requirements.
+ *
+ * It is also used by the library files to enforce the interface
+ * headings.
+ *
+ * However it is NOT used by any of the FRSH include files to avoid
+ * having include deadlocks.
+ **/
+
+#include "fosa.h"
+
+#include "frsh_cpp_macros.h"
 
 #include "frsh_configuration_parameters.h"
-#include "frsh_opaque_types.h"
-#include "frsh_basic_types.h"
-#include "frsh_core.h"
-#include "frsh_implementation_specific.h"
 
+/* We include all the types because they are needed for the
+   frsh_contract_parameters_t */
 
+#include "frsh_core_types.h"
+#include "frsh_shared_objects_types.h"
+#include "frsh_spare_capacity_types.h"
+#include "frsh_hierarchical_types.h"
+#include "frsh_distributed_types.h"
+#include "frsh_implementation_specific_types.h"
 
-// Configure theses modules by commenting out the appropiate lines
+#include "frsh_core.h"
+#include "frsh_thread_attrs.h"
+#include "frsh_time.h"
+#include "frsh_implementation_specific.h"
+
+// Configure these modules by commenting out the appropiate lines
 
 #include "frsh_hierarchical.h"                 //
 #include "frsh_shared_objects.h"
 #include "frsh_dynamic_reclaiming.h"           //
 #include "frsh_spare_capacity.h"
 #include "frsh_distributed.h"                  //
-#include "frsh_distributed_spare_capacity.h"   //
+#include "frsh_feedback_control.h"
+#include "frsh_memory_management.h"
+#include "frsh_energy_management.h"
 
-#ifndef _FRSH_H_
-#define _FRSH_H_
+#include "frsh_debug_and_trace.h"
 
 #ifndef FRSH_HIERARCHICAL_MODULE_SUPPORTED
     #define FRSH_HIERARCHICAL_MODULE_SUPPORTED        0
     #define FRSH_SPARE_CAPACITY_MODULE_SUPPORTED      0
 
     //Return warnings if spare_capacity module is not included:
+
     #define frsh_set_contract_reclamation_parameters  \
       (contract, budget_max, period_min, granularity,\
        utilization_set, quality,  importance)        \
        ( FRSH_WRN_MODULE_NOT SUPPORTED )
-    
+
     #define frsh_get_contract_reclamation_parameters  \
       (contract, budget_max, period_min, granularity,\
        utilization_set, quality, importance)         \
        ( FRSH_WRN_MODULE_NOT SUPPORTED )
-   
+
     #define frsh_request_change_quality_and_importance\
       (server, new_importance, new_quality)          \
        ( FRSH_WRN_MODULE_NOT SUPPORTED )
-        
+
     #define frsh_get_total_quality (server,total_quality)\
        ( FRSH_WRN_MODULE_NOT SUPPORTED )
 
 #endif  //FRSH_SPARE_CAPACITY_MODULE_SUPPORTED
 
-#ifndef FRSH_DISTRIBUTED_MODULE_SUPPORTED
-    #define FRSH_DISTRIBUTED_MODULE_SUPPORTED 0
-#endif  //FRSH_DISTRIBUTED_MODULE_SUPPORTED
-
-#ifndef FRSH_DISTRIBUTED_SPARE_CAPACITY_MODULE_SUPPORTED
-    #define FRSH_DISTRIBUTED_SPARE_CAPACITY_MODULE_SUPPORTED 0
-   
-    //Return warnings if distributed_spare_capacity module is not included:
-
-    #define frsh_set_contract_granted_capacity_flag(contract,granted_capacity_flag)\
-       ( FRSH_WRN_MODULE_NOT SUPPORTED )
-    #define frsh_get_contract_granted_capacity_flag(contract,granted_capacity_flag)\
-       ( FRSH_WRN_MODULE_NOT SUPPORTED )
-   
-    #definr frsh_set_server_capacity(server,new_period,new_budget)\
-       ( FRSH_WRN_MODULE_NOT SUPPORTED )
-
-#endif  //FRSH_DISTRIBUTED_SPARE_CAPACITY_MODULE_SUPPORTED
-
+#include <frsh_transaction.h>
 
 #endif // _FRSH_H_