#ifndef Integrator_CCA_H
#define Integrator_CCA_H

namespace integrators
{
  namespace ccaports
  {

    /**
     * This abstract class declares the Integrator interface.
     * It does not inherit from the integrators::Integrator interface
     * since it does not enforce the implementation of the 
     * setFunction method.
     */
    class Integrator:
      public virtual gov::cca::Port
    {
    public:
      virtual ~ Integrator ()
      {
      }
      /** 
       * Returns integration result.
       */
      virtual double integrate (double lowBound, double upBound,
                                int count) = 0;
    };
  }
}
#endif                          //  Integrator_CCA_H