# CbcEventHandler Class Reference

Base class for Cbc event handling. More...

`#include <CbcEventHandler.hpp>`

Collaboration diagram for CbcEventHandler:
[legend]

List of all members.

## Public Types
enum | CbcEvent { node = 200, treeStatus, solution, heuristicSolution, beforeSolution1, beforeSolution2, afterHeuristic, endSearch }
| Events known to cbc. More...
enum | CbcAction { noAction = -1, stop = 0, restart, restartRoot, addCuts, killSolution }
| Action codes returned by the event handler. More...
typedef std::map< CbcEvent, CbcAction > | eaMapPair
| Data type for event/action pairs.
## Public Member Functions
Event Processing
virtual CbcAction | event (CbcEvent whichEvent)
| Return the action to be taken for an event.
Constructors and destructors
| CbcEventHandler (CbcModel *model=0)
| Default constructor.
| CbcEventHandler (const CbcEventHandler &orig)
| Copy constructor.
CbcEventHandler & | operator= (const CbcEventHandler &rhs)
| Assignment.
virtual CbcEventHandler * | clone () const
| Clone (virtual) constructor.
virtual | ~CbcEventHandler ()
| Destructor.
Set/Get methods
void | setModel (CbcModel *model)
| Set model.
const CbcModel * | getModel () const
| Get model.
void | setDfltAction (CbcAction action)
| Set the default action.
void | setAction (CbcEvent event, CbcAction action)
| Set the action code associated with an event.
## Protected Attributes
Data members
Protected (as opposed to private) to allow access by derived classes.
CbcModel * | model_
| Pointer to associated CbcModel.
CbcAction | dfltAction_
| Default action.
eaMapPair * | eaMap_
| Pointer to a map that holds non-default event/action pairs.

## Detailed Description

Base class for Cbc event handling.

Up front: We're not talking about unanticipated events here. We're talking about anticipated events, in the sense that the code is going to make a call to event() and is prepared to obey the return value that it receives.

The general pattern for usage is as follows:

1. Create a CbcEventHandler object. This will be initialised with a set of default actions for every recognised event.

2. Attach the event handler to the CbcModel object.

3. When execution reaches the point where an event occurs, call the event handler as CbcEventHandler::event(the event). The return value will specify what the code should do in response to the event.

The return value associated with an event can be changed at any time.

Definition at line 81 of file CbcEventHandler.hpp.

## Member Typedef Documentation

typedef std::map<CbcEvent, CbcAction> CbcEventHandler::eaMapPair

Data type for event/action pairs.

Definition at line 129 of file CbcEventHandler.hpp.

## Member Enumeration Documentation

enum CbcEventHandler::CbcEvent

Events known to cbc.

Enumerator:

  node | Processing of the current node is complete.
  treeStatus | A tree status interval has arrived.
  solution | A solution has been found.
  heuristicSolution | A heuristic solution has been found.
  beforeSolution1 | A solution will be found unless user takes action (first check).
  beforeSolution2 | A solution will be found unless user takes action (thorough check).
  afterHeuristic | After failed heuristic.
  endSearch | End of search.

Definition at line 87 of file CbcEventHandler.hpp.

enum CbcEventHandler::CbcAction

Action codes returned by the event handler.

Specific values are chosen to match ClpEventHandler return codes.

Enumerator:

  noAction | Continue --- no action required.
  stop | Stop --- abort the current run at the next opportunity.
  restart | Restart --- restart branch-and-cut search; do not undo root node processing.
  restartRoot | RestartRoot --- undo root node and start branch-and-cut afresh.
  addCuts | Add special cuts.
  killSolution | Pretend solution never happened.

Definition at line 110 of file CbcEventHandler.hpp.

## Constructor & Destructor Documentation

CbcEventHandler::CbcEventHandler | ( | CbcModel * | model = `0` | ) |

Default constructor.

CbcEventHandler::CbcEventHandler | ( | const CbcEventHandler & | orig | ) |

Copy constructor.

virtual CbcEventHandler::~CbcEventHandler | ( |  | ) | `[virtual]`

Destructor.

## Member Function Documentation

virtual CbcAction CbcEventHandler::event | ( | CbcEvent | whichEvent | ) | `[virtual]`

Return the action to be taken for an event.

Return the action that should be taken in response to the event passed as the parameter. The default implementation simply reads a return code from a map.

CbcEventHandler& CbcEventHandler::operator= | ( | const CbcEventHandler & | rhs | ) |

Assignment.

virtual CbcEventHandler* CbcEventHandler::clone | ( |  | ) | const`[virtual]`

Clone (virtual) constructor.

void CbcEventHandler::setModel | ( | CbcModel * | model | ) | `[inline]`

Set model.

Definition at line 176 of file CbcEventHandler.hpp.

const CbcModel* CbcEventHandler::getModel | ( |  | ) | const`[inline]`

Get model.

Definition at line 182 of file CbcEventHandler.hpp.

void CbcEventHandler::setDfltAction | ( | CbcAction | action | ) | `[inline]`

Set the default action.

Definition at line 188 of file CbcEventHandler.hpp.

void CbcEventHandler::setAction | ( | CbcEvent | event,
|  | CbcAction | action |
| ) |  |  | `[inline]`

Set the action code associated with an event.

Definition at line 194 of file CbcEventHandler.hpp.

## Member Data Documentation

CbcModel* CbcEventHandler::model_`[protected]`

Pointer to associated CbcModel.

Definition at line 214 of file CbcEventHandler.hpp.

CbcAction CbcEventHandler::dfltAction_`[protected]`

Default action.

Definition at line 218 of file CbcEventHandler.hpp.

eaMapPair* CbcEventHandler::eaMap_`[protected]`

Pointer to a map that holds non-default event/action pairs.

Definition at line 222 of file CbcEventHandler.hpp.

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

- /home/coin/svn-release/Cbc-2.7.7/Cbc/src/CbcEventHandler.hpp

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines