https://github.com/PublicHealthDynamicsLab/FRED
Revision a45e04ad99c865724a3c2b1a2d3fd979b3c6be88 authored by John Grefenstette on 07 January 2016, 16:32:02 UTC, committed by John Grefenstette on 07 January 2016, 16:32:02 UTC
1 parent 9bc2dce
Tip revision: a45e04ad99c865724a3c2b1a2d3fd979b3c6be88 authored by John Grefenstette on 07 January 2016, 16:32:02 UTC
working markov epidemic model
working markov epidemic model
Tip revision: a45e04a
Manager.h
/*
This file is part of the FRED system.
Copyright (c) 2010-2015, University of Pittsburgh, John Grefenstette,
Shawn Brown, Roni Rosenfield, Alona Fyshe, David Galloway, Nathan
Stone, Jay DePasse, Anuroop Sriram, and Donald Burke.
Licensed under the BSD 3-Clause license. See the file "LICENSE" for
more information.
*/
//
//
// File: Manager.h
//
#ifndef _FRED_MANAGER_H
#define _FRED_MANAGER_H
#include <iostream>
#include <vector>
class Policy;
class Population;
class Person;
class Person;
class Decision;
using namespace std;
/**
* Manager is an abstract class that is the embodiment of a mitigation manager.
* The Manager:
* 1. Handles a stock of mitigation supplies
* 2. Holds the policy for doling out a mitigation strategy
*/
class Manager{
protected:
vector<Policy *> policies; // vector to hold the policies this manager can apply
vector<int> results; // DEPRICATE holds the results of the policies
Population * pop; // Population in which this manager is tied to
int current_policy; // The current policy this manager is using
public:
/**
* Default constructor
*/
Manager();
/**
* Constructor that sets the Population to which this Manager is tied
*/
Manager(Population *_pop);
virtual ~Manager();
/**
* Member to allow someone to see if they fit the current policy
*
* @param p a pointer to a Person object
* @param disease the disease to poll for
* @param day the simulation day
*
* @return the manager's decision
*/
virtual int poll_manager(Person* p, int disease, int day); //member to allow someone to see if they fit the current policy
// Parameters
/**
* @return a pointer to the Population object to which this manager is tied
*/
Population * get_population() const {
return this->pop;
}
/**
* @return the current policy this manager is using
*/
int get_current_policy() const {
return this->current_policy;
}
//Utility Members
/**
* Perform the daily update for this object
*
* @param day the simulation day
*/
virtual void update(int day) {};
/**
* Put this object back to its original state
*/
virtual void reset() {};
/**
* Print out information about this object
*/
virtual void print() {};
};
#endif
Computing file changes ...