| 
| enum   | Type {  
  PHYSICAL_ACTIVITY, 
MENTAL_RESILIENCE, 
SLEEP_DURATION, 
JETLAG, 
 
  SHIFTWORK, 
CALIBRATION, 
NONE, 
BIORHYTHM
 
 } | 
|   | 
| enum   | InitializationType { MANUAL_GOAL, 
POPULATION_GOAL, 
PERSONAL_GOAL
 } | 
|   | 
| enum   | Status { UNINITIALIZED, 
GOAL_INITIALIZED, 
READY, 
PAUSED
 } | 
|   | 
typedef std::pair< std::string,  
AIMValue >  | AIMData | 
|   | 
| typedef std::queue< AIMData >  | AIMDataQueue | 
|   | 
| typedef std::queue< AIMValue >  | AIMValueQueue | 
|   | 
typedef std::map< std::string,  
AIMValueQueue >  | InputDataQueue | 
|   | 
 | 
| 
  | Coach (const Coach &other) | 
|   | 
| 
Coach &  | operator= (const Coach &rhs) | 
|   | 
| void  | addData (const AIMData &data) | 
|   | 
| void  | doTick () | 
|   | 
| std::vector< AIMValue >  | getRequirements () const  | 
|   | 
| bool  | requirementsAreUpdated (bool reset) const  | 
|   | 
| virtual void  | setGoal (InitializationType type, const AIMValue &init, bool dynamic=true) | 
|   | 
| virtual AIMValue  | getGoal () const  | 
|   | 
virtual std::vector 
< TaskDescription >  | getCurrentTasks () const  | 
|   | 
virtual std::vector 
< TaskDescription >  | getFutureTasks (double start, double end) | 
|   | 
| virtual Status  | getStatus () const  | 
|   | 
| virtual Type  | getType () | 
|   | 
virtual const std::map 
< std::string, AIMValue > &  | getProperties () | 
|   | 
virtual std::map< std::string,  
AIMValue >  | getMemberDataAsProperties () const  | 
|   | 
| virtual void  | setProperties (const std::map< std::string, AIMValue > &properties) | 
|   | 
| virtual void  | pause (double time) | 
|   | 
| virtual void  | resume (double time) | 
|   | 
| virtual TaskDescription  | setTaskValueManually (std::string taskType, double taskStartDate, const AIMValue &data) | 
|   | 
|   | AIM (std::string name="") | 
|   | 
| 
  | AIM (const AIM &other) | 
|   | 
| 
AIM &  | operator= (const AIM &rhs) | 
|   | 
| virtual void  | addDataSubscriber (const std::string &key, AIM *subscriber) | 
|   | 
| virtual void  | removeDataSubscriber (const std::string &key) | 
|   | 
| virtual AIMValue  | setProperty (const std::string &key, AIMValue value) | 
|   | 
| virtual AIMValue  | getProperty (std::string key) const  | 
|   | 
| 
virtual void  | sendData () | 
|   | 
| virtual std::string  | exportProperties () | 
|   | 
virtual std::vector< std::pair 
< std::string, AIMValue > >  | getOutputData (bool clear_output=false) | 
|   | 
virtual std::vector< std::pair 
< std::string, AIMValue > >  | getInputData (bool clear_input=false) | 
|   | 
| virtual AIM *  | getDataSubscriber (std::string subscriber) | 
|   | 
| virtual std::string  | getName () const  | 
|   | 
 | 
| 
static const std::string  | PROP_COMPLETED_TASKS = "completed_tasks" | 
|   | 
| 
static const std::string  | PROP_ACTIVE_TASKS = "active_tasks" | 
|   | 
| 
static const std::string  | PROP_STATUS = "status" | 
|   | 
| 
static const std::string  | PROP_GOAL = "goal" | 
|   | 
| 
static const std::string  | PROP_BASELINE = "baseline" | 
|   | 
| 
static const std::string  | PROP_DYNAMIC_COACH = "dynamic_coach" | 
|   | 
| 
static const std::string  | PROP_GOAL_TYPE = "goal_type" | 
|   | 
| 
static const std::string  | PROP_START_DATE = "start_date" | 
|   | 
| 
static const std::string  | PROP_END_DATE = "end_date" | 
|   | 
| 
static const std::string  | PROP_TOTAL_DAYS = "total_days" | 
|   | 
| 
static const std::string  | PROP_GAIN = "gain" | 
|   | 
| 
static const std::string  | PROP_CURRENT_TIME = "clock" | 
|   | 
| 
static const std::string  | PROP_START_PAUSE = "start_pause" | 
|   | 
| 
static const std::string  | OUTPUT_FIELD_COACH_TYPE = "coach_type" | 
|   | 
| 
static const std::string  | PROP_PAUSED_SECONDS = "paused_seconds" | 
|   | 
| 
static const std::string  | VERSION = AIM_VERSION | 
|   | 
 | 
|   | Coach (Type coachType, std::string name="coach") | 
|   | 
| virtual void  | processDateValue (const std::string &sensor, const AIMValue &dateValue) | 
|   | 
| virtual void  | addActiveTask (Task &task) | 
|   | 
| virtual void  | removeActiveTask (Task *task) | 
|   | 
| virtual double  | calculateTargetValue (int week, double goalValue, double lastValue, double speed=(2.0/3.0)) | 
|   | 
| virtual int  | getWeek (double date) | 
|   | 
| virtual double  | calculateGoal (std::string taskType, double currentValue, int weeksLeft) | 
|   | 
| virtual void  | decreaseGain (std::string taskType) | 
|   | 
| virtual void  | increaseGain (std::string taskType) | 
|   | 
| virtual void  | handleCompletedTask (Task *task) | 
|   | 
| virtual bool  | checkAndHandleNewWeek () | 
|   | 
| virtual double  | calculateAverage (std::string taskType, double startDate, double endDate, int min_values=1, int nr_values=-1) | 
|   | 
| virtual void  | createNewTask (std::string taskType) | 
|   | 
| virtual std::pair< double, double >  | calculateTaskPeriod (double currentTime, std::string taskType="") | 
|   | 
| 
virtual void  | removeRoutesForTask (Task *task) | 
|   | 
| 
virtual Task *  | getTask (TaskDescription::Type type) | 
|   | 
| 
void  | setDataSubscribers (const std::map< std::string, AIM * > &subscribers) | 
|   | 
| 
void  | setInputDataQueue (const InputDataQueue &inputDataQueue) | 
|   | 
| 
void  | setOutputDataQueue (const AIMDataQueue &outputDataQueue) | 
|   | 
Base class for coaches. Facilitates task and requirement management. 
 
Type used for initialization of the goal.
MANUAL_GOAL: init = {{"goal",{"Task.TYPE", "value"}}}
PERSONAL_GOAL: init = {{"goal",{"Task.TYPE", "value"}}, {"baseline",{"Task.TYPE", "value"}}, {"days",84}}
POPULATION_GOAL: init = {{"goal",{"Task.TYPE", "value"}}, {"baseline",{"Task.TYPE", "value"}}, {"days",84}} 
 
 
Set the goal for the coach.
A coach can be initialized with a specific type. With a corresponding init value.
MANUAL_GOAL: init = {{"goal",{"Task.TYPE", "value"}}}
PERSONAL_GOAL: init = {{"goal",{"Task.TYPE", "value"}}, {"baseline",{"Task.TYPE", "value"}}, {"days",84}}
POPULATION_GOAL: init = {{"goal",{"Task.TYPE", "value"}}, {"baseline",{"Task.TYPE", "value"}}, {"days",84}}
- Parameters
 - 
  
    | type | The InitializationType of the coach  | 
    | init | The AIMValue map with initialization data  | 
    | dynamic | Update the goal based on the progress  | 
  
   
Reimplemented in CoachingEngine::JetLagCoach, CoachingEngine::ShiftWorkCoach, CoachingEngine::CalibrationCoach, CoachingEngine::BiorhythmCoach, CoachingEngine::SleepDurationCoach, CoachingEngine::ExerciseCoach, and CoachingEngine::MentalResilienceCoach.