Use std::function in JobQueue.

This commit is contained in:
Tom Ritchford
2015-08-09 20:34:54 -04:00
committed by Nik Bougalis
parent 545b2fd6b1
commit a6f866b4d8
4 changed files with 15 additions and 16 deletions

View File

@@ -36,15 +36,11 @@ protected:
JobQueue (char const* name, Stoppable& parent);
public:
using JobFunction = std::function <void (Job&)>;
virtual ~JobQueue () { }
// VFALCO NOTE Using boost::function here because Visual Studio 2012
// std::function doesn't swallow return types.
//
// TODO Replace with std::function
//
virtual void addJob (JobType type,
std::string const& name, boost::function <void (Job&)> const& job) = 0;
virtual void addJob (
JobType, std::string const& name, JobFunction const&) = 0;
// Jobs waiting at this priority
virtual int getJobCount (JobType t) const = 0;

View File

@@ -115,8 +115,8 @@ public:
job_count = m_jobSet.size ();
}
void addJob (JobType type, std::string const& name,
boost::function <void (Job&)> const& jobFunc) override
void addJob (
JobType type, std::string const& name, JobFunction const& func) override
{
assert (type != jtINVALID);
@@ -166,7 +166,7 @@ public:
std::pair <std::set <Job>::iterator, bool> result (
m_jobSet.insert (Job (type, name, ++m_lastJob,
data.load (), jobFunc, m_cancelCallback)));
data.load (), func, m_cancelCallback)));
queueJob (*result.first, lock);
}
}