int run(void* taskArg) { char mynum[3]; sprintf(mynum, "%02d", getUserData()); UtlString startMsg(" start "); UtlString finishMsg(" finish "); startMsg.append(mynum); finishMsg.append(mynum); timer.addEvent(startMsg.data()); doListOperations(); timer.addEvent(finishMsg.data()); return 0; }
/* ================ sdStatsTracker::ProcessRemoteStats ================ */ void sdStatsTracker::ProcessRemoteStats( int playerIndex ) { const int MAX_SINGLE_SEND_COUNT = 30; int numLeft = stats.Num() - playerRequestState[ playerIndex ]; int numSend = Min( numLeft, MAX_SINGLE_SEND_COUNT ); sdNetStatKeyValList list; int start = playerRequestState[ playerIndex ]; int nextStatToWrite = start; for ( int i = 0; start + i < stats.Num() && list.Num() < numSend; i++ ) { int index = start + i; stats[ index ]->Write( list, playerIndex, true ); nextStatToWrite = index + 1; } sdReliableServerMessage msg( GAME_RELIABLE_SMESSAGE_STATSMESSAGE ); msg.WriteLong( list.Num() ); for ( int i = 0; i < list.Num(); i++ ) { msg.WriteString( list[ i ].key->c_str() ); msg.WriteByte( list[ i ].type ); switch ( list[ i ].type ) { case sdNetStatKeyValue::SVT_INT: case sdNetStatKeyValue::SVT_INT_MAX: msg.WriteLong( list[ i ].val.i ); break; case sdNetStatKeyValue::SVT_FLOAT: case sdNetStatKeyValue::SVT_FLOAT_MAX: msg.WriteFloat( list[ i ].val.f ); break; } } msg.Send( sdReliableMessageClientInfo( playerIndex ) ); playerRequestState[ playerIndex ] = nextStatToWrite; if ( playerRequestState[ playerIndex ] == stats.Num() ) { sdReliableServerMessage finishMsg( GAME_RELIABLE_SMESSAGE_STATSFINIHED ); finishMsg.WriteBool( true ); finishMsg.Send( sdReliableMessageClientInfo( playerIndex ) ); playerRequestState[ playerIndex ] = -1; } }