#ifndef dplyr_OrderVisitor_H
#define dplyr_OrderVisitor_H

namespace dplyr {

class OrderVisitor {
public:
  virtual ~OrderVisitor() {}

  /** are the elements at indices i and j equal */
  virtual bool equal(int i, int j) const  = 0;

  /** is the i element less than the j element */
  virtual bool before(int i, int j) const = 0;

  virtual SEXP get() = 0;

};

} // namespace dplyr


#endif
