Skip to content
GitLab
Explorer
Connexion
Navigation principale
Rechercher ou aller à…
Projet
L
LOA_Taskmanager
Gestion
Activité
Membres
Programmation
Wiki externe
Code
Dépôt
Branches
Validations
Étiquettes
Graphe du dépôt
Comparer les révisions
Déploiement
Releases
Registre de conteneurs
Registre de modèles
Analyse
Analyse des contributeurs
Données d'analyse du dépôt
Expériences du modèle
Aide
Aide
Support
Documentation de GitLab
Comparer les forfaits GitLab
Forum de la communauté GitLab
Contribuer à GitLab
Donner votre avis
Raccourcis clavier
?
Extraits de code
Groupes
Projets
Afficher davantage de fils d'Ariane
Romain "Rom's" DERRÉ
LOA_Taskmanager
Validations
17460a94
Valider
17460a94
rédigé
Il y a 6 ans
par
Romain DERRE
Parcourir les fichiers
Options
Téléchargements
Correctifs
Plain Diff
ça ne lague plus !!!!!!!!!
parent
656fe443
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
Modifications
3
Afficher les modifications d'espaces
En ligne
Côte à côte
Affichage de
3 fichiers modifiés
app/controller.cpp
+4
-5
4 ajouts, 5 suppressions
app/controller.cpp
app/elementstablemodel.cpp
+62
-50
62 ajouts, 50 suppressions
app/elementstablemodel.cpp
app/elementstablemodel.h
+4
-4
4 ajouts, 4 suppressions
app/elementstablemodel.h
avec
70 ajouts
et
59 suppressions
app/controller.cpp
+
4
−
5
Voir le fichier @
17460a94
...
...
@@ -7,14 +7,12 @@ Controller::Controller(MainWindow *window) : eltCollection(), genStatus(), main(
eltCollection
.
insertColumns
(
0
,
8
);
//QThread* thread = QThread::create([this]{ eltCollection.update();});
//thread->start();
//QElapsedTimer t;
//t.start();
main
->
set_task
(
&
eltCollection
);
//qDebug() << "setModel : " << t.elapsed() << "milliseconds";
QTimer
*
timer
=
new
QTimer
();
timer
->
connect
(
timer
,
SIGNAL
(
timeout
()),
this
,
SLOT
(
update
()));
timer
->
start
(
5
000
);
timer
->
start
(
1
000
);
}
...
...
@@ -25,8 +23,9 @@ void Controller::update(){
main
->
set_task
(
&
elm
);
//QElapsedTimer timer;
//timer.start();
eltCollection
.
update
();
//qDebug() << "update : " << timer.elapsed() << "milliseconds";
//timer.start();
main
->
set_task
(
&
eltCollection
);
...
...
Ce diff est replié.
Cliquez pour l'agrandir.
app/elementstablemodel.cpp
+
62
−
50
Voir le fichier @
17460a94
...
...
@@ -38,7 +38,7 @@ int ElementsTableModel::rowCount(const QModelIndex &parent) const
if
(
parent
.
isValid
())
return
0
;
return
task
Map
.
size
();
return
task
Vector
.
size
();
// FIXME: Implement me!
}
...
...
@@ -67,26 +67,29 @@ QVariant ElementsTableModel::data(const QModelIndex &index, int role) const
//it += row;
//Task * task = it.value();
int
pid
=
pidVector
.
at
(
row
);
Task
task
=
taskMap
.
value
(
pid
);
//int pid = pidVector.at(row);
//Task task = taskMap.value(pid);
Task
*
task
=
taskVector
.
value
(
row
);
//qDebug() << task->print(" ");
switch
(
col
)
{
case
0
:
return
QVariant
(
task
.
getPID
());
return
QVariant
(
task
->
getPID
());
case
1
:
return
QVariant
(
task
.
get_name
());
return
QVariant
(
task
->
get_name
());
case
2
:
return
QVariant
(
task
.
get_status
());
return
QVariant
(
task
->
get_status
());
case
3
:
return
QVariant
(
task
.
getPPID
());
return
QVariant
(
task
->
getPPID
());
case
4
:
return
QVariant
(
task
.
getUser
());
return
QVariant
(
task
->
getUser
());
case
5
:
return
QVariant
(
QString
::
number
(
task
.
getCPU
())
+
"%"
);
return
QVariant
(
QString
::
number
(
task
->
getCPU
())
+
"%"
);
case
6
:
return
QVariant
(
QString
::
number
(
task
.
getMem
())
+
"%"
);
return
QVariant
(
QString
::
number
(
task
->
getMem
())
+
"%"
);
case
7
:
return
QVariant
(
task
.
getUtime_s
());
return
QVariant
(
task
->
getUtime_s
());
default:
break
;
...
...
@@ -98,20 +101,20 @@ QVariant ElementsTableModel::data(const QModelIndex &index, int role) const
void
ElementsTableModel
::
insertTask
(
Task
&
task
,
int
key
){
void
ElementsTableModel
::
insertTask
(
Task
*
task
){
beginInsertRows
(
QModelIndex
(),
rowCount
(),
rowCount
());
task
Map
.
insert
(
key
,
task
);
pidVector
.
append
(
key
);
//qDebug() << "insert " <<
key << ";" +
task
.
print(" ");
task
Vector
.
append
(
task
);
//
pidVector.append(key);
//qDebug() << "insert " << task
->
print(" ");
endInsertRows
();
}
void
ElementsTableModel
::
removeTask
(
int
key
){
int
row
=
pidVector
.
indexOf
(
key
);
beginRemoveRows
(
QModelIndex
(),
row
,
row
);
task
Map
.
remove
(
key
);
pidVector
.
remove
(
row
);
//qDebug() << "remove " <<
key
;
void
ElementsTableModel
::
removeTask
(
Task
*
task
){
//
int row = pidVector.indexOf(key);
beginRemoveRows
(
QModelIndex
(),
row
Count
(),
rowCount
()
);
task
Vector
.
remove
One
(
task
);
//
pidVector.remove(row);
//qDebug() << "remove " <<
task->print()
;
endRemoveRows
();
}
...
...
@@ -150,7 +153,7 @@ bool ElementsTableModel::removeColumns(int column, int count, const QModelIndex
void
ElementsTableModel
::
update
()
{
//
QElapsedTimer timer;
QElapsedTimer
timer
;
//timer.start();
system
(
"ls /proc | grep '[0-9]' > .listT"
);
//qDebug() << "write tasks list :" << timer.elapsed() << "milliseconds";
...
...
@@ -160,54 +163,63 @@ void ElementsTableModel::update()
}
QTextStream
in
(
&
task_list
);
//
timer.start();
timer
.
start
();
QMap
<
int
,
Task
>::
iterator
it
;
for
(
it
=
taskMap
.
begin
();
it
!=
taskMap
.
end
();
++
it
)
it
.
value
().
setExist
(
false
);
//QVector<Task*>::iterator it;
for
(
int
i
=
0
;
i
<
taskVector
.
size
();
++
i
)
{
taskVector
.
value
(
i
)
->
setExist
(
false
);
}
//qDebug() << "fold map :" << timer.elapsed() << "milliseconds";
int
pid
;
int
i
;
bool
stop
;
while
(
!
in
.
atEnd
())
{
pid
=
in
.
readLine
().
toInt
();
//qDebug() << pid;
//Task* test = find(pid);
QMap
<
int
,
Task
>::
iterator
it
=
taskMap
.
find
(
pid
);
//
QMap<int, Task>::iterator it = taskMap.find(pid);
//Task& test = it.value();
//
qDebug() << "search in map :" << timer.elapsed() << "milliseconds"
;
//qDebug() << test.print("|")
;
if
(
it
==
taskMap
.
end
())
//
QVector<Task*>::iterator it
;
i
=
0
;
stop
=
false
;
while
(
!
stop
&&
i
<
taskVector
.
size
())
{
//timer.start();
Task
t
(
pid
);
//qDebug() << "1 task created :" << timer.elapsed() << "milliseconds";
if
(
t
.
isExist
())
Task
*
temp
=
taskVector
.
value
(
i
);
if
(
temp
->
getPID
()
==
pid
)
{
temp
->
update
();
if
(
!
temp
->
isExist
())
{
//timer.start();
insert
Task
(
t
,
pid
);
//qDebug() << "1 task
insert
ed :" << timer.elapsed() << "milliseconds";
remove
Task
(
t
emp
);
//qDebug() << "1 task
remov
ed :" << timer.elapsed() << "milliseconds";
}
stop
=
true
;
}
++
i
;
}
else
if
(
!
stop
)
{
it
->
update
();
if
(
!
it
->
isExist
())
Task
*
t
=
new
Task
(
pid
);
if
(
t
->
isExist
())
{
//timer.start();
remove
Task
(
pid
);
//qDebug() << "1 task
remov
ed :" << timer.elapsed() << "milliseconds";
insert
Task
(
t
);
//qDebug() << "1 task
insert
ed :" << timer.elapsed() << "milliseconds";
}
}
//qDebug() << "search in map :" << timer.elapsed() << "milliseconds";
//qDebug() << test.print("|");
}
task_list
.
close
();
...
...
@@ -223,8 +235,8 @@ void ElementsTableModel::writeCSV(QFile file)
{
QTextStream
stream
(
&
file
);
stream
<<
"PID , name , status , PPID , user , CPU , memory , uptime"
<<
endl
;
foreach
(
Task
t
,
task
Map
)
{
stream
<<
t
.
print
(
" , "
)
<<
endl
;
foreach
(
Task
*
t
,
task
Vector
)
{
stream
<<
t
->
print
(
" , "
)
<<
endl
;
}
//for (QMap<int, Task>::const_iterator it = taskMap.cbegin() ; taskMap.cend() ; ++it)
...
...
Ce diff est replié.
Cliquez pour l'agrandir.
app/elementstablemodel.h
+
4
−
4
Voir le fichier @
17460a94
...
...
@@ -32,8 +32,8 @@ public:
QVariant
data
(
const
QModelIndex
&
index
,
int
role
=
Qt
::
DisplayRole
)
const
override
;
void
insertTask
(
Task
&
task
,
int
key
);
void
removeTask
(
int
key
);
void
insertTask
(
Task
*
task
);
void
removeTask
(
Task
*
task
);
// Add data:
...
...
@@ -48,8 +48,8 @@ public:
private:
QMap
<
int
,
Task
>
taskMap
;
QVector
<
int
>
pid
Vector
;
//
QMap<int, Task> taskMap;
QVector
<
Task
*>
task
Vector
;
QFile
task_list
;
QMutex
mutex
;
...
...
Ce diff est replié.
Cliquez pour l'agrandir.
Aperçu
0%
Chargement en cours
Veuillez réessayer
ou
joindre un nouveau fichier
.
Annuler
You are about to add
0
people
to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Enregistrer le commentaire
Annuler
Veuillez vous
inscrire
ou vous
se connecter
pour commenter