00001 #ifndef ACTIVITY_HH_ 00002 # define ACTIVITY_HH_ 00003 00004 # include <string> 00005 00006 # include "tasks_fwd.hh" 00007 # include "cronous-env.hh" 00008 00009 namespace tasks 00010 { 00011 class Activity 00012 { 00013 public: 00014 Activity(environment::CronousEnv &ce = environment::CronousEnv::get_instance()); 00015 virtual ~Activity(); 00016 00017 virtual void start() = 0; 00018 virtual void process(); 00019 virtual void terminate() = 0; 00020 00021 virtual const std::string &get_name() const; 00022 00023 const Task *get_current_task() const; 00024 00025 protected: 00026 environment::CronousEnv &_ce; 00027 Task *_current_task; 00028 00029 virtual void require_task(); 00030 }; 00031 } 00032 00033 # include "activity.hxx" 00034 00035 #endif