24 #define SC_INCLUDE_DYNAMIC_PROCESSES
30 #include "application_interface.h"
34 using namespace sc_core;
35 using namespace sc_dt;
48 int nbPassedDeadlines;
49 int nbMissedDeadlines;
50 int nbPassedDeadlinesOnHyperperiod;
51 int nbMissedDeadlinesOnHyperperiod;
53 sc_time achievedSimulationTime;
60 vector<pair<string, sc_time> > missed_deadlines;
61 vector<pair<string, sc_time> > missed_deadlines_last_hyperperiod;
65 static sc_time minimumSimulationTime;
66 static sc_time globalOffset;
67 static sc_time globalHyperperiod;
69 static sc_time userOffset;
70 static sc_time userHyperperiod;
71 static bool overrideOffset;
72 static bool overrideHyperperiod;
74 double minimalInstantQoS;
77 Application(
string _name,
string _prefix,
int _instanceID,
double qos,
int start,
int stop) : name(_name), prefix(_prefix), instanceID(_instanceID), qosFactor(qos), firstTaskID(start), lastTaskID(stop) {
78 nbPassedDeadlines = 0;
79 nbMissedDeadlines = 0;
80 nbPassedDeadlinesOnHyperperiod = 0;
81 nbMissedDeadlinesOnHyperperiod = 0;
82 offset = SC_ZERO_TIME;
83 hyperperiod = SC_ZERO_TIME;
87 minimalInstantQoS = 100.0;
95 bool containsTask(
int taskID);
103 double getAchievedQoS(
void);
104 double getMinimalQoS(
void);
106 string getFullModuleName(
string moduleName);
108 void incrementPassedDeadlines(
void);
109 void incrementMissedDeadlines(
string taskname);
111 void computeMinimumSimulationTime(vector<Manager_interface *>& table);
113 void setAchievedSimulationTime(sc_time t);
114 sc_time getAchievedSimulationTime(
void);
115 bool isSimulationTimeEnough(
void);
117 bool getStatus(
void);
118 void setStatus(
bool);
120 bool isQoSSatisfied(
void);
122 void checkQoSOnHyperperiod(
void);
126 vector<pair<string, sc_time> >& getMissedDeadlinesVector(
void);
127 bool hasMissedDeadlines(
void);
132 static sc_time getGlobalHypeperiod(
void);
133 static sc_time getGlobalOffset(
void);
134 static sc_time getMinimumSimulationTime(
void);
135 static void computeMinimumSimulationTime(vector<Application>&);
137 static void setOffset(sc_time);
138 static void setHyperperiod(sc_time);
141 sc_time getOffset(
void);
142 sc_time getHyperperiod(
void);
144 static void computeGlobalHypeperiod(vector<Application>&);
145 static void computeGlobalOffset(vector<Application>&);
Definition: application_interface.h:29
Definition: application.h:37