/* RetiveData.h */
#include <sys/types.h>

#include <errno.h>
#include <iostream>
#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/* include environtmenCreate class */
#include <db_cxx.h>

using std::ostream;
using std::cout;
using std::cerr;

class EnvironmentCreate
{
public: 
	/*
	 * constructor for create path and database name.
	 */
	EnvironmentCreate( std::string& pathCreate,
			std::string& databaseName,
			const char *valuePrograms_,
			bool isSecondary = false );
	
	EnvironmentCreate();
	/*
	 * Desconstructor 
	 */
	~EnvironmentCreate(){ close(); }
	

	
	/* insert value into database
	 * Boolean return,If can insert value  into database 
	 */
virtual bool insertDatabase( char *keyInsert,
							char *valueInsertm,
							const EnvironmentCreate& environmentDatabasePathName);

	/*Accessor*/
	inline Db& getDb()
	{
		return databaseDBObject_;
	}
	



	

	
private:
	/*for create database and depend path */
	std::string pathCreate_;
	std::string databaseName_;
	const char *keyInsert_;
	const char *valueInsert_;
	
	/*set file name in constructor*/
	std::string pathDbFileName_;
	
	/* database object */
	Db databaseDBObject_;
	u_int32_t cFlags_;
	
	
	
	/*
	 * author Chatsiri.rat
	 * Dbt for set key and data
	 */
	Dbt keySet_, valueSet_;
	 
	
	/* Environment object*/
  //DbEnv databaseEnvironmentObject_;
	
	/*default constructor */
	
	
	/*close database*/
	void close();
	
 const char *programs_;
 
	//EnvironmentCreate(): databaseDBObject_(NULL,0){}
};
