package org.lucci.madhoc.network.cost;

import org.lucci.madhoc.simulation.Configurable;
import org.lucci.madhoc.simulation.Simulation;

public abstract class CostModel implements Configurable
{
    private Simulation simulation;

    /**
     * Process the price for a transfer of numberOfBytes knowing that history
     * bytes have already been transfered by the same station.
     * 
     * @param numberOfBytes
     * @param history
     * @return
     */
    public abstract double getCost(int numberOfBytes, int history);

    public Simulation getSimulation()
    {
        return simulation;
    }

    public void setSimulation(Simulation simulation)
    {
        this.simulation = simulation;
    }

}