| Index: ppapi/native_client/src/trusted/plugin/pnacl_options.h
|
| diff --git a/ppapi/native_client/src/trusted/plugin/pnacl_options.h b/ppapi/native_client/src/trusted/plugin/pnacl_options.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..55bbbb992c15d72f0f9b7377e0a7f3fcf508ef6b
|
| --- /dev/null
|
| +++ b/ppapi/native_client/src/trusted/plugin/pnacl_options.h
|
| @@ -0,0 +1,66 @@
|
| +// 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 true if we know the hash of the bitcode, for caching.
|
| + bool HasCacheKey() { return bitcode_hash_ != ""; }
|
| +
|
| + // Return the cache key (which takes into account the bitcode hash,
|
| + // as well as the commandline options).
|
| + nacl::string GetCacheKey();
|
| +
|
| + // Return true if the manifest did not specify any special options
|
| + // (just using the default).
|
| + bool HasDefaultOpts() {
|
| + return opt_level_ == -1 && experimental_flags_ == "";
|
| + }
|
| +
|
| + // Return a character array of \x00 delimited commandline options.
|
| + std::vector<char> GetOptCommandline();
|
| +
|
| + bool translate() { return translate_; }
|
| + void set_translate(bool t) { translate_ = t; }
|
| +
|
| + uint8_t opt_level() { return opt_level_; }
|
| + void set_opt_level(int8_t l);
|
| +
|
| + nacl::string experimental_flags() {
|
| + return experimental_flags_;
|
| + }
|
| + void set_experimental_flags(const nacl::string& f) {
|
| + experimental_flags_ = f;
|
| + }
|
| +
|
| + void set_bitcode_hash(const nacl::string& c) {
|
| + bitcode_hash_ = c;
|
| + }
|
| +
|
| + 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_;
|
| + int8_t opt_level_;
|
| + nacl::string experimental_flags_;
|
| + nacl::string bitcode_hash_;
|
| +};
|
| +
|
| +} // namespace plugin;
|
| +#endif // NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_PNACL_OPTIONS_H_
|
|
|