1.1 --- a/lemon/lp_skeleton.h Thu Feb 26 09:39:02 2009 +0000
1.2 +++ b/lemon/lp_skeleton.h Thu Feb 26 07:39:16 2009 +0000
1.3 @@ -22,10 +22,16 @@
1.4 #include <lemon/lp_base.h>
1.5
1.6 ///\file
1.7 -///\brief A skeleton file to implement LP solver interfaces
1.8 +///\brief Skeleton file to implement LP/MIP solver interfaces
1.9 +///
1.10 +///The classes in this file do nothing, but they can serve as skeletons when
1.11 +///implementing an interface to new solvers.
1.12 namespace lemon {
1.13
1.14 - ///A skeleton class to implement LP solver interfaces
1.15 + ///A skeleton class to implement LP/MIP solver base interface
1.16 +
1.17 + ///This class does nothing, but it can serve as a skeleton when
1.18 + ///implementing an interface to new solvers.
1.19 class SkeletonSolverBase : public virtual LpBase {
1.20 int col_num,row_num;
1.21
1.22 @@ -136,14 +142,20 @@
1.23
1.24 };
1.25
1.26 - /// \brief Interface for a skeleton LP solver
1.27 + /// \brief Skeleton class for an LP solver interface
1.28 ///
1.29 - /// This class implements an interface for a skeleton LP solver.
1.30 + ///This class does nothing, but it can serve as a skeleton when
1.31 + ///implementing an interface to new solvers.
1.32 +
1.33 ///\ingroup lp_group
1.34 - class LpSkeleton : public SkeletonSolverBase, public LpSolver {
1.35 + class LpSkeleton : public LpSolver, public SkeletonSolverBase {
1.36 public:
1.37 - LpSkeleton() : SkeletonSolverBase(), LpSolver() {}
1.38 -
1.39 + ///\e
1.40 + LpSkeleton() : LpSolver(), SkeletonSolverBase() {}
1.41 + ///\e
1.42 + virtual LpSkeleton* newSolver() const;
1.43 + ///\e
1.44 + virtual LpSkeleton* cloneSolver() const;
1.45 protected:
1.46
1.47 ///\e
1.48 @@ -173,21 +185,23 @@
1.49 virtual VarStatus _getRowStatus(int i) const;
1.50
1.51 ///\e
1.52 - virtual LpSkeleton* _newSolver() const;
1.53 - ///\e
1.54 - virtual LpSkeleton* _cloneSolver() const;
1.55 - ///\e
1.56 virtual const char* _solverName() const;
1.57
1.58 };
1.59
1.60 - /// \brief Interface for a skeleton MIP solver
1.61 + /// \brief Skeleton class for a MIP solver interface
1.62 ///
1.63 - /// This class implements an interface for a skeleton MIP solver.
1.64 + ///This class does nothing, but it can serve as a skeleton when
1.65 + ///implementing an interface to new solvers.
1.66 ///\ingroup lp_group
1.67 - class MipSkeleton : public SkeletonSolverBase, public MipSolver {
1.68 + class MipSkeleton : public MipSolver, public SkeletonSolverBase {
1.69 public:
1.70 - MipSkeleton() : SkeletonSolverBase(), MipSolver() {}
1.71 + ///\e
1.72 + MipSkeleton() : MipSolver(), SkeletonSolverBase() {}
1.73 + ///\e
1.74 + virtual MipSkeleton* newSolver() const;
1.75 + ///\e
1.76 + virtual MipSkeleton* cloneSolver() const;
1.77
1.78 protected:
1.79 ///\e
1.80 @@ -215,13 +229,7 @@
1.81 virtual ProblemType _getType() const;
1.82
1.83 ///\e
1.84 - virtual MipSkeleton* _newSolver() const;
1.85 -
1.86 - ///\e
1.87 - virtual MipSkeleton* _cloneSolver() const;
1.88 - ///\e
1.89 virtual const char* _solverName() const;
1.90 -
1.91 };
1.92
1.93 } //namespace lemon