Esempio n. 1
0
MongodbObject * GameCore::CreateTestDataObject(const String &testTimeString, const String &runTime, TestData *testData)
{
    MongodbObject *logObject = new MongodbObject();
    if(logObject)
    {
        logObject->SetObjectName(testTimeString);
        logObject->AddString(String("Owner"), TEST_OWNER);
        logObject->AddString(String("RunTime"), runTime);
        logObject->AddInt32(String("DeviceFamily"), (int32)Core::Instance()->GetDeviceFamily());
        logObject->AddInt64(String("TotalTime"), testData->totalTime);
        logObject->AddInt64(String("MinTime"), testData->minTime);
        logObject->AddInt64(String("MaxTime"), testData->maxTime);
        logObject->AddInt32(String("MaxTimeIndex"), testData->maxTimeIndex);
        logObject->AddInt64(String("StartTime"), testData->startTime);
        logObject->AddInt64(String("EndTime"), testData->endTime);
        
        logObject->AddInt32(String("RunCount"), testData->runCount);
        
        if(testData->runCount)
        {
            logObject->AddDouble(String("Average"), (double)testData->totalTime / (double)testData->runCount);
        }
        else 
        {
            logObject->AddDouble(String("Average"), (double)0.0f);
        }
        logObject->Finish();
    }
    return logObject;
}
Esempio n. 2
0
bool GameCore::ConnectToDB()
{
	if(dbClient)
		return true;
    
	dbClient = MongodbClient::Create(DATABASE_IP, DATAPASE_PORT);
    
	if(dbClient)
    {
        dbClient->SetDatabaseName(DATABASE_NAME);
        dbClient->SetCollectionName(DATABASE_COLLECTION);

		MongodbObject *globalIdObject = dbClient->FindObjectByKey("GlobalTestId");

		if(globalIdObject)
			currentRunId = globalIdObject->GetInt32("LastTestId") + 1;

		MongodbObject * newGlobalIdObject = new MongodbObject();
		newGlobalIdObject->SetObjectName("GlobalTestId");
		newGlobalIdObject->AddInt32("LastTestId", currentRunId);
		newGlobalIdObject->Finish();
		dbClient->SaveObject(newGlobalIdObject, globalIdObject);

		SafeRelease(newGlobalIdObject);
		SafeRelease(globalIdObject);
    }
    else
    {
        Logger::Debug("Can't connect to DB");
    }
    
    return (dbClient != NULL);
}
bool MongodbClient::SaveBinary(const String &key, uint8 *data, int32 dataSize)
{
    int32 status = MONGO_ERROR;
    if(IsConnected())
    {
        MongodbObject * binary = new MongodbObject();
        DVASSERT(binary);
        
        binary->SetObjectName(key);
        binary->AddInt32(String("DataSize").c_str(), dataSize);
        binary->AddData(String("Data").c_str(), data, dataSize);
        binary->Finish();
        
        
        MongodbObject *foundObject = FindObjectByKey(key);
        if(foundObject)
        {
            status = mongo_update(clientData->connection, namespaceName.c_str(), (bson *)foundObject->InternalObject(), (bson *)binary->InternalObject(), 0, NULL);
            if(MONGO_OK != status)
            {
                LogError(String("SaveBinary, update"), clientData->connection->err);
            }
            
            SafeRelease(foundObject);
        }
        else 
        {
            status = mongo_insert(clientData->connection, namespaceName.c_str(), (bson *)binary->InternalObject(), NULL);
            if(MONGO_OK != status)
            {
                LogError(String("SaveBinary, insert"), clientData->connection->err);
            }
        }
        
        SafeRelease(binary);
    }
    
    return (MONGO_OK == status);
}