salsa  0.3.0
 All Classes Functions Variables Enumerations Pages
Salsa::Job Class Reference

Job class. More...

#include <Job.hh>

Inheritance diagram for Salsa::Job:
Salsa::Object

Public Types

enum  QueueType {
  pending, assigned, running, done,
  failed, all
}
 Queue types.
 

Public Member Functions

 Job (std::string uuid="", std::string type="NONE")
 
virtual ~Job ()
 
void print () const
 
void json (Json::Value &json)
 
TaskInfo * nextJob ()
 TODO Get next available task?job? More...
 
void tasks (std::vector< TaskInfo * > &v, QueueType type, bool clear=true)
 
bool addTask (uint32_t id, TaskInfo *pJob, QueueType type)
 
bool moveTask (uint32_t id, QueueType from, QueueType to)
 
bool moveTask (uint32_t id, TaskInfo *pJI, QueueType from, QueueType to)
 
bool removeTask (uint32_t id, QueueType from)
 
size_t size (QueueType t=all) const
 
size_t sizeNotFinished () const
 
void consumer (std::string uuid)
 
std::string consumer () const
 
void feeder (std::string uuid)
 
std::string feeder () const
 
bool haveMoreTasks () const
 
void haveMoreTasks (bool hasMoreTasks)
 
bool isTaskInQueue (uint32_t id, QueueType type) const
 Check task presence in certain queue. More...
 

Static Public Member Functions

static std::shared_ptr
< spdlog::logger > 
getConsoleOutput ()
 Get console output.
 
static void setConsoleLevel (spdlog::level::level_enum level)
 Sets console log level.
 

Protected Attributes

std::map< uint32_t, TaskInfo * > mTasks [all] = {}
 Lists of jobs.
 
std::string mUUID = ""
 Job UUID.
 
std::string mConsumerUUID = ""
 Source (consumer) UUID.
 
std::string mFeederUUID = ""
 Feeder UUID.
 
std::string mType = "NONE"
 Job type.
 
bool mHaveMoreTasks = true
 Flag if we have more tasks.
 

Detailed Description

Constructor & Destructor Documentation

Salsa::Job::Job ( std::string  uuid = "",
std::string  type = "NONE" 
)

Constructor

Definition at line 3 of file Job.cc.

Salsa::Job::~Job ( )
virtual

Destructor

Definition at line 9 of file Job.cc.

References mTasks.

Member Function Documentation

bool Salsa::Job::addTask ( uint32_t  id,
TaskInfo *  pJob,
QueueType  type 
)

Adds job to list of jobs

Definition at line 25 of file Job.cc.

References mTasks.

Referenced by Salsa::NodeManager::addTask(), and moveTask().

void Salsa::Job::consumer ( std::string  uuid)

Sets consumer uuid

Definition at line 189 of file Job.cc.

References mConsumerUUID.

Referenced by Salsa::NodeManager::addTask(), Salsa::Feeder::onWhisper(), and Salsa::NodeManager::resultTask().

std::string Salsa::Job::consumer ( ) const

return consumer UUID

Definition at line 197 of file Job.cc.

References mConsumerUUID.

void Salsa::Job::feeder ( std::string  uuid)

Sets feeder uuid

Definition at line 205 of file Job.cc.

References mFeederUUID.

Referenced by Salsa::NodeManager::addTask(), Salsa::Feeder::onWhisper(), and Salsa::NodeManager::resultTask().

std::string Salsa::Job::feeder ( ) const

return feeder UUID

Definition at line 213 of file Job.cc.

References mFeederUUID.

bool Salsa::Job::haveMoreTasks ( ) const

return has more tasks

Definition at line 221 of file Job.cc.

References mHaveMoreTasks.

Referenced by haveMoreTasks(), Salsa::NodeManager::haveMoreTasks(), and Salsa::NodeManager::resultTask().

void Salsa::Job::haveMoreTasks ( bool  hasMoreTasks)

Sets flag if we have more tasks

Definition at line 229 of file Job.cc.

References haveMoreTasks(), and mHaveMoreTasks.

bool Salsa::Job::isTaskInQueue ( uint32_t  id,
QueueType  type 
) const

Check task presence in certain queue.

Returns if task is i queue

Definition at line 119 of file Job.cc.

References mTasks.

Referenced by Salsa::Feeder::onWhisper(), and Salsa::NodeManager::resultTask().

void Salsa::Job::json ( Json::Value &  json)

Export data in json format

Definition at line 144 of file Job.cc.

References mTasks, and mUUID.

Referenced by Salsa::NodeManager::publish().

bool Salsa::Job::moveTask ( uint32_t  id,
QueueType  from,
QueueType  to 
)

Moves job from queue FROM to TO

Definition at line 45 of file Job.cc.

Referenced by nextJob(), Salsa::Feeder::onExit(), Salsa::Feeder::onWhisper(), and Salsa::NodeManager::resultTask().

bool Salsa::Job::moveTask ( uint32_t  id,
TaskInfo *  pJI,
QueueType  from,
QueueType  to 
)

Moves job from queue FROM to TO

Definition at line 54 of file Job.cc.

References addTask(), and mTasks.

TaskInfo * Salsa::Job::nextJob ( )

TODO Get next available task?job?

return next job

Definition at line 90 of file Job.cc.

References moveTask(), and mTasks.

void Salsa::Job::print ( ) const

Prints job information

Definition at line 133 of file Job.cc.

References mConsumerUUID, mFeederUUID, mTasks, mUUID, and size().

Referenced by Salsa::TaskPool::terminateJob().

bool Salsa::Job::removeTask ( uint32_t  id,
QueueType  from 
)

Removes job from queue

Definition at line 76 of file Job.cc.

References mTasks.

Referenced by Salsa::TaskPool::handlePipe(), and Salsa::NodeManager::resultTask().

size_t Salsa::Job::size ( QueueType  t = all) const

Return size in queue (if QueueType::all is set is show sum of sizes)

Definition at line 160 of file Job.cc.

References mTasks.

Referenced by print(), and Salsa::NodeManager::resultTask().

size_t Salsa::Job::sizeNotFinished ( ) const

Returns number of unfinished jobs

Definition at line 178 of file Job.cc.

References mTasks.

void Salsa::Job::tasks ( std::vector< TaskInfo * > &  v,
QueueType  type,
bool  clear = true 
)

return next job

Definition at line 105 of file Job.cc.

References mTasks.

Referenced by Salsa::Feeder::terminateJob(), and Salsa::TaskPool::terminateJob().


The documentation for this class was generated from the following files: