• Main Page
  • Classes
  • Files
  • File List

EventTargetGroupPool.h

00001 #ifndef EventTargetGroupPOOL_H_
00002 #define EventTargetGroupPOOL_H_
00003 
00004 #include "EvSimObject.h"
00005 
00006 #include <cstring>
00007 
00008 #include <list>
00009 using std::list;
00010 
00011 #include <vector>
00012 using std::vector;
00013 
00014 #include <utility>
00015 using std::pair;
00016 
00017 
00018 class EventTargetGroupPool
00019 {
00020 public:
00021 
00022     struct EventTarget
00023     {
00024         EventTarget( ): receiver(NULL), port(0) {};
00025         EventTarget(EvSimObject * receiver, port_id_t p): receiver(receiver), port(p) {};
00026 
00027         EvSimObject * receiver;
00028         port_id_t port;
00029 
00030     };
00031 
00032     typedef list<EventTarget> EventTargetContainer;
00033     typedef EventTargetContainer::const_iterator const_iterator ;
00034 
00035     EventTargetGroupPool();
00036 
00037     virtual ~EventTargetGroupPool();
00038 
00039     event_target_group_id_t createEventTargetGroup( EvSimObject* receiver, port_id_t port );
00040 
00041     event_target_group_id_t addEventTarget( event_target_group_id_t group, EvSimObject* receiver, port_id_t port );
00042 
00043     inline const_iterator begin(event_target_group_id_t group)
00044     {
00045         return pool[group].begin();
00046     }
00047 
00048     inline const_iterator end(event_target_group_id_t group)
00049     {
00050         return pool[group].end();
00051     }
00052 
00053     inline size_t size(event_target_group_id_t group)
00054     {
00055         return pool[group].size();
00056     }
00057 
00058     unsigned numETGroups()
00059     {
00060         return pool.size();
00061     };
00062 
00063 
00064 protected:
00065     vector<EventTargetContainer> pool;
00066 
00067 };
00068 
00069 #endif /* SPIKERECEIVINGGROUPS_H_ */

Generated on Wed Sep 18 2013 11:25:40 for NEVESIM by  doxygen 1.7.1