salsa  0.3.0
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

◆ Job()

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


Constructor

Definition at line 3 of file Job.cc.

◆ ~Job()

Salsa::Job::~Job ( )
virtual


Destructor

Definition at line 9 of file Job.cc.

References mTasks.

Member Function Documentation

◆ addTask()

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().

◆ consumer() [1/2]

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().

◆ consumer() [2/2]

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


return consumer UUID

Definition at line 197 of file Job.cc.

References mConsumerUUID.

◆ feeder() [1/2]

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().

◆ feeder() [2/2]

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


return feeder UUID

Definition at line 213 of file Job.cc.

References mFeederUUID.

◆ haveMoreTasks() [1/2]

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().

◆ haveMoreTasks() [2/2]

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.

◆ isTaskInQueue()

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().

◆ json()

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().

◆ moveTask() [1/2]

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().

◆ moveTask() [2/2]

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.

◆ nextJob()

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.

◆ print()

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().

◆ removeTask()

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()

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().

◆ sizeNotFinished()

size_t Salsa::Job::sizeNotFinished ( ) const


Returns number of unfinished jobs

Definition at line 178 of file Job.cc.

References mTasks.

◆ tasks()

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: