//
// Created by Jake Close on 3/18/18.
//

#ifndef EECS398_SEARCH_SHAREDHASHMAP_H
#define EECS398_SEARCH_SHAREDHASHMAP_H

#pragma  once
#include <unordered_map>
#include <pthread.h>


template <class T> class SharedHashMap {
	private:
		std::unordered_map<T, T> map;
		pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;
		pthread_cond_t consumer_cv = PTHREAD_COND_INITIALIZER;

	public:

		SharedHashMap() {}


		void Insert(T key, T value);
		T Find(T Key);
		size_t Size();


	};

//Necessary because this class is templated
#include"SharedHashMap.cpp"

#endif