#ifndef __GLOBALS_H_
#define __GLOBALS_H_

#include "Logger.h"
#include "SgEngine.h"
#include "StoppingConditions.h"

// Forward declaration
namespace boost {
  namespace program_options {
    class variables_map;
  }
}

int main( int argc, char *argv[] );

namespace global {
  bool checkForProgramOption( boost::program_options::variables_map *vm,
                              const char *option );
  bool fetchProgramOptions( int *argc, char ***argv,
                            boost::program_options::variables_map *vm,
                            const char *filenameBase = Logger::default_filenameBase );
  bool isMultipleOf( unsigned int divisor, unsigned int dividend );
  void solve( SgEngine *engine, const StoppingConditions &stopCon );
}

#endif /* __GLOBALS_H_ */
