#ifndef MidpointIntegrator_CCA_H
#define MidpointIntegrator_CCA_H

#include "ports/Integrator_CCA.h"
#include "ports/Function_CCA.h"

namespace integrators
{
  namespace ccaimpl
  {
    /**
     * A class that implements the Ingrator interface
     * using the midpoint integration technique.
     */
    class MidpointIntegrator:
      public virtual integrators::ccaports::Integrator,
      public virtual gov::cca::Component
    {

    public:

      MidpointIntegrator ();
      ~MidpointIntegrator ();

      virtual double integrate (double lowBound, double upBound, int count);

      virtual void setServices (gov::cca::Services * services);

    private:

        functions::ccaports::Function * function_m;
        gov::cca::Services * frameworkServices;
    };
  }
}
#endif                          // MidpointIntegrator_CCA_H