int main(int argc, char* argv[]) { Seed seed(10, 10); FileStorage fs; if(FileStorage::OpenStorage(&fs, "./database.data", HashTable<Key&, Value>::GetBufferSize(seed)) < 0) { printf("error: open data file fail.\n"); return -1; } HashTable<Key&, Value> ht = HashTable<Key&, Value>::LoadHashTable(fs, seed); uint32_t i=0; for(; i<5000; ++i) { Key key; memset(&key, 0, sizeof(Key)); key.dwUserId = random(); key.dwOrderId = random(); Value* pItem = ht.Hash(key, true); if(pItem == NULL) break; pItem->dwUserId = random(); pItem->cStatus = 0xFF; pItem->dAmount = 100.55; sprintf(pItem->sName, "%lu", random()); } printf("insert count: %d\n", i); // dump hashtable buffer ht.Dump(); fs.Release(); return 0; }