]> ruin.nu Git - germs.git/blobdiff - src/genesorter.h
we need a list of smart pointers
[germs.git] / src / genesorter.h
index fa47b0535b188b01b14461807d335ca6f76be945..402464bcc4b8555d3d0c6541dc2ab21aa4fc18f3 100644 (file)
 #ifndef __GENESORTER_H__
 #define __GENESORTER_H__
 
-#include "geneorder.h"
-#include "sortaction.h"
-
 #include <vector>
+#include <tr1/memory>
 
+class SortAction;
+class GeneOrder;
 
 /**
- * Abstract baseclass for different gene sorters.
+ * Sorts genes
+ *
  * \author Michael Andreen
  */
 class GeneSorter{
        public:
-               typedef std::vector<SortAction> ActionList;
+               typedef std::tr1::shared_ptr<SortAction> ActionPointer;
+               typedef std::vector<ActionPointer> ActionList;
 
                /**
                 * Takes a GeneOrder, finds the actions to transform it into a sorted
                 * permutation and returns the list with required actions.
                 */
-               virtual ActionList sort(const GeneOrder& go1) = 0;
+               ActionList sort(const GeneOrder& go1);
 
                /**
                 * Find the safe actions for this GeneOrder.
                 */
-               virtual ActionList safeActions(const GeneOrder& go1) = 0;
+               ActionList safeActions(const GeneOrder& go1);
 
-               virtual ~GeneSorter(){};
+               ~GeneSorter(){};
 };
 
 #endif