#define __MODEL_H__
#include <tr1/memory>
-#include <string>
class SortAction;
+class GeneOrder;
+
namespace Models {
class ModelImpl;
}
+/**
+ * Abstraction of a model.
+ *
+ * Handles scoring of specific actions on gene orders.
+ */
class Model{
public:
typedef std::tr1::shared_ptr<Models::ModelImpl> ModelPointer;
+ /**
+ * Constructs a new model.
+ *
+ * \param model The actual model implementation. This model takes
+ * ownership of the new allocated implementation and will delete it.
+ */
Model(Models::ModelImpl* model);
- double score(const SortAction& sa) const;
+ /**
+ */
+ double score(const SortAction& sa, const GeneOrder& go) const;
- std::string name() const;
+ const char* name() const;
private:
ModelPointer _impl;