00001 #ifndef PROJECTEDOUTPUTPORTITERATOR_H_
00002 #define PROJECTEDOUTPUTPORTITERATOR_H_
00003
00004 #include "ProjectedEventSender.h"
00005
00006 #include <utility>
00007 using std::pair;
00008 using std::make_pair;
00009
00010
00011 class ProjectedOutputPortIterator {
00012 public:
00013
00014 ProjectedOutputPortIterator(MultiOutputProjectedEventSender &sender);
00015
00016 ProjectedOutputPortIterator() : port_map(0) {};
00017
00018 virtual ~ProjectedOutputPortIterator();
00019
00020 bool hasNextPort() {
00021 return it != end_it;
00022 }
00023
00024 pair<port_id_t, global_proj_out_port_id_t> nextPort()
00025 {
00026 return *(it++);
00027 }
00028
00029 protected:
00030
00031 MultiOutputProjectedEventSender::ProjOutPortsGlobalIDMap * port_map;
00032 MultiOutputProjectedEventSender::ProjOutPortsGlobalIDMap::const_iterator it;
00033 MultiOutputProjectedEventSender::ProjOutPortsGlobalIDMap::const_iterator end_it;
00034
00035 };
00036
00037
00038
00039 #endif