#ifndef CELLVELOCITYDATAACCESSOR_H
#define CELLVELOCITYDATAACCESSOR_H

#include "CellVelocityData.h"
#include <BasicUtils/BasicClassAccessor.h>
#include "CellVelocityDataClassFactory.h"

template<class T>
class CellVelocityDataAccessor: public BasicClassAccessor<T>{
   public:
      CellVelocityDataAccessor (cldeque<Coordinates3D<float> >::size_type _cldequeCapacity,
                              cldeque<Coordinates3D<float> >::size_type _enoughDataThreshold
      ):
         BasicClassAccessor<T>(),
         cldequeCapacity(_cldequeCapacity),
         enoughDataThreshold(_enoughDataThreshold)
      {}

   protected:
   
      virtual BasicClassFactoryBase<void> *createClassFactory(){
         return new CellVelocityDataClassFactory<void, T>(cldequeCapacity , enoughDataThreshold);
      }
   private:
      cldeque<Coordinates3D<float> >::size_type cldequeCapacity;
      cldeque<Coordinates3D<float> >::size_type enoughDataThreshold;

};

#endif
