#ifndef _SIMPLELINKED_LIST
#define _SIMPLELINKED_LIST
#include "protoDebug.h"
class ListItem {
public:
ListItem();
ListItem* getPrev() {return prev;}
void setPrev(ListItem* broker) {prev = broker;}
ListItem* getNext() {return next;}
void setNext(ListItem* broker) {next = broker;}
void setIdentifier(unsigned int ident) { identifier=ident; }
void setAddress(unsigned int addr) { address=addr; }
void setPort(unsigned int portno) { portnumber=portno; }
unsigned int getIdentifier() { return identifier; }
unsigned int getAddress() { return address; }
unsigned int getPort() { return portnumber; }
private:
ListItem* prev;
ListItem* next;
unsigned int identifier;
unsigned int portnumber;
unsigned int address;
};
class SimpleList {
public:
SimpleList();
~SimpleList();
ListItem *getHead() { return head; }
ListItem *getTail() { return tail; }
void prepend(ListItem *item);
void remove(ListItem *item);
void print();
ListItem* findProxyByPortAndAddress(unsigned int address, unsigned int port);
ListItem* findProxyByIdentifier(unsigned int proxyID);
protected:
ListItem* head;
ListItem* tail;
};
#endif