1/*
2 * Copyright (c) 2011 The Chromium Authors. All rights reserved.
3 * Use of this source code is governed by a BSD-style license that can be
4 * found in the LICENSE file.
5 */
6
7/*
8 * Error codes and data structures used to report errors when loading a nexe.
9 */
10
11#ifndef NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_PLUGIN_ERROR_H
12#define NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_PLUGIN_ERROR_H
13
14#include <string>
15
16#include "native_client/src/include/nacl_macros.h"
17#include "ppapi/c/private/ppb_nacl_private.h"
18
19namespace plugin {
20
21class ErrorInfo {
22 public:
23  ErrorInfo() {
24    SetReport(PP_NACL_ERROR_UNKNOWN, std::string());
25  }
26
27  void SetReport(PP_NaClError error_code, const std::string& message) {
28    error_code_ = error_code;
29    message_ = message;
30  }
31
32  PP_NaClError error_code() const {
33    return error_code_;
34  }
35
36  const std::string& message() const {
37    return message_;
38  }
39
40 private:
41  PP_NaClError error_code_;
42  std::string message_;
43  NACL_DISALLOW_COPY_AND_ASSIGN(ErrorInfo);
44};
45
46}  // namespace plugin
47
48#endif  // NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_PLUGIN_ERROR_H
49