void AnalyticsBinding::_SendEvent(const ValueList &args, KValueRef result) { std::string eventString(args.GetString(0)); { Poco::Mutex::ScopedLock lock(eventsLock); events.push(eventString); } }
void TrackerClient::autoRequest(RequestEvent event) { if (!checkRequestInterval(event)) return; if (!checkPendingRequest(event)) return; log(this) << QString::fromLatin1("Performing tracker [%1] request [%2, %3, %4, %5] for torrent [%6]").arg(URL.toString()) .arg(QLatin1String(eventString(event).constData())) .arg(manager ? manager->getDownloaded() : 0) .arg(manager ? manager->getUploaded() : 0) .arg(manager ? manager->getLeft() : 0) .arg(QLatin1String(infoHash.toHex().constData())) << endl; socket->request(generateRequest(event)); requestStopwatch.restart(); }
// 全てのアドオンにロックオンイベントを送る void SendLockonEvent(IFunctionArguments& args, const char* eventName) { BGSListForm* list = GetQuestList(); if (list && list->forms.count) { VMClassRegistry* registry = (*g_skyrimVM)->GetClassRegistry(); IObjectHandlePolicy* policy = registry->GetHandlePolicy(); BSFixedString eventString(eventName); for(int i = 0; i < list->forms.count; i++) { if (list->forms[i] && list->forms[i]->formType == kFormType_Quest) { TESQuest* quest = (TESQuest*)list->forms[i]; if (quest && quest->IsRunning()) { UInt64 handle = policy->Create(quest->kTypeID, quest); registry->QueueEvent(handle, &eventString, &args); } } } } }