TuttleOFX
1
|
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