Polaris: SimEdge.cc Source File

SimEdge.cc

Go to the documentation of this file.
00001 ///
00002 /// \file SimEdge.cc
00003 ///
00004 #ifdef POLARIS_GNU_PRAGMAS
00005 #pragma implementation
00006 #endif
00007 ///
00008 #include "SimEdge.h"
00009 
00010 /// Create a useless edge 
00011 SimEdge::SimEdge( ) 
00012 {
00013     #ifdef CLASS_INSTANCE_REGISTRY
00014     register_instance(SIM_EDGE, sizeof(SimEdge), this);
00015     #endif
00016 
00017     _node_1 = NULL;
00018     _node_2 = NULL;
00019     _index1 = -1;
00020     _index2 = -1;
00021     _edge = NULL;
00022 }
00023 
00024 /// Create a real edge
00025 SimEdge::SimEdge(int index1, int index2, 
00026          AbstractAccess * node1, AbstractAccess * node2,
00027          SimEdgeKernel * edge)
00028 {
00029     #ifdef CLASS_INSTANCE_REGISTRY
00030     register_instance(SIM_EDGE, sizeof(SimEdge), this);
00031     #endif
00032 
00033     _node_1 = node1;
00034     _node_2 = node2;
00035     _index1 = index1;
00036     _index2 = index2;
00037     _edge = edge;
00038 }
00039 
00040 /// Return node_1
00041 AbstractAccess *
00042 SimEdge::node_1( ) const
00043 {
00044     return _node_1;
00045 }
00046 
00047 /// Return node_2
00048 AbstractAccess *
00049 SimEdge::node_2( ) const
00050 {
00051     return _node_2;
00052 }
00053 
00054 /// Return index1
00055 int 
00056 SimEdge::index1( ) const
00057 {
00058     return _index1;
00059 }
00060 
00061 /// Return index2
00062 int 
00063 SimEdge::index2( ) const
00064 {
00065     return _index2;
00066 }
00067 
00068 /// Return edge kernel
00069 SimEdgeKernel *
00070 SimEdge::edge( ) const
00071 {
00072     return _edge;
00073 }
00074 
00075 /// return similarity type
00076 SimilarityType
00077 SimEdge::type( ) const
00078 {
00079     return _edge->type( );
00080 }
00081 
00082 char *
00083 SimEdge::type_name() const
00084 {
00085     return _edge->type_name();
00086 }
00087 
00088 SimEdge *
00089 SimEdge::clone() const
00090 {
00091     return new SimEdge( *this );
00092 }
00093 
00094 Listable *
00095 SimEdge::listable_clone() const
00096 {
00097     return (Listable *) clone();
00098 }
00099 
00100 /// Delete an edge
00101 SimEdge::~SimEdge( )
00102 {
00103     #ifdef CLASS_INSTANCE_REGISTRY
00104     unregister_instance(SIM_EDGE, this);
00105     #endif
00106 }
00107 
00108 void
00109 SimEdge::print(ostream & o) const 
00110 {
00111     o << "{" << _node_1 << ", " << _node_2 << "[" << _edge << "]" << "}";
00112 }
00113 
00114 ostream & 
00115 operator << (ostream & o, const SimEdge & edge) 
00116 {
00117     edge.print(o);
00118     return o;
00119 }
 © 1995-2005 University of Illinois, Urbana-Champaign. All rights reserved.  Fri Mar 25 23:06:07 2005