Skip to content
Snippets Groups Projects
SharedHashMap.h 571 B
Newer Older
  • Learn to ignore specific revisions
  • //
    // Created by Jake Close on 3/18/18.
    //
    
    #ifndef EECS398_SEARCH_SHAREDHASHMAP_H
    #define EECS398_SEARCH_SHAREDHASHMAP_H
    
    jsclose's avatar
    jsclose committed
    
    #pragma  once
    
    vcday's avatar
    vcday committed
    
    
    #include <unordered_map>
    #include <pthread.h>
    
    
    
    vcday's avatar
    vcday committed
    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 ( )
    		{ }
    
    vcday's avatar
    vcday committed
    	void Insert ( T key, T value );
    
    vcday's avatar
    vcday committed
    	T Find ( T Key );
    
    vcday's avatar
    vcday committed
    	size_t Size ( );
    
    
    
    	};
    
    //Necessary because this class is templated
    #include"SharedHashMap.cpp"
    
    #endif