blob: f3cbb4714d40bf9ba8356cc77378d1c6dd7ab41f [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef REMOTING_HOST_EVALUATE_CAPABILITY_H_
#define REMOTING_HOST_EVALUATE_CAPABILITY_H_
#include <string>
namespace remoting {
// Evaluates the host capability in current process. This function should only
// be called in HostMain(), which consumes a --type=evaluate command line
// parameter. Note, this function may execute some experimental features and
// crash the process.
int EvaluateCapabilityLocally(const std::string& type);
// Evaluates the host capability in a different process and returns its exit
// code. If |output| is provided, it will be set to the stdout of the process.
// If the process failed to be started, though usually this should not happen,
// it returns TERMINATION_STATUS_LAUNCH_FAILED.
// Note, this is a blocking call. Depending on the platform and system load, it
// may take a noticeable amount of time to complete.
int EvaluateCapability(const std::string& type, std::string* output = nullptr);
} // namespace remoting
#endif // REMOTING_HOST_EVALUATE_CAPABILITY_H_