00001 #ifndef TARGETNODESMAP_H_ 00002 #define TARGETNODESMAP_H_ 00003 00004 #include <vector> 00005 #include <set> 00006 #include "globaldefinitions.h" 00007 00008 using std::vector; 00009 using std::set; 00010 00017 class TargetNodesMap 00018 { 00019 public: 00020 typedef set<nodeid_t>::const_iterator const_iterator ; 00021 00022 TargetNodesMap(); 00023 00024 virtual ~TargetNodesMap(); 00025 00027 /* \param oid id of the object a new target node is added 00028 * \param node the target node 00029 * \param eng engine of the oid object (in case the local node is multi-threaded) 00030 * 00031 */ 00032 void addTargetNode(local_objectid_t oid, nodeid_t node, engineid_t eng = 0) ; 00033 00034 bool hasNodes(local_objectid_t oid, engineid_t eng = 0); 00035 00037 const_iterator begin(local_objectid_t oid, engineid_t eng = 0); 00038 00040 const_iterator end(local_objectid_t oid, engineid_t eng = 0); 00041 00042 protected: 00043 vector<vector<set<nodeid_t> > > _map; 00044 00045 }; 00046 00047 #endif /*TARGETNODESMAP_H_*/