#ifndef FLOW_ID_HPP_
#define FLOW_ID_HPP_

#include <comparable.hpp>
#include <tcp_address.hpp>

class FlowID : public Comparable
{
public:
	FlowID(const sockaddr& sourceAddress, const sockaddr& destAddress);
	FlowID(const TCPAddress& sourceAddress, const TCPAddress& destAddress);
	FlowID(const FlowID& flowID);
	~FlowID() throw(); // throw() because of call from a ctor or dtor
	virtual int compareTo(const Comparable& anotherFlowID) const;
	TCPAddress source() const;
	TCPAddress destination() const;
private:
	TCPAddress _source;
	TCPAddress _destination;
};

#endif // FLOW_ID_HPP_

