#ifndef __FORENSICS_IMAGEDATASOURCE_HH__
#define __FORENSICS_IMAGEDATASOURCE_HH__

#include "forensics-gecode.hh"
#include "datasource.hh"
#include "filewrapper.hh"


class ImageDataSource : public DataSource 
{
protected:
  Gecode::IntVar m_unavailable;
  filewrapper& m_fw;

public:
  ImageDataSource (Gecode::Space& home, filewrapper& fw);

  ImageDataSource (bool share, Gecode::Space& home, ImageDataSource& ds);

  virtual Gecode::IntVar& unavailable ();

  virtual unsigned char read (int64_t offset) const;

  virtual void read (int64_t block, unsigned char* buffer) const;

  virtual void print (std::ostream& os) const;
};


#endif

