• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdenetwork API Reference
  • KDE Home
  • Contact Us
 

kget

  • sources
  • kde-4.12
  • kdenetwork
  • kget
  • core
jobqueue.cpp
Go to the documentation of this file.
1 /* This file is part of the KDE project
2 
3  Copyright (C) 2004 Dario Massarin <nekkar@libero.it>
4 
5  This program is free software; you can redistribute it and/or
6  modify it under the terms of the GNU General Public
7  License as published by the Free Software Foundation; either
8  version 2 of the License, or (at your option) any later version.
9 */
10 #include "core/jobqueue.h"
11 
12 #include "core/scheduler.h"
13 #include "settings.h"
14 
15 #include <kdebug.h>
16 
17 JobQueue::JobQueue(Scheduler * parent)
18  : QObject(parent),
19  m_maxSimultaneousJobs(2),
20  m_scheduler(parent),
21  m_status(Running)
22 {
23 }
24 
25 JobQueue::~JobQueue()
26 {
27 }
28 
29 const QList<Job *> JobQueue::runningJobs()
30 {
31  QList<Job *> jobs;
32 
33  iterator it = begin();
34  iterator itEnd = end();
35 
36  for( ; it!=itEnd ; ++it )
37  {
38  if( (*it)->status() == Job::Running )
39  jobs.append(*it);
40  }
41  return jobs;
42 }
43 
44 void JobQueue::setStatus(Status queueStatus)
45 {
46  m_status = queueStatus;
47 
48  // Now make sure to reset all the job policy that shouldn't
49  // be applied anymore.
50  iterator it = begin();
51  iterator itEnd = end();
52 
53  for( ; it!=itEnd ; ++it )
54  {
55  if( ( m_status == JobQueue::Running ) &&
56  ( (*it)->status() == Job::Running ) )
57  {
58  (*it)->setPolicy(Job::None);
59  }
60 
61  if( ( m_status == JobQueue::Stopped ) &&
62  ( (*it)->status() == Job::Stopped ) )
63  {
64  (*it)->setPolicy(Job::None);
65  }
66  }
67 
68  m_scheduler->jobQueueChangedEvent(this, m_status);
69 }
70 
71 int JobQueue::maxSimultaneousJobs() const
72 {
73  const int maxConnections = Settings::maxConnections();
74  return (maxConnections ? maxConnections : 1000);// High value just to indicate no limit
75 }
76 
77 void JobQueue::append(Job * job)
78 {
79  m_jobs.append(job);
80 
81  m_scheduler->jobQueueAddedJobEvent(this, job);
82 }
83 
84 void JobQueue::append(const QList<Job*> &jobs)
85 {
86  m_jobs.append(jobs);
87 
88  m_scheduler->jobQueueAddedJobsEvent(this, jobs);
89 }
90 
91 void JobQueue::prepend(Job * job)
92 {
93  m_jobs.prepend(job);
94 
95  m_scheduler->jobQueueAddedJobEvent(this, job);
96 }
97 
98 void JobQueue::insert(Job * job, Job * after)
99 {
100  if((job->jobQueue() == this) || ((after) && (after->jobQueue() != this)))
101  return;
102 
103  m_jobs.insert(m_jobs.indexOf(after) +1, job);
104  m_scheduler->jobQueueAddedJobEvent(this, job);
105 }
106 
107 void JobQueue::remove(Job * job)
108 {
109  m_jobs.removeAll(job);
110 
111  m_scheduler->jobQueueRemovedJobEvent(this, job);
112 }
113 
114 void JobQueue::remove(const QList<Job*> jobs)
115 {
116  foreach (Job *job, jobs) {
117  m_jobs.removeAll(job);
118  }
119 
120  m_scheduler->jobQueueRemovedJobsEvent(this, jobs);
121 }
122 
123 void JobQueue::move(Job * job, Job * after)
124 {
125  kDebug(5001) << "JobQueue::move";
126 
127  if( (m_jobs.removeAll(job) == 0) || (job == after) ||
128  ((after) && (after->jobQueue() != this)) )
129  {
130  //The job doesn't belong to this JobQueue or the requested
131  //operations doesn't make any sense since job==after
132  return;
133  }
134 
135  if(!after)
136  {
137  //The job must be inserted in front of the list
138  m_jobs.prepend(job);
139  }
140  else
141  {
142  m_jobs.insert(m_jobs.indexOf(after) + 1, job);
143  }
144 
145  m_scheduler->jobQueueMovedJobEvent(this, job);
146 }
147 
148 
JobQueue::runningJobs
const QList< Job * > runningJobs()
Definition: jobqueue.cpp:29
Scheduler
Scheduler class: what handle all the jobs in kget.
Definition: scheduler.h:32
Scheduler::jobQueueRemovedJobsEvent
virtual void jobQueueRemovedJobsEvent(JobQueue *queue, const QList< Job * > jobs)
Definition: scheduler.cpp:163
Scheduler::jobQueueChangedEvent
virtual void jobQueueChangedEvent(JobQueue *queue, JobQueue::Status status)
Definition: scheduler.cpp:117
Job
Definition: job.h:35
JobQueue::move
void move(Job *job, Job *after)
Moves a job in the queue.
Definition: jobqueue.cpp:123
JobQueue::Running
Definition: jobqueue.h:36
Scheduler::jobQueueAddedJobsEvent
virtual void jobQueueAddedJobsEvent(JobQueue *queue, const QList< Job * > jobs)
Definition: scheduler.cpp:148
QObject
JobQueue::Status
Status
Definition: jobqueue.h:36
scheduler.h
jobqueue.h
Job::Running
Definition: job.h:43
Scheduler::jobQueueMovedJobEvent
virtual void jobQueueMovedJobEvent(JobQueue *queue, Job *job)
Definition: scheduler.cpp:134
Job::jobQueue
JobQueue * jobQueue()
Definition: job.h:86
JobQueue::remove
void remove(Job *job)
removes a job from the current queue
Definition: jobqueue.cpp:107
JobQueue::begin
iterator begin()
Definition: jobqueue.h:57
Job::None
The scheduler shouldn't never start this job, even if if its queue is in a Running status...
Definition: job.h:62
Settings::maxConnections
static int maxConnections()
Get MaxConnections.
Definition: settings.h:601
JobQueue::insert
void insert(Job *job, Job *after)
inserts a job to the current queue after the given job
Definition: jobqueue.cpp:98
JobQueue::append
void append(Job *job)
appends a job to the current queue
Definition: jobqueue.cpp:77
Job::Stopped
The job is being executed.
Definition: job.h:44
JobQueue::Stopped
Definition: jobqueue.h:36
JobQueue::~JobQueue
virtual ~JobQueue()
Definition: jobqueue.cpp:25
JobQueue::JobQueue
JobQueue(Scheduler *parent)
Definition: jobqueue.cpp:17
settings.h
Scheduler::jobQueueAddedJobEvent
virtual void jobQueueAddedJobEvent(JobQueue *queue, Job *job)
Definition: scheduler.cpp:141
Scheduler::jobQueueRemovedJobEvent
virtual void jobQueueRemovedJobEvent(JobQueue *queue, Job *job)
Definition: scheduler.cpp:156
JobQueue::setStatus
virtual void setStatus(Status queueStatus)
Sets the JobQueue status.
Definition: jobqueue.cpp:44
JobQueue::end
iterator end()
Definition: jobqueue.h:62
JobQueue::maxSimultaneousJobs
int maxSimultaneousJobs() const
Definition: jobqueue.cpp:71
JobQueue::prepend
void prepend(Job *job)
prepends a job to the current queue
Definition: jobqueue.cpp:91
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:53:17 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kget

Skip menu "kget"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members

kdenetwork API Reference

Skip menu "kdenetwork API Reference"
  • kget
  • kopete
  •   kopete
  •   libkopete
  • krdc
  • krfb

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal