void processExperience( const LLUUID& public_key, const LLSD& experience ) { sCache[public_key]=experience; LLSD & row = sCache[public_key]; if(row.has(EXPIRES)) { row[EXPIRES] = row[EXPIRES].asReal() + LLFrameTimer::getTotalSeconds(); } if(row.has(EXPERIENCE_ID)) { sPendingQueue.erase(row[EXPERIENCE_ID].asUUID()); } //signal signal_map_t::iterator sig_it = sSignalMap.find(public_key); if (sig_it != sSignalMap.end()) { callback_signal_t* signal = sig_it->second; (*signal)(experience); sSignalMap.erase(public_key); delete signal; } }