Scopira  20080306
scopira::agent::agent_task_i Class Referenceabstract

#include <task.h>

Inheritance diagram for scopira::agent::agent_task_i:
scopira::tool::object

Public Types

enum  {
  run_done_c = 0, run_again_0_c = 0x1, run_again_1_c = 0x2, run_again_10_c = 0x3,
  run_again_100_c = 0x4, run_canmove_c = 0x100, run_onmsg_c = 0x200
}
 

Public Member Functions

virtual int run (scopira::agent::task_context &ctx)=0
 
- Public Member Functions inherited from scopira::tool::object
virtual ~object ()
 
int add_ref (void) const
 
bool sub_ref (void) const
 
void auto_ref (void) const
 
int current_ref (void) const
 
virtual scopira::tool::oflow_iprint (scopira::tool::oflow_i &o) const
 
virtual bool load (scopira::tool::iobjflow_i &in)
 
virtual void save (scopira::tool::oobjflow_i &out) const
 
bool is_alive_object (void) const
 
bool is_dead_object (void) const
 

Additional Inherited Members

- Protected Member Functions inherited from scopira::tool::object
 object (void)
 
 object (bool neverusecounter)
 

Detailed Description

A simple task that once started, does no communication with other tasks.

Basically, the creator instantiates an instance, populates any member variables, and then hands it off to the launch() method.

Because these tasks don't do any communication, they may also be checkedpointed and recoverable. That is, they may be restarted at the last saved state if a running process is lost on a dead machine.

Author
Aleksander Demko

Member Function Documentation

◆ run()

virtual int scopira::agent::agent_task_i::run ( scopira::agent::task_context ctx)
pure virtual

The run method for the task.

The implementation should do some work and return. It should return false if there is no more work to do (ie. return true if the run method should be run again).

You should try to return once in awhile through the executation of your task, as scopira can only move tasks between run calls.

Author
Aleksander Demko

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