add a RequestJobBase base class for requests jobs
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
*/
|
||||
|
||||
/*
|
||||
* Copyright (c) 2012-2022, Tomasz Sowa
|
||||
* Copyright (c) 2012-2023, Tomasz Sowa
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -43,7 +43,7 @@
|
||||
#include "cur.h"
|
||||
#include "loadavg.h"
|
||||
#include "mounts.h"
|
||||
|
||||
#include "requestjobs/requestjobbase.h"
|
||||
|
||||
|
||||
namespace Winix
|
||||
@@ -84,6 +84,11 @@ public:
|
||||
void Add(long job_id, pt::Space & job, size_t priority = PRIORITY_DEFAULT);
|
||||
void Add(long job_id, Request * request, pt::Space & job, size_t priority = PRIORITY_DEFAULT);
|
||||
|
||||
/*
|
||||
* register a new request job worker
|
||||
*/
|
||||
void RegisterRequestJob(long job_id, RequestJobBase & request_job);
|
||||
|
||||
/*
|
||||
queue size, and size of all jobs in any priority
|
||||
*/
|
||||
@@ -107,9 +112,10 @@ private:
|
||||
Mounts * mounts;
|
||||
std::list<Request> * req_tab;
|
||||
|
||||
typedef std::queue<JobTask> JobsQueue;
|
||||
typedef std::queue<JobTask> JobsQueue;
|
||||
typedef std::vector<JobsQueue> JobsQueueTab;
|
||||
JobsQueueTab jobs_queue_tab;
|
||||
std::multimap<long, RequestJobBase*> request_jobs;
|
||||
|
||||
void CheckPriority(size_t & priority) const;
|
||||
void SaveToFile();
|
||||
@@ -132,6 +138,7 @@ private:
|
||||
void DoRequestContinuationJob(JobTask & job_task, size_t priority);
|
||||
void DoWinixJob(pt::Space & job);
|
||||
void RemoveOldRequest(Request * request);
|
||||
PluginRes DoRequestJobs(JobTask & task, long job_id, size_t priority);
|
||||
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user