TuttleOFX  1
TuttleOFX/libraries/tuttle/src/tuttle/host/graph/IEdge.hpp
Go to the documentation of this file.
00001 #ifndef _TUTTLE_HOST_IEDGE_HPP_
00002 #define _TUTTLE_HOST_IEDGE_HPP_
00003 
00004 #include <tuttle/common/utils/global.hpp>
00005 
00006 #include <ofxAttribute.h>
00007 
00008 #include <iostream>
00009 #include <string>
00010 
00011 
00012 namespace tuttle {
00013 namespace host {
00014 namespace graph {
00015 
00016 
00017 class IEdge
00018 {
00019 public:
00020         IEdge();
00021         IEdge( const std::string& out, const std::string& in, const std::string& inAttrName );
00022         IEdge( const IEdge& e );
00023         virtual ~IEdge() = 0;
00024 
00025         inline IEdge& operator=( const IEdge& e )
00026         {
00027                 if( this == &e )
00028                         return *this;
00029                 _out        = e._out;
00030                 _in         = e._in;
00031                 _inAttrName = e._inAttrName;
00032                 _name       = e._name;
00033                 _localId    = e._localId;
00034                 return *this;
00035         }
00036 
00037         inline const std::string& getOut() const        { return _out; }
00038         inline const std::string& getIn() const         { return _in; }
00039         inline const std::string& getInAttrName() const { return _inAttrName; }
00040         inline const std::string& getName() const       { return _name; }
00041 
00042         virtual std::ostream& exportDotDebug( std::ostream& os ) const;
00043         friend std::ostream& operator<<( std::ostream& os, const IEdge& v );
00044 
00045 public:
00046         std::string _out;
00047         std::string _in;
00048         std::string _inAttrName;
00049         std::string _name;
00050         std::size_t _localId;
00051 
00052 };
00053 
00054 }
00055 }
00056 }
00057 
00058 #endif
00059