#ifndef COMBO_H
#define COMBO_H

#include <resultset.h>
#include <vector>
#include <iostream>

using namespace std;

class Combo{
 private:
  bool* combo;
  static bool initialized;
  static vector<int> lookup;
  static int maxracks;
  static int numracks;
  static void setLookup(vector<int>);
  static void setMaxRacks(int);
  static void setNumRacks(int);
  
 public:
  bool& operator[] (int);
  bool operator[] (int) const;
  static void init(MYSQL);
  void addCombo(vector<int>);
  void clear();
  Combo();
  ~Combo();
  Combo(const Combo&);
  Combo operator= (const Combo&);
  Combo(vector<int>);
  friend ostream& operator << (ostream&,const Combo&);
};

namespace Errors{
  struct OutOfBounds{};
  struct NotInitialized{};
  struct DatabaseError{};
};

ostream& operator << (ostream&,const Combo&);

#endif
