当前位置: 首页>>代码示例>>C++>>正文


C++ CodeErrors类代码示例

本文整理汇总了C++中CodeErrors的典型用法代码示例。如果您正苦于以下问题:C++ CodeErrors类的具体用法?C++ CodeErrors怎么用?C++ CodeErrors使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了CodeErrors类的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: DECLARE_BOOST_TYPES

namespace HPHP { namespace Compiler {
///////////////////////////////////////////////////////////////////////////////

DECLARE_BOOST_TYPES(ErrorInfo);
class ErrorInfo : public JSON::CodeError::ISerializable {
public:
  ErrorType m_error;
  ConstructPtr m_construct1;
  ConstructPtr m_construct2;
  std::string m_data;

  /**
   * Implements JSON::CodeError::ISerializable.
   */
  virtual void serialize(JSON::CodeError::OutputStream &out) const;
};

///////////////////////////////////////////////////////////////////////////////

class CodeErrors : public JSON::CodeError::ISerializable {
public:
  CodeErrors();
  void clear();

  /**
   * Implements JSON::CodeError::ISerializable.
   */
  virtual void serialize(JSON::CodeError::OutputStream &out) const;

  void record(ErrorInfoPtr errorInfo);
  bool exists(ErrorType type) const;
  bool exists() const;

  void saveToFile(AnalysisResultPtr ar,
                  const char *filename, bool varWrapper) const;

private:
  static std::vector<const char *> ErrorTexts;
  static std::vector<const char *> &getErrorTexts();

  typedef std::map<ConstructPtr, ErrorInfoPtr> ErrorInfoMap;
  std::vector<ErrorInfoMap> m_errors;
  Mutex m_mutex;
};

static CodeErrors s_code_errors;

///////////////////////////////////////////////////////////////////////////////
// class CodeErrors

std::vector<const char *> CodeErrors::ErrorTexts;
std::vector<const char *> &CodeErrors::getErrorTexts() {
  if (ErrorTexts.empty()) {
    ErrorTexts.resize(ErrorCount);
#define CODE_ERROR_ENTRY(x) ErrorTexts[x] = #x;
#include "compiler/analysis/code_error.inc"
#undef CODE_ERROR_ENTRY
  }
  return ErrorTexts;
}

CodeErrors::CodeErrors() {
  m_errors.resize(ErrorCount);
}

void CodeErrors::clear() {
  m_errors.clear();
  m_errors.resize(ErrorCount);
}

void CodeErrors::record(ErrorInfoPtr errorInfo) {
  ASSERT(errorInfo->m_error >= 0 && errorInfo->m_error < ErrorCount);
  Lock lock(m_mutex);
  m_errors[errorInfo->m_error][errorInfo->m_construct1] = errorInfo;
}

bool CodeErrors::exists(ErrorType type) const {
  return !m_errors[type].empty();
}

bool CodeErrors::exists() const {
  for (unsigned int i = 0; i < m_errors.size(); i++) {
    const ErrorInfoMap &errorMap = m_errors[i];
    if (!errorMap.empty()) return true;
  }
  return false;
}

void ErrorInfo::serialize(JSON::CodeError::OutputStream &out) const {
  JSON::CodeError::MapStream ms(out);
  if (m_construct1) {
    ms.add("c1", m_construct1);
  }
  if (m_construct2) {
    ms.add("c2", m_construct2);
  }
  if (!m_data.empty()) {
    ms.add("d", m_data);
  }
  ms.done();
//.........这里部分代码省略.........
开发者ID:AviMoto,项目名称:hiphop-php,代码行数:101,代码来源:code_error.cpp

示例2: Error

void Error(ErrorType error, ConstructPtr construct, const std::string &data) {
  if (hhvm) return;
  ErrorInfoPtr errorInfo(new ErrorInfo());
  errorInfo->m_error = error;
  errorInfo->m_construct1 = construct;
  errorInfo->m_data = data;
  s_code_errors.record(errorInfo);
}
开发者ID:AviMoto,项目名称:hiphop-php,代码行数:8,代码来源:code_error.cpp

示例3: Error

void Error(ErrorType error, ConstructPtr construct1, ConstructPtr construct2) {
  if (!Option::RecordErrors) return;
  ErrorInfoPtr errorInfo(new ErrorInfo());
  errorInfo->m_error = error;
  errorInfo->m_construct1 = construct1;
  errorInfo->m_construct2 = construct2;
  errorInfo->m_data = construct1->getText();
  s_code_errors.record(errorInfo);
}
开发者ID:1mr3yn,项目名称:hhvm,代码行数:9,代码来源:code_error.cpp

示例4: HasError

bool HasError() {
  return s_code_errors.exists();
}
开发者ID:AviMoto,项目名称:hiphop-php,代码行数:3,代码来源:code_error.cpp

示例5: DumpErrors

void DumpErrors(AnalysisResultPtr ar) {
  JSON::CodeError::OutputStream o(std::cerr, ar);
  s_code_errors.serialize(o);
}
开发者ID:AviMoto,项目名称:hiphop-php,代码行数:4,代码来源:code_error.cpp

示例6: SaveErrors

void SaveErrors(AnalysisResultPtr ar,
                const char *filename,
                bool varWrapper /* = false */) {
  s_code_errors.saveToFile(ar, filename, varWrapper);
}
开发者ID:AviMoto,项目名称:hiphop-php,代码行数:5,代码来源:code_error.cpp

示例7: ClearErrors

void ClearErrors() {
  s_code_errors.clear();
}
开发者ID:AviMoto,项目名称:hiphop-php,代码行数:3,代码来源:code_error.cpp


注:本文中的CodeErrors类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。