text: #ifndef _cavedb_dense_hash_map_minimal_h_
  #define _cavedb_dense_hash_map_minimal_h_
  
  #include "config.h"
  #include <libmilk/var.h>
  #include <libmilk/thread.h>
  #include "../store.h"
  #include "../store_reader.h"
  
  /// namespace lyramilk::cave
  namespace lyramilk{ namespace cave
  {
  	class dense_hash_map_minimal:public lyramilk::cave::store,public lyramilk::cave::store_reader
  	{
  		void* data;
  		mutable lyramilk::threading::mutex_rw lock;
  	  protected:
  		virtual bool notify_psync(const lyramilk::data::string& masterid,const lyramilk::data::string& replid,lyramilk::data::uint64 offset,void* userdata);
  		// db
  		virtual bool notify_flushdb(const lyramilk::data::string& masterid,const lyramilk::data::string& replid,lyramilk::data::uint64 offset,lyramilk::data::array& args,void* userdata);
  		virtual bool notify_flushall(const lyramilk::data::string& masterid,const lyramilk::data::string& replid,lyramilk::data::uint64 offset,lyramilk::data::array& args,void* userdata);
  		// key
  		virtual bool notify_del(const lyramilk::data::string& masterid,const lyramilk::data::string& replid,lyramilk::data::uint64 offset,lyramilk::data::array& args,void* userdata);
  		virtual bool notify_move(const lyramilk::data::string& masterid,const lyramilk::data::string& replid,lyramilk::data::uint64 offset,lyramilk::data::array& args,void* userdata);
  		virtual bool notify_pexpireat(const lyramilk::data::string& masterid,const lyramilk::data::string& replid,lyramilk::data::uint64 offset,lyramilk::data::array& args,void* userdata);
  		virtual bool notify_persist(const lyramilk::data::string& masterid,const lyramilk::data::string& replid,lyramilk::data::uint64 offset,lyramilk::data::array& args,void* userdata);
  		virtual bool notify_rename(const lyramilk::data::string& masterid,const lyramilk::data::string& replid,lyramilk::data::uint64 offset,lyramilk::data::array& args,void* userdata);
  		// hashmap
  		virtual bool notify_hset(const lyramilk::data::string& masterid,const lyramilk::data::string& replid,lyramilk::data::uint64 offset,lyramilk::data::array& args,void* userdata);
  		virtual bool notify_hdel(const lyramilk::data::string& masterid,const lyramilk::data::string& replid,lyramilk::data::uint64 offset,lyramilk::data::array& args,void* userdata);
  
  	  public:
  		dense_hash_map_minimal();
  		virtual ~dense_hash_map_minimal();
  
  	  public:
  		virtual bool get_sync_info(const lyramilk::data::string& masterid,lyramilk::data::string* replid,lyramilk::data::uint64* offset) const;
  		virtual bool hexist(const lyramilk::data::string& key,const lyramilk::data::string& field) const;
  		virtual lyramilk::data::string hget(const lyramilk::data::string& key,const lyramilk::data::string& field) const;
  		virtual lyramilk::data::stringdict hgetall(const lyramilk::data::string& key) const;
  	};
  }}
  
  #endif
  