# HG changeset patch # User alpar # Date 1078260039 0 # Node ID f3f1d7a4a8d3ad7241e7ef7bfc017f5442adb92e # Parent c4adf922624f4678d0ccf3d2d43ba5e99ea4dbb9 Step toward to a standardised graph interface. diff -r c4adf922624f -r f3f1d7a4a8d3 src/work/alpar/emptygraph.h --- a/src/work/alpar/emptygraph.h Tue Mar 02 18:24:00 2004 +0000 +++ b/src/work/alpar/emptygraph.h Tue Mar 02 20:40:39 2004 +0000 @@ -4,46 +4,77 @@ { public: - class EdgeIt {}; + class NodeIt { + public: + NodeIt() {} //FIXME + //NodeIt(const NodeIt &) {} + bool operator==(NodeIt n) const {} //FIXME + bool operator!=(NodeIt n) const {} //FIXME + }; + + class EachNodeIt : public NodeIt { + public: + EachNodeIt() {} //FIXME + EachNodeIt(const EmptyGraph &) const {} + EachNodeIt(const EachNodeIt &) const {} //FIXME + }; + + class EdgeIt { + EdgeIt() {} //FIXME + //EdgeIt(const EdgeIt &) {} + bool operator==(EdgeIt n) const {} //FIXME + bool operator!=(EdgeIt n) const {} //FIXME + }; - class InEdgeIt : public EdgeIt {}; - class OutEdgeIt : public EdgeIt {}; - class SymEdgeIt : public EdgeIt {}; - class EachEdgeIt : public EdgeIt {}; + class OutEdgeIt : public EdgeIt { + OutEdgeIt() {} + OutEdgeIt(const EmptyGraph &, NodeIt) {} + }; - class NodeIt {}; - - NodeIt &getFirst(NodeIt &) const {} + class InEdgeIt : public EdgeIt { + InEdgeIt() {} + InEdgeIt(const EmptyGraph &, NodeIt) {} + }; + // class SymEdgeIt : public EdgeIt {}; + class EachEdgeIt : public EdgeIt { + EachEdgeIt() {} + EachEdgeIt(const EmptyGraph &, NodeIt) {} + }; + + EachNodeIt &getFirst(EachNodeIt &) const {} InEdgeIt &getFirst(InEdgeIt &, NodeIt) const {} OutEdgeIt &getFirst(OutEdgeIt &, NodeIt) const {} - SymEdgeIt &getFirst(SymEdgeIt &, NodeIt) const {} + // SymEdgeIt &getFirst(SymEdgeIt &, NodeIt) const {} EachEdgeIt &getFirst(EachEdgeIt &) const {} NodeIt getNext(NodeIt) const {} InEdgeIt getNext(InEdgeIt) const {} OutEdgeIt getNext(OutEdgeIt) const {} - SymEdgeIt getNext(SymEdgeIt) const {} + //SymEdgeIt getNext(SymEdgeIt) const {} EachEdgeIt getNext(EachEdgeIt) const {} NodeIt &next(NodeIt &) const {} InEdgeIt &next(InEdgeIt &) const {} OutEdgeIt &next(OutEdgeIt &) const {} - SymEdgeIt &next(SymEdgeIt &) const {} + //SymEdgeIt &next(SymEdgeIt &) const {} EachEdgeIt &next(EachEdgeIt &) const {} NodeIt head(EdgeIt) const {} NodeIt tail(EdgeIt) const {} - NodeIt aNode(InEdgeIt) const {} - NodeIt aNode(OutEdgeIt) const {} - NodeIt aNode(SymEdgeIt) const {} +// NodeIt aNode(InEdgeIt) const {} +// NodeIt aNode(OutEdgeIt) const {} +// NodeIt aNode(SymEdgeIt) const {} - NodeIt bNode(InEdgeIt) const {} - NodeIt bNode(OutEdgeIt) const {} - NodeIt bNode(SymEdgeIt) const {} +// NodeIt bNode(InEdgeIt) const {} +// NodeIt bNode(OutEdgeIt) const {} +// NodeIt bNode(SymEdgeIt) const {} - //bool valid(const NodeIt) const {}; - //bool valid(const EdgeIt) const {}; + bool valid(const NodeIt) const {}; + bool valid(const EdgeIt) const {}; + + int id(const NodeIt) const {}; + int id(const EdgeIt) const {}; //void setInvalid(NodeIt &) const {}; //void setInvalid(EdgeIt &) const {}; @@ -56,17 +87,25 @@ void clear() {} + int nodeNum() {} + int edgeNum() {} + template class NodeMap { public: typedef T ValueType; typedef NodeIt KeyType; - void set(NodeIt i, T t) {} - T get(NodeIt i) const {} - T &operator[](NodeIt i) {} - + NodeMap(const Graph &G) {} NodeMap(const Graph &G, T t) {} + + void set(NodeIt i, T t) {} + T get(NodeIt i) const {} //FIXME: Is it necessary + T &operator[](NodeIt i) {} + const T &operator[](NodeIt i) const {} + + update() {} + update(T a) {} //FIXME: Is it necessary }; template class EdgeMap @@ -74,27 +113,32 @@ public: typedef T ValueType; typedef EdgeIt KeyType; + + EdgeMap(const Graph &G) {} + EdgeMap(const Graph &G, T t) {} + void set(EdgeIt i, T t) {} T get(EdgeIt i) const {} T &operator[](EdgeIt i) {} - - EdgeMap(const Graph &G) {} - EdgeMap(const Graph &G, T t) {} + + update() {} + update(T a) {} //FIXME: Is it necessary }; }; -class EmptyBipGraph : public EmptyGraph -{ - class ANodeIt {}; - class BNodeIt {}; - ANodeIt &next(ANodeIt &) {} - BNodeIt &next(BNodeIt &) {} +// class EmptyBipGraph : public EmptyGraph +// { +// class ANodeIt {}; +// class BNodeIt {}; - ANodeIt &getFirst(ANodeIt &) const {} - BNodeIt &getFirst(BNodeIt &) const {} +// ANodeIt &next(ANodeIt &) {} +// BNodeIt &next(BNodeIt &) {} - enum NodeClass { A = 0, B = 1 }; - NodeClass getClass(NodeIt n) {} +// ANodeIt &getFirst(ANodeIt &) const {} +// BNodeIt &getFirst(BNodeIt &) const {} -} +// enum NodeClass { A = 0, B = 1 }; +// NodeClass getClass(NodeIt n) {} + +// } diff -r c4adf922624f -r f3f1d7a4a8d3 src/work/alpar/gwrapper.h --- a/src/work/alpar/gwrapper.h Tue Mar 02 18:24:00 2004 +0000 +++ b/src/work/alpar/gwrapper.h Tue Mar 02 20:40:39 2004 +0000 @@ -181,8 +181,8 @@ typedef typename G::EdgeIt EdgeIt; - typedef typename G::InEdgeIt SymEdgeIt; - typedef typename G::OutEdgeIt SymEdgeIt; + typedef typename G::SymEdgeIt InEdgeIt; + typedef typename G::SymEdgeIt OutEdgeIt; typedef typename G::SymEdgeIt SymEdgeIt; typedef typename G::EachEdgeIt EachEdgeIt;