haiku/headers/private/package/JobQueue.h
Oliver Tappe 35edda8f0b * more work on the package kit, repositories can now be added and
refreshed


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40280 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-24 20:48:03 +00:00

56 lines
880 B
C++

/*
* Copyright 2011, Haiku, Inc.
* Distributed under the terms of the MIT License.
*/
#ifndef _HAIKU__PACKAGE__JOB_QUEUE_H_
#define _HAIKU__PACKAGE__JOB_QUEUE_H_
#include <Locker.h>
#include <SupportDefs.h>
#include <package/Job.h>
namespace Haiku {
namespace Package {
namespace Private {
class JobQueue : public JobStateListener {
public:
JobQueue();
~JobQueue();
status_t AddJob(Job* job);
status_t RemoveJob(Job* job);
Job* Pop();
// JobStateListener
virtual void JobSucceeded(Job* job);
virtual void JobFailed(Job* job);
private:
struct JobPriorityLess;
class JobPriorityQueue;
private:
void _UpdateDependantJobsOf(Job* job);
BLocker fLock;
JobPriorityQueue* fQueuedJobs;
};
} // namespace Private
} // namespace Package
} // namespace Haiku
#endif // _HAIKU__PACKAGE__JOB_QUEUE_H_