TuttleOFX
1
|
00001 #ifndef _TUTTLE_PROCESSEDGE_HPP_ 00002 #define _TUTTLE_PROCESSEDGE_HPP_ 00003 00004 #include "IEdge.hpp" 00005 #include "UEdge.hpp" 00006 #include "ProcessVertex.hpp" 00007 00008 #include <map> 00009 #include <set> 00010 00011 namespace tuttle { 00012 namespace host { 00013 namespace graph { 00014 00015 class ProcessEdge : public IEdge 00016 { 00017 public: 00018 ProcessEdge(); 00019 ProcessEdge( const ProcessVertex::Key& out, const ProcessVertex::Key& in, const std::string& inAttrName ); 00020 ProcessEdge( const ProcessEdge& e ); 00021 ~ProcessEdge(); 00022 00023 inline ProcessEdge& operator=( const ProcessEdge& e ) 00024 { 00025 IEdge::operator=( e ); 00026 _timesNeeded = e._timesNeeded; 00027 return *this; 00028 } 00029 00030 inline ProcessEdge& operator=( const UEdge& e ) 00031 { 00032 IEdge::operator=( e ); 00033 return *this; 00034 } 00035 00036 void clearTimeInfo() { _timesNeeded.clear(); } 00037 00038 std::ostream& exportDotDebug( std::ostream& os ) const; 00039 00040 public: 00041 typedef std::set<OfxTime> TimesSet; 00042 typedef std::map<OfxTime, TimesSet> TimeMap; 00043 TimeMap _timesNeeded; 00044 }; 00045 00046 } 00047 } 00048 } 00049 00050 #endif 00051