bool AdminRequestHandler::handleProfileRequest(const std::string &cmd,
                                               Transport *transport) {
  if (cmd == "prof-exe") {
    std::map<ThreadInfo::Executing, int> counts;
    ThreadInfo::GetExecutionSamples(counts);

    string res = "[ ";
    for (std::map<ThreadInfo::Executing, int>::const_iterator iter =
           counts.begin(); iter != counts.end(); ++iter) {
      res += lexical_cast<string>(iter->first) + ", " +
        lexical_cast<string>(iter->second) + ", ";
    }
    res += "-1 ]";
    transport->sendString(res);

    return true;
  }
#ifdef GOOGLE_CPU_PROFILER
  if (handleCPUProfilerRequest(cmd, transport)) {
    return true;
  }
#endif
#ifdef GOOGLE_HEAP_PROFILER
  if (handleHeapProfilerRequest(cmd, transport)) {
    return true;
  }
#endif
  return false;
}
bool AdminRequestHandler::handleProfileRequest(const std::string &cmd,
                                               Transport *transport) {
#ifdef GOOGLE_CPU_PROFILER
  if (handleCPUProfilerRequest(cmd, transport)) {
    return true;
  }
#endif
#ifdef GOOGLE_HEAP_PROFILER
  if (handleHeapProfilerRequest(cmd, transport)) {
    return true;
  }
#endif
  return false;
}