#ifndef BruteForcePass_class
#define BruteForcePass_class

#include "BruteForcePassParam.h"
#include "Hash.h"
#include "../lib/Job.h"
#include "../lib/Thread.cpp"

using namespace std;

class BruteForcePassParam;

class BruteForcePass : public Thread {

	public:
		string result;
		bool found;
		bool is_running;

		Hash* build_hash;
		Job* job;
		BruteForcePassParam* parameters;
		void* lib_handle;
		create_t* create_Hash;
		destroy_t* destroy_Hash;


		BruteForcePass(BruteForcePassParam*);
		~BruteForcePass();

		virtual void createThread();
		inline void crackPass(string);
		void loadSharedModule();
};

#endif
