#include "base/Here.h"
![](Assure_8h__incl.png)
![](Assure_8h__dep__incl.png)
Go to the source code of this file.
Macros | |
#define | Assure_(debugLevel, condition, description, location) |
#define | Assure(condition) Assure2((condition), #condition) |
#define | Assure2(condition, description) Assure_(0, (condition), ("assurance failed: " description), Here()) |
Functions | |
void | ReportAndThrow_ (int debugLevel, const char *description, const SourceLocation &) |
Macro Definition Documentation
◆ Assure
#define Assure | ( | condition | ) | Assure2((condition), #condition) |
Like assert() but throws an exception instead of aborting the process. Use this macro to detect code logic mistakes (i.e. bugs) where aborting the current AsyncJob or a similar task is unlikely to jeopardize Squid service integrity. For example, this macro is not appropriate for detecting bugs that indicate a dangerous global state corruption which may go unnoticed by other jobs after the current job or task is aborted.
◆ Assure2
◆ Assure_
#define Assure_ | ( | debugLevel, | |
condition, | |||
description, | |||
location | |||
) |
Calls ReportAndThrow() if needed. Reduces caller code duplication. Do not call directly; use Assure() instead.
- Parameters
-
description c-string explaining the condition (i.e. what MUST happen)
Function Documentation
◆ ReportAndThrow_()
void ReportAndThrow_ | ( | int | debugLevel, |
const char * | description, | ||
const SourceLocation & | |||
) |
Reports the description (at the given debugging level) and throws the corresponding exception. Reduces compiled code size of Assure() and Must() callers. Do not call directly; use Assure() instead.
- Parameters
-
description explains the condition (i.e. what MUST happen)
Definition at line 15 of file Assure.cc.
References DBG_IMPORTANT, and debugs.
Introduction
- About Squid
- Why Squid?
- Squid Developers
- How to Donate
- How to Help Out
- Getting Squid
- Squid Source Packages
- Squid Deployment Case-Studies
- Squid Software Foundation
Documentation
- Quick Setup
- Configuration:
- FAQ and Wiki
- Guide Books:
- Non-English
- More...
Support
- Security Advisories
- Bugzilla Database
- Mailing lists
- Contacting us
- Commercial services
- Project Sponsors
- Squid-based products