Rosetta  2021.16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | List of all members
protocols::jd3::Job Class Referenceabstract

protocols::jd3::Job, which is created by the JobQueen from a LarvalJob, is responsible for executing some protocol from beginning to end in its "run" method. It must write all of its output data to the JobResult object that it creates and returns. More...

#include <Job.hh>

Inheritance diagram for protocols::jd3::Job:
Inheritance graph
[legend]

Public Member Functions

 Job ()
 
 ~Job () override
 
virtual CompletedJobOutput run ()=0
 This is the main function of the Job object. It will be invoked by the JobDistributor. The Job will return a JobResult at the conclusion of its execution, and the JobResult will be serialized and sent to the appropriate JobQueen for processing and output. The Job itself will be discarded. Large constant data that might be shared between multiple jobs can be held by the Job object (or by classes that the Job object holds) but that data should not be put into the JobResult – large data should not be repeatedly serialized and shipped between nodes. More...
 

Detailed Description

protocols::jd3::Job, which is created by the JobQueen from a LarvalJob, is responsible for executing some protocol from beginning to end in its "run" method. It must write all of its output data to the JobResult object that it creates and returns.

Note that in JD2, the currently running Job was globally accessible. That is not the case in JD3. Any data that should be output by a running job must be tucked inside the JobResult to be eventually retrieved by the JobQueen or by a JobDataOutputter at the end of execution.

Constructor & Destructor Documentation

protocols::jd3::Job::Job ( )
default
protocols::jd3::Job::~Job ( )
overridedefault

Member Function Documentation

virtual CompletedJobOutput protocols::jd3::Job::run ( )
pure virtual

This is the main function of the Job object. It will be invoked by the JobDistributor. The Job will return a JobResult at the conclusion of its execution, and the JobResult will be serialized and sent to the appropriate JobQueen for processing and output. The Job itself will be discarded. Large constant data that might be shared between multiple jobs can be held by the Job object (or by classes that the Job object holds) but that data should not be put into the JobResult – large data should not be repeatedly serialized and shipped between nodes.

Implemented in protocols::multistage_rosetta_scripts::MRSJob, protocols::jd3::jobs::MoverJob, and protocols::jd3::chunk_library::MoverAndChunkLibraryJob.


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