Esempio n. 1
0
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;
}