bool Config::handleOption()

in libkineto/src/Config.cpp [235:316]


bool Config::handleOption(const std::string& name, std::string& val) {
  // Event Profiler
  if (!name.compare(kEventsKey)) {
    vector<string> event_names = splitAndTrim(val, ',');
    eventNames_.insert(event_names.begin(), event_names.end());
  } else if (!name.compare(kMetricsKey)) {
    vector<string> metric_names = splitAndTrim(val, ',');
    metricNames_.insert(metric_names.begin(), metric_names.end());
  } else if (!name.compare(kSamplePeriodKey)) {
    samplePeriod_ = milliseconds(toInt32(val));
  } else if (!name.compare(kMultiplexPeriodKey)) {
    multiplexPeriod_ = milliseconds(toInt32(val));
  } else if (!name.compare(kReportPeriodKey)) {
    setReportPeriod(seconds(toInt32(val)));
  } else if (!name.compare(kSamplesPerReportKey)) {
    samplesPerReport_ = toInt32(val);
  } else if (!name.compare(kEventsLogFileKey)) {
    eventLogFile_ = val;
  } else if (!name.compare(kEventsEnabledDevicesKey)) {
    eventProfilerDeviceMask_ = createDeviceMask(val);
  } else if (!name.compare(kOnDemandDurationKey)) {
    eventProfilerOnDemandDuration_ = seconds(toInt32(val));
    eventProfilerOnDemandTimestamp_ = timestamp();
  } else if (!name.compare(kMaxEventProfilersPerGpuKey)) {
    eventProfilerMaxInstancesPerGpu_ = toInt32(val);
  } else if (!name.compare(kHeartbeatMonitorPeriodKey)) {
    eventProfilerHeartbeatMonitorPeriod_ = seconds(toInt32(val));
  }

  // Activity Profiler
  else if (!name.compare(kActivitiesDurationKey)) {
    activitiesDuration_ =
        duration_cast<milliseconds>(seconds(toInt32(val)));
    activitiesOnDemandTimestamp_ = timestamp();
  } else if (!name.compare(kActivityTypesKey)) {
    vector<string> activity_types = splitAndTrim(toLower(val), ',');
    setActivityTypes(activity_types);
  } else if (!name.compare(kActivitiesDurationMsecsKey)) {
    activitiesDuration_ = milliseconds(toInt32(val));
    activitiesOnDemandTimestamp_ = timestamp();
  } else if (!name.compare(kActivitiesIterationsKey)) {
    activitiesExternalAPIIterations_ = toInt32(val);
    activitiesOnDemandTimestamp_ = timestamp();
  } else if (!name.compare(kLogVerboseLevelKey)) {
    verboseLogLevel_ = toInt32(val);
  } else if (!name.compare(kLogVerboseModulesKey)) {
    verboseLogModules_ = splitAndTrim(val, ',');
  } else if (!name.compare(kActivitiesEnabledKey)) {
    activityProfilerEnabled_ = toBool(val);
  } else if (!name.compare(kActivitiesLogFileKey)) {
    activitiesLogFile_ = val;
    activitiesLogUrl_ = fmt::format("file://{}", val);
    activitiesOnDemandTimestamp_ = timestamp();
  } else if (!name.compare(kActivitiesMaxGpuBufferSizeKey)) {
    activitiesMaxGpuBufferSize_ = toInt32(val) * 1024 * 1024;
  } else if (!name.compare(kActivitiesWarmupDurationSecsKey)) {
    activitiesWarmupDuration_ = seconds(toInt32(val));
  }

  // Client Interface
  else if (!name.compare(kClientInterfaceEnableOpInputsCollection)) {
    enableOpInputsCollection_ = toBool(val);  
  }

  // Common
  else if (!name.compare(kRequestTimestampKey)) {
    LOG(WARNING) << kRequestTimestampKey
                 << " has been deprecated - please use "
                 << kProfileStartTimeKey;
    requestTimestamp_ = handleRequestTimestamp(toInt64(val));
  } else if (!name.compare(kProfileStartTimeKey)) {
    profileStartTime_ =
      time_point<system_clock>(milliseconds(toInt64(val)));
  } else if (!name.compare(kEnableSigUsr2Key)) {
    enableSigUsr2_ = toBool(val);
  } else if (!name.compare(kEnableIpcFabricKey)) {
    enableIpcFabric_ = toBool(val);
  } else {
    return false;
  }
  return true;
}