Kea: isc::dhcp::TokenAnd Class Reference

| Kea 3.2.0-git

isc::dhcp::TokenAnd Class Reference

Token that represents logical and operator. More...

`#include <token.h>`

Inheritance diagram for isc::dhcp::TokenAnd:
[legend]

## Public Member Functions
| TokenAnd ()
| Constructor (does nothing).
virtual unsigned | evaluate (Pkt &pkt, ValueStack &values)
| Logical and.
Public Member Functions inherited from isc::dhcp::Token
virtual | ~Token ()
| Virtual destructor.
virtual unsigned | getLabel () const
| Return the label of this token.

## Additional Inherited Members
Static Public Member Functions inherited from isc::dhcp::Token
static bool | toBool (std::string value)
| Coverts a (string) value to a boolean.

## Detailed Description

Token that represents logical and operator.

Note
  Strict version i.e. evaluating right branch even left is false

For example "option[10].exists and option[11].exists"

Definition at line 1036 of file token.h.

## Constructor & Destructor Documentation

## ◆ TokenAnd()

isc::dhcp::TokenAnd::TokenAnd | ( |  | ) |
| inline

Constructor (does nothing).

Definition at line 1039 of file token.h.

## Member Function Documentation

## ◆ evaluate()

unsigned TokenAnd::evaluate | ( | Pkt & | pkt,
|  | ValueStack & | values )
| virtual

Logical and.

Evaluation does not use packet information, but rather consumes the last two parameters. It returns "true" if and only if both are "true". It requires at least two logical (i.e., "true" or "false') values present on stack. @throw EvalBadStack if there are less than 2 values on stack @throw EvalTypeError if one of the 2 values on stack is not "true" or "false"

Parameters

  pkt | (unused)
  values | - stack of values (2 arguments will be popped, 1 result will be pushed)

Returns
  0 which means evaluate next token if any.

Implements isc::dhcp::Token.

Definition at line 1089 of file token.cc.

References isc::dhcp::EVAL_DBG_STACK, isc::dhcp::EVAL_DEBUG_AND, isc::dhcp::eval_logger, isc::dhcp::Pkt::getLabel(), isc_throw, LOG_DEBUG, and isc::dhcp::Token::toBool().

Here is the call graph for this function:

The documentation for this class was generated from the following files:

- token.h
- token.cc