1af4a2ce290b619b39c2cb2a682ea4d7746d3fb21philip.liard@gmail.com// Copyright (C) 2011 The Libphonenumber Authors 2af4a2ce290b619b39c2cb2a682ea4d7746d3fb21philip.liard@gmail.com// 3af4a2ce290b619b39c2cb2a682ea4d7746d3fb21philip.liard@gmail.com// Licensed under the Apache License, Version 2.0 (the "License"); 4af4a2ce290b619b39c2cb2a682ea4d7746d3fb21philip.liard@gmail.com// you may not use this file except in compliance with the License. 5af4a2ce290b619b39c2cb2a682ea4d7746d3fb21philip.liard@gmail.com// You may obtain a copy of the License at 6af4a2ce290b619b39c2cb2a682ea4d7746d3fb21philip.liard@gmail.com// 7af4a2ce290b619b39c2cb2a682ea4d7746d3fb21philip.liard@gmail.com// http://www.apache.org/licenses/LICENSE-2.0 8af4a2ce290b619b39c2cb2a682ea4d7746d3fb21philip.liard@gmail.com// 9af4a2ce290b619b39c2cb2a682ea4d7746d3fb21philip.liard@gmail.com// Unless required by applicable law or agreed to in writing, software 10af4a2ce290b619b39c2cb2a682ea4d7746d3fb21philip.liard@gmail.com// distributed under the License is distributed on an "AS IS" BASIS, 11af4a2ce290b619b39c2cb2a682ea4d7746d3fb21philip.liard@gmail.com// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12af4a2ce290b619b39c2cb2a682ea4d7746d3fb21philip.liard@gmail.com// See the License for the specific language governing permissions and 13af4a2ce290b619b39c2cb2a682ea4d7746d3fb21philip.liard@gmail.com// limitations under the License. 14af4a2ce290b619b39c2cb2a682ea4d7746d3fb21philip.liard@gmail.com 15af4a2ce290b619b39c2cb2a682ea4d7746d3fb21philip.liard@gmail.com// Author: Philippe Liard 16af4a2ce290b619b39c2cb2a682ea4d7746d3fb21philip.liard@gmail.com 17af4a2ce290b619b39c2cb2a682ea4d7746d3fb21philip.liard@gmail.com// This file provides a minimalist implementation of common macros. 18af4a2ce290b619b39c2cb2a682ea4d7746d3fb21philip.liard@gmail.com 19af4a2ce290b619b39c2cb2a682ea4d7746d3fb21philip.liard@gmail.com#ifndef I18N_PHONENUMBERS_BASE_LOGGING_H_ 20af4a2ce290b619b39c2cb2a682ea4d7746d3fb21philip.liard@gmail.com#define I18N_PHONENUMBERS_BASE_LOGGING_H_ 21af4a2ce290b619b39c2cb2a682ea4d7746d3fb21philip.liard@gmail.com 22af4a2ce290b619b39c2cb2a682ea4d7746d3fb21philip.liard@gmail.com#include <cassert> 23af4a2ce290b619b39c2cb2a682ea4d7746d3fb21philip.liard@gmail.com 2401e7fad6acf43df86b266928f602d9709af67baephilip.liard@gmail.com#if !defined(CHECK_EQ) 25af4a2ce290b619b39c2cb2a682ea4d7746d3fb21philip.liard@gmail.com#define CHECK_EQ(X, Y) assert((X) == (Y)) 2601e7fad6acf43df86b266928f602d9709af67baephilip.liard@gmail.com#endif 2701e7fad6acf43df86b266928f602d9709af67baephilip.liard@gmail.com 2801e7fad6acf43df86b266928f602d9709af67baephilip.liard@gmail.com#if !defined(DCHECK) 2901e7fad6acf43df86b266928f602d9709af67baephilip.liard@gmail.com#define DCHECK(X) assert(X) 3001e7fad6acf43df86b266928f602d9709af67baephilip.liard@gmail.com#define DCHECK_EQ(X, Y) CHECK_EQ((X), (Y)) 3101e7fad6acf43df86b266928f602d9709af67baephilip.liard@gmail.com#define DCHECK_GE(X, Y) assert((X) >= (Y)) 3201e7fad6acf43df86b266928f602d9709af67baephilip.liard@gmail.com#define DCHECK_GT(X, Y) assert((X) > (Y)) 3301e7fad6acf43df86b266928f602d9709af67baephilip.liard@gmail.com#define DCHECK_LT(X, Y) assert((X) < (Y)) 3401e7fad6acf43df86b266928f602d9709af67baephilip.liard@gmail.com#endif 35af4a2ce290b619b39c2cb2a682ea4d7746d3fb21philip.liard@gmail.com 36af4a2ce290b619b39c2cb2a682ea4d7746d3fb21philip.liard@gmail.comtemplate <typename T> T* CHECK_NOTNULL(T* ptr) { 37af4a2ce290b619b39c2cb2a682ea4d7746d3fb21philip.liard@gmail.com assert(ptr); 38af4a2ce290b619b39c2cb2a682ea4d7746d3fb21philip.liard@gmail.com return ptr; 39af4a2ce290b619b39c2cb2a682ea4d7746d3fb21philip.liard@gmail.com} 40af4a2ce290b619b39c2cb2a682ea4d7746d3fb21philip.liard@gmail.com 41af4a2ce290b619b39c2cb2a682ea4d7746d3fb21philip.liard@gmail.com#endif // I18N_PHONENUMBERS_BASE_LOGGING_H_ 42