Bazaar developer reference

CvDllDatabaseUtility::PrefetchCollection(std::vector<T *> &, const char *)

Defined in
CvDllDatabaseUtility.h, line 102
Class
CvDllDatabaseUtility
Not a hook point
written in a header

Code

101template<class T>102bool CvDllDatabaseUtility::PrefetchCollection(std::vector<T*>& kCollection, const char* tableName)103{104	cvStopWatch kPerfTest(tableName, "xml-perf.log");105106	//First release any previous data in the collection.107	for(std::vector<T*>::iterator it = kCollection.begin(); it != kCollection.end(); ++it)108	{109		T* pkItem = (*it);110		delete pkItem;111	}112	kCollection.clear();113114	//Repopulate!115	size_t index = 0;116	Database::Results kResults;117	CvDatabaseUtility kUtility;118119	if(DB.SelectWhere(kResults, tableName, "ID > -1 ORDER BY ID"))120	{121		while(kResults.Step())122		{123			size_t Id = kResults.GetInt("ID");124			CvAssertMsg(index <= Id, "This should never happen!")125126			while(Id > index)127			{128				kCollection.push_back(NULL);129				index++;130			}131132			T* pkItem = FNEW(T, c_eCiv5GameplayDLL, 0);133			pkItem->CacheResults(kResults, kUtility);134			kCollection.push_back(pkItem);135			index++;136		}137	}138	else139	{140		char szErrorMsg[512];141		sprintf_s(szErrorMsg, "PrefetchCollection: Cannot find table '%s'.  Error - %s", tableName, DB.ErrorMessage());142		CvAssertMsg(false, szErrorMsg);143144	}145146	return true;147}

Calls