00001 #ifndef GLOBALSINGLETARGETDELAYMAP_H_
00002 #define GLOBALSINGLETARGETDELAYMAP_H_
00003
00004 #include "globaldefinitions.h"
00005 #include <map>
00006 #include <vector>
00007 #include "pcsim_hash.h"
00008
00009 using std::map;
00010 using std::vector;
00011 using std::pair;
00012
00025 class GlobalSingleTargetDelayMap
00026 {
00027 public:
00028
00029 typedef map<delaystep_t, spikegroupid_t> delaymaptype;
00030
00032 typedef delaymaptype::const_iterator const_iterator;
00033
00034 GlobalSingleTargetDelayMap();
00035
00036 virtual ~GlobalSingleTargetDelayMap();
00037
00039 void insert(gl_engineid_t eng, local_objectid_t oid, delaystep_t delay, spikegroupid_t stg);
00040
00042
00045 spikegroupid_t find(gl_engineid_t eng, local_objectid_t oid, delaystep_t delay);
00046
00048 bool hasDelays(gl_engineid_t eng, local_objectid_t oid);
00049
00051 const_iterator beginDelays(gl_engineid_t eng, local_objectid_t oid);
00052
00054 const_iterator endDelays(gl_engineid_t eng, local_objectid_t oid);
00055
00056 protected:
00057
00058
00059 vector< hash_map<local_objectid_t, delaymaptype > > _map;
00060
00061 };
00062
00063 #endif