#ifndef BUNCH_HEADERFILE
#define BUNCH_HEADERFILE

#include "Module.h"

#define BUNCH_METHOD_NOT_SPECIFIED 0
#define BUNCH_SIMPLY_ADD		   1

class Bunch_Module : public Module {

	private:
		unsigned int bunch_method;

		//private functions
		void initialize_bunch_module(unsigned int bunch_method);
		//void Bunch_Module :: initialize_bunch_module(unsigned int bunch_method);

		//bunch functions
		unsigned int bunch_simply_add(unsigned int num_of_input, int* input, bool* input_is_valid, int* output);

	public:
		Bunch_Module();
		Bunch_Module(unsigned int bunch_method);
		Bunch_Module(char* name, unsigned int bunch_method);

		unsigned int bunch(unsigned int num_of_input, int* input, bool* input_is_valid, int* output);
		unsigned int bunch(unsigned int num_of_input, float* input, bool* input_is_valid, float* output);
		
		void set_bunch_method(unsigned int bunch_method);
		unsigned int get_bunch_method();
};


#endif