/*******************************************************
** Name: vertexurl.h
** Author: Leo Liberti
** Source: GNU C++
** Purpose: www exploring topologizer -
** vertex implementation class (header)
** History: 060820 work started
*******************************************************/
#ifndef _WETVERTEXURLH
#define _WETVERTEXURLH
#include<vector>
#include<string>
#include "vertex.h"
#include "url.h"
class VertexURLException {
public:
VertexURLException();
~VertexURLException();
};
class VertexURL : public virtual Vertex {
public:
VertexURL(int theID, URL* theURLPtr);
~VertexURL();
int getID(void) const;
int getNumberOfAdjacentVertices(void) const;
int getAdjacentVertexID(int i) const throw(VertexURLException);
void addAdjacentVertexID(int ID);
std::string getText(void);
URL& getURL(void);
private:
int id;
std::vector<int> star;
URL* urlPtr;
};
#endif
/*******************************************************
** Name: vertexurl.cxx
** Author: Leo Liberti
** Source: GNU C++
** Purpose: www exploring topologizer -
** vertex implementation class
** History: 060820 work started
*******************************************************/
#include<iostream>
#include "vertexurl.h"
VertexURLException::VertexURLException() { }
VertexURLException::~VertexURLException() { }
VertexURL::VertexURL(int theID, URL* theURLPtr) :
id(theID), urlPtr(theURLPtr) { }
VertexURL::~VertexURL() {
#ifdef DEBUG
std::cerr << "** destroying VertexURL " << this << std::endl;
#endif
delete urlPtr;
}
int VertexURL::getID(void) const {
return id;
}
int VertexURL::getNumberOfAdjacentVertices(void) const {
return star.size();
}
int VertexURL::getAdjacentVertexID(int i) const throw(VertexURLException) {
if (i < 0 || i >= star.size()) {
throw VertexURLException();
}
return star[i];
}
void VertexURL::addAdjacentVertexID(int ID) {
star.push_back(ID);
}
std::string VertexURL::getText(void) {
return getURL().getHostName();
}
URL& VertexURL::getURL(void) {
return *urlPtr;
}