


#include <list>
#include <iostream>
#include "../../../../../../dht/dhtlib/dhtlib.h"

using namespace std;


// Direct Downstream Overlay Neighbours
class cDDON {
	public:
		struct RC {
			float request, commit;
			RC(float r, float c) : request(r), commit(c) {}
		} rc;
		sa_dht id;
		cDDON(float r, float c) : rc(r,c) {}
};

class cJob {
    public:
	std::list<cDDON *> neighbors;
	char *channel;
	sa_dht hash;
	void insertNeighbor(cDDON *n);
};

void cJob::insertNeighbor(cDDON *n) {
}

class cListOfJobs {
	private:
		std::list<cJob *> jobs;
	public:
		void insert(cJob dst, float r, float c);
		bool exists(cJob job);
		cJob getJob(cJob job);
		float aggregateR(cJob job);
		float aggregateC(cJob job);

};


void cListOfJobs::insert(cJob dst, float r, float c) {
}

bool cListOfJobs::exists(cJob job){
}

cJob cListOfJobs::getJob(cJob job) {
}

float cListOfJobs::aggregateR(cJob job){
}

float cListOfJobs::aggregateC(cJob job) {
}


void testFalse(bool b, char *msg = "")
{
	if (b) {
		cout << msg << ":" << "was not false" << endl;
	}
}

void testTrue(bool b, char *msg = "")
{
	if (!b) {
		cout << msg << ":" << "was not true" << endl;
	}
}

void testEquals(float i, float j, char *msg = "")
{
	if (i != j) {
		cout << msg << ":" << "does not equal" << endl;
	}
}

void testEquals(string s1, string s2, char *msg = "")
{
	if (s1 != s2) {
		cout << msg << ":" << "not equal" << endl;
	}
}

void test() {
    cDDON n1(1.2,3.4), n2(1,2);
    cJob job;
    job.insertNeighbor(&n1);
    job.insertNeighbor(&n2);

    cListOfJobs list;
    list.insert(job, 2,3);
	
}

	

int main() {
	test();
}
