source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/include/Priority.h @ 88

Last change on this file since 88 was 88, checked in by rosiere, 15 years ago

Almost complete design
with Test and test platform

  • Property svn:keywords set to Id
File size: 3.6 KB
Line 
1#ifndef morpheo_behavioural_generic_priority_Priority_h
2#define morpheo_behavioural_generic_priority_Priority_h
3
4/*
5 * $Id: Priority.h 88 2008-12-10 18:31:39Z rosiere $
6 *
7 * [ Description ]
8 *
9 */
10
11#include "Behavioural/Generic/Priority/include/Types.h"
12#include "Common/include/ToString.h"
13#include "Common/include/Debug.h"
14#include <list>
15#include <iostream>
16
17namespace morpheo {
18namespace behavioural {
19namespace generic {
20namespace priority {
21
22
23  class Priority
24  {
25    // -----[ fields ]----------------------------------------------------
26    // Parameters
27  protected: const std::string   _name          ;
28  private  : Tpriority_t         _priority      ;
29  private  : Tload_balancing_t   _load_balancing;
30  private  : uint32_t            _nb_grp        ;
31  private  : uint32_t          * _nb_elt        ;//[nb_grp]
32  private  : uint32_t            _nb_grp_select ;
33  private  : uint32_t            _max_nb_elt    ;
34
35  private  : void (morpheo::behavioural::generic::priority::Priority::*reset_priority           ) (void);
36  private  : void (morpheo::behavioural::generic::priority::Priority::*reset_load_balancing     ) (void);
37
38  private  : void (morpheo::behavioural::generic::priority::Priority::*transition_priority      ) (void);
39  private  : void (morpheo::behavioural::generic::priority::Priority::*transition_load_balancing) (void);
40
41  private  : uint32_t            reg_GRP_PRIORITY;
42  private  : std::list<select_t> _select;
43
44    // -----[ method ]----------------------------------------------------
45  public  :           Priority (std::string       name,
46                                Tpriority_t       priority      ,
47                                Tload_balancing_t load_balancing,
48                                uint32_t          nb_grp        ,
49                                uint32_t        * nb_elt        ,//[nb_grp]
50                                uint32_t          nb_grp_select
51                                );
52  public  :           Priority (std::string       name,
53                                Tpriority_t       priority      ,
54                                uint32_t          nb_grp        ,
55                                uint32_t          nb_grp_select
56                                );
57
58  public  :           Priority (std::string       name,
59                                Tpriority_t       priority      ,
60                                uint32_t          nb_grp       
61                                );
62
63  public  :          ~Priority (void);
64
65  public  : void     allocation                                     (void);
66  public  : void     deallocation                                   (void);
67                                               
68  public  : void     reset                                          (void);
69  public  : void     transition                                     (void);
70
71  public  : void     reset_priority_none                            (void);
72  public  : void     reset_priority_static                          (void);
73  public  : void     reset_priority_round_robin                     (void);
74
75  public  : void     reset_load_balancing_none                      (void);
76  public  : void     reset_load_balancing_priority_only             (void);
77  public  : void     reset_load_balancing_balance                   (void);
78  public  : void     reset_load_balancing_maximum_for_priority      (void);
79
80  public  : void     transition_priority_none                       (void);
81  public  : void     transition_priority_static                     (void);
82  public  : void     transition_priority_round_robin                (void);
83
84  public  : void     transition_load_balancing_none                 (void);
85  public  : void     transition_load_balancing_priority_only        (void);
86  public  : void     transition_load_balancing_balance              (void);
87  public  : void     transition_load_balancing_maximum_for_priority (void);
88
89  public  : std::list<select_t> * select (void);
90  };
91
92}; // end namespace priority
93}; // end namespace generic
94
95}; // end namespace behavioural
96}; // end namespace morpheo             
97
98#endif
Note: See TracBrowser for help on using the repository browser.