bool TreeSocket::Stats(const std::string &prefix, std::deque<std::string> ¶ms) { /* Get the reply to a STATS query if it matches this servername, * and send it back as a load of PUSH queries */ if (params.size() > 1) { if (InspIRCd::Match(this->ServerInstance->Config->ServerName, params[1])) { /* It's for our server */ string_list results; User* source = this->ServerInstance->FindNick(prefix); if (source) { std::deque<std::string> par; par.push_back(prefix); par.push_back(""); DoStats(this->ServerInstance, *(params[0].c_str()), source, results); for (size_t i = 0; i < results.size(); i++) { par[1] = "::" + results[i]; Utils->DoOneToOne(this->ServerInstance->Config->GetSID(), "PUSH",par, source->server); } } } else { /* Pass it on */ User* source = this->ServerInstance->FindNick(prefix); if (source) Utils->DoOneToOne(source->uuid, "STATS", params, params[1]); } } return true; }
CmdResult CommandStats::Handle (const std::vector<std::string>& parameters, User *user) { if (parameters.size() > 1 && parameters[1] != ServerInstance->Config->ServerName) return CMD_SUCCESS; string_list values; char search = parameters[0][0]; DoStats(search, user, values); for (size_t i = 0; i < values.size(); i++) user->SendText(":%s", values[i].c_str()); return CMD_SUCCESS; }
void imCalcImageStatistics(const imImage* image, imStats* stats) { for (int i = 0; i < image->depth; i++) { switch(image->data_type) { case IM_BYTE: DoStats((imbyte*)image->data[i], image->count, &stats[i]); break; case IM_SHORT: DoStats((short*)image->data[i], image->count, &stats[i]); break; case IM_USHORT: DoStats((imushort*)image->data[i], image->count, &stats[i]); break; case IM_INT: DoStats((int*)image->data[i], image->count, &stats[i]); break; case IM_FLOAT: DoStats((float*)image->data[i], image->count, &stats[i]); break; case IM_DOUBLE: DoStats((double*)image->data[i], image->count, &stats[i]); break; } } }
void imCalcHistogramStatistics(const imImage* image, imStats* stats) { int hcount; unsigned long* histo = imHistogramNew(image->data_type, &hcount); for (int d = 0; d < image->depth; d++) { imCalcHistogram(image, histo, d, 0); DoStats((unsigned long*)histo, hcount, &stats[d]); } imHistogramRelease(histo); }