TuttleOFX  1
TuttleOFX/libraries/tuttle/src/tuttle/host/graph/ProcessEdge.hpp
Go to the documentation of this file.
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