C++程序  |  44行  |  1.24 KB

// Copyright 2017 The Chromium OS 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 SRC_SET_ERRORS_H_
#define SRC_SET_ERRORS_H_

#ifdef USE_BRILLO
#include "base/logging.h"
#else
#include "glog/logging.h"
#endif

namespace puffin {

#define TEST_AND_RETURN_FALSE(_x)   \
  do {                              \
    if (!(_x)) {                    \
      LOG(ERROR) << #_x " failed."; \
      return false;                 \
    }                               \
  } while (0)

#define TEST_AND_RETURN_VALUE(_x, _v) \
  do {                                \
    if (!(_x)) {                      \
      LOG(ERROR) << #_x " failed.";   \
      return (_v);                    \
    }                                 \
  } while (0)

#define TEST_AND_RETURN_FALSE_SET_ERROR(_x, _error) \
  do {                                              \
    if (!(_x)) {                                    \
      (*error) = (_error);                          \
      LOG(ERROR) << #_x " failed.";                 \
      return false;                                 \
    }                                               \
  } while (0)

}  // namespace puffin

#endif  // SRC_SET_ERRORS_H_