00001
00002 #ifndef HT_GRAPH_NODE_H
00003 #define HT_GRAPH_NODE_H
00004
00005 #include "hightest/config.h"
00006
00007 #include <string>
00008 #include <vector>
00009
00010 namespace ht {
00011 namespace options { class Config; }
00012 namespace graph {
00013 class Node;
00014 typedef std::vector<Node *> Nodes;
00016 class Node {
00017 public:
00018 virtual ~Node();
00019
00021 virtual const std::string & name() const = 0;
00022
00024 virtual void connect(Node *) = 0;
00025
00027 virtual void disconnect(Node *) = 0;
00028
00030 virtual void configure(const options::Config *) = 0;
00031
00036 virtual void configured() = 0;
00037
00039 virtual void start() = 0;
00040
00042 virtual void stop() = 0;
00043 };
00044 }
00045 }
00046
00047 #endif