summaryrefslogtreecommitdiff
path: root/newstructure/thirdparty/linux/include/coin/CbcEventHandler.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'newstructure/thirdparty/linux/include/coin/CbcEventHandler.hpp')
-rw-r--r--newstructure/thirdparty/linux/include/coin/CbcEventHandler.hpp245
1 files changed, 0 insertions, 245 deletions
diff --git a/newstructure/thirdparty/linux/include/coin/CbcEventHandler.hpp b/newstructure/thirdparty/linux/include/coin/CbcEventHandler.hpp
deleted file mode 100644
index cedc4b8..0000000
--- a/newstructure/thirdparty/linux/include/coin/CbcEventHandler.hpp
+++ /dev/null
@@ -1,245 +0,0 @@
-/*
- Copyright (C) 2006, International Business Machines Corporation and others.
- All Rights Reserved.
-
- This code is licensed under the terms of the Eclipse Public License (EPL).
-
- $Id: CbcEventHandler.hpp 1987 2013-11-29 17:27:29Z forrest $
-*/
-
-#ifndef CbcEventHandler_H
-#define CbcEventHandler_H
-
-/*! \file CbcEventHandler.hpp
- \brief Event handling for cbc
-
- This file contains the declaration of CbcEventHandler, used for event
- handling in cbc.
-
- The central method is CbcEventHandler::event(). The default semantics of
- this call are `ask for the action to take in reponse to this event'. The
- call is made at the point in the code where the event occurs (<i>e.g.</i>,
- when a solution is found, or when a node is added to or removed from the
- search tree). The return value specifies the action to perform in response
- to the event (<i>e.g.</i>, continue, or stop).
-
- This is a lazy class. Initially, it knows nothing about specific events,
- and returns dfltAction_ for any event. This makes for a trivial constructor
- and fast startup. The only place where the list of known events or actions
- is hardwired is in the enum definitions for CbcEvent and CbcAction,
- respectively.
-
- At the first call to setAction, a map is created to hold (Event,Action)
- pairs, and this map will be consulted ever after. Events not in the map
- will still return the default value.
-
- For serious extensions, derive a subclass and replace event() with a
- function that suits you better. The function has access to the CbcModel
- via a pointer held in the CbcEventHandler object, and can do as much
- thinking as it likes before returning an answer. You can also print as
- much information as you want. The model is held as a const, however, so
- you can't alter reality.
-
- The design of the class deliberately matches ClpEventHandler, so that other
- solvers can participate in cbc without breaking the patterns set by
- clp-specific code.
-
-*/
-
-#include <cstddef>
-#include <map>
-
-/* May well already be declared, but can't hurt. */
-
-class CbcModel ;
-
-/*
- cvs/svn: $Id: CbcEventHandler.hpp 1987 2013-11-29 17:27:29Z forrest $
-*/
-
-/*! \class CbcEventHandler
- \brief 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:
- <ol>
- <li> Create a CbcEventHandler object. This will be initialised with a set
- of default actions for every recognised event.
-
- <li> Attach the event handler to the CbcModel object.
-
- <li> 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.
- </ol>
-
- The return value associated with an event can be changed at any time.
-*/
-
-class CbcEventHandler {
-
-public:
-
- /*! \brief Events known to cbc */
-
- enum CbcEvent { /*! Processing of the current node is complete. */
- node = 200,
- /*! A tree status interval has arrived. */
- treeStatus,
- /*! A solution has been found. */
- solution,
- /*! A heuristic solution has been found. */
- heuristicSolution,
- /*! A solution will be found unless user takes action (first check). */
- beforeSolution1,
- /*! A solution will be found unless user takes action (thorough check). */
- beforeSolution2,
- /*! After failed heuristic. */
- afterHeuristic,
- /*! On entry to small branch and bound. */
- smallBranchAndBound,
- /*! After a pass of heuristic. */
- heuristicPass,
- /*! When converting constraints to cuts. */
- convertToCuts,
- /*! End of search. */
- endSearch
- } ;
-
- /*! \brief Action codes returned by the event handler.
-
- Specific values are chosen to match ClpEventHandler return codes.
- */
-
- enum CbcAction { /*! Continue --- no action required. */
- noAction = -1,
- /*! Stop --- abort the current run at the next opportunity. */
- stop = 0,
- /*! Restart --- restart branch-and-cut search; do not undo root node
- processing.
- */
- restart,
- /*! RestartRoot --- undo root node and start branch-and-cut afresh. */
- restartRoot,
- /*! Add special cuts. */
- addCuts,
- /*! Pretend solution never happened. */
- killSolution,
- /*! Take action on modified data. */
- takeAction
-
- } ;
-
- /*! \brief Data type for event/action pairs */
-
- typedef std::map<CbcEvent, CbcAction> eaMapPair ;
-
-
- /*! \name Event Processing */
- //@{
-
- /*! \brief 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.
- */
- virtual CbcAction event(CbcEvent whichEvent) ;
-
- /*! \brief Return the action to be taken for an event - and modify data.
-
- 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.
- */
- virtual CbcAction event(CbcEvent whichEvent, void * data) ;
-
- //@}
-
-
- /*! \name Constructors and destructors */
- //@{
-
- /*! \brief Default constructor. */
-
- CbcEventHandler(CbcModel *model = 0 /* was NULL but 4.6 complains */) ;
-
- /*! \brief Copy constructor. */
-
- CbcEventHandler(const CbcEventHandler &orig) ;
-
- /*! \brief Assignment. */
-
- CbcEventHandler& operator=(const CbcEventHandler &rhs) ;
-
- /*! \brief Clone (virtual) constructor. */
-
- virtual CbcEventHandler* clone() const ;
-
- /*! \brief Destructor. */
-
- virtual ~CbcEventHandler() ;
-
- //@}
-
- /*! \name Set/Get methods */
- //@{
-
- /*! \brief Set model. */
-
- inline void setModel(CbcModel *model) {
- model_ = model ;
- }
-
- /*! \brief Get model. */
-
- inline const CbcModel* getModel() const {
- return model_ ;
- }
-
- /*! \brief Set the default action */
-
- inline void setDfltAction(CbcAction action) {
- dfltAction_ = action ;
- }
-
- /*! \brief Set the action code associated with an event */
-
- inline void setAction(CbcEvent event, CbcAction action) {
- if (eaMap_ == 0) {
- eaMap_ = new eaMapPair ;
- }
- (*eaMap_)[event] = action ;
- }
-
- //@}
-
-
-protected:
-
- /*! \name Data members
-
- Protected (as opposed to private) to allow access by derived classes.
- */
- //@{
-
- /*! \brief Pointer to associated CbcModel */
-
- CbcModel *model_ ;
-
- /*! \brief Default action */
-
- CbcAction dfltAction_ ;
-
- /*! \brief Pointer to a map that holds non-default event/action pairs */
-
- eaMapPair *eaMap_ ;
-
- //@}
-} ;
-
-#endif
-