Shared Memory에 B-Tree로 구현한 db.
만드는게 나름 힘들었다.

//////////////////////////////////////////////////////////////////////////////////
//
//  Shared Memory에 db영역을 만듭니다.
//  Init_DB( "db이름", "공유메모리키", "튜플개수", "키 사이즈", "데이터사이즈");
//  ex) Init_DB( "mmdb", 1234, 1000, sizeof(KEY_STRUCT), sizeof(DATA_STRUCT) );
//
/////////////////////////////////////////////////////////////////////////////////
int Init_DB(const char *, int, int, size_t, size_t);


/////////////////////////////////////////////////////////////////////////////////
//
//  생성된 DB에 Data를 입력.
//  Insert_Data("db이름", "키값", 데이터값", "linked_list 키");
//  ex) Insert_Data("mmdb", (void*)sKey, (void*)sData, alt_key);
//
/////////////////////////////////////////////////////////////////////////////////
int Insert_Data(const char *, void *, const void *, long long);

/////////////////////////////////////////////////////////////////////////////////
//
//  DB에서 Data를 삭제
//  Delete_Data("db이름", "키값");
//  ex) Delete_Data( "mmdb", (void*)sKey );
//
/////////////////////////////////////////////////////////////////////////////////
int Delete_Data(const char *, void *);

/////////////////////////////////////////////////////////////////////////////////
//
//  DB에서 "키"를 가진 Data를 검색
//  Search_Data( "db이름", "키값");
//  ex) Search_Data( "mmdb", (void*)sKey );
//
/////////////////////////////////////////////////////////////////////////////////
void *Search_Data(const char *, void *);

/////////////////////////////////////////////////////////////////////////////////
//
//  DB에서 Data를 갱신
//  Update_Data( "db이름", "키값", "데이터값");
//  ex) Update_Data( "mmdb", (void*)sKey, (void*)sData );
//
/////////////////////////////////////////////////////////////////////////////////
int Update_Data(const char *, void *, const void *);

/////////////////////////////////////////////////////////////////////////////////
//
//  DB의 Data 개수를 리턴
//  Count_Data( "db이름");
//  ex) Count_Data( "mmdb" );
//
/////////////////////////////////////////////////////////////////////////////////?
int Count_Data(const char *) ;

/////////////////////////////////////////////////////////////////////////////////
//
//  DB의 Data가 alt_key에 의해 Linked List로 정렬되어 있습니다.
//  그 중에서 Head 값을 가져옵니다.
//  리턴된 값은  (DB_STRUCT *)GetHead_Data(....)로 캐스팅해서 사용하면 됩니다.
//  GetHead_Data( "db이름" );
//  ex) GetHead_Data( "mmdb" );
//
/////////////////////////////////////////////////////////////////////////////////
void *GetHead_Data(const char *);

/////////////////////////////////////////////////////////////////////////////////
//
//  Tail 값을 가져옵니다.
//  (DB_STRUCT *)GetTail_Data( "db이름" );
//  ex) GetTail_Data( "mmdb" );
//
/////////////////////////////////////////////////////////////////////////////////
void *GetTail_Data(const char *) ;


/////////////////////////////////////////////////////////////////////////////////
//
//
/////////////////////////////////////////////////////////////////////////////////
void *Select_Data( const char *, void *, void *) ;

Posted by 백구씨쥔장
,