// Copyright (c) 2013 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 NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_PNACL_OPTIONS_H_
#define NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_PNACL_OPTIONS_H_
#include <vector>
#include "native_client/src/include/nacl_string.h"
#include "native_client/src/include/portability.h"
namespace plugin {
// Options for PNaCl translation.
class PnaclOptions {
public:
PnaclOptions();
~PnaclOptions();
// Return a character array of \x00 delimited commandline options.
std::vector<char> GetOptCommandline() const;
bool translate() const { return translate_; }
void set_translate(bool t) { translate_ = t; }
int32_t opt_level() const { return opt_level_; }
void set_opt_level(int32_t l);
private:
// NOTE: There are users of this class that use the copy constructor.
// Currently the default copy constructor is good enough, but
// double-check that it is the case when more fields are added.
bool translate_;
int32_t opt_level_;
};
} // namespace plugin;
#endif // NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_PNACL_OPTIONS_H_