Making sure that C++ Set and Relation methods return pointers from a new set/map...
[iot2.git] / iotjava / iotruntime / cpp / setrelation / IoTRelation.hpp
index 372f6951327e17dd08f4bc95cd34418ca3630686..ad1f8bfcf4c544545453b4baf59793b287fd93e0 100644 (file)
@@ -69,7 +69,7 @@ IoTRelation<K,V>::~IoTRelation() {
 template <class K,class V>
 typename unordered_multimap<K,V>::const_iterator IoTRelation<K,V>::find(const K& k) {
 
-       return rel->find(k);
+       return (new unordered_multimap<K,V>(*rel))->find(k);
 }
 
 
@@ -79,7 +79,7 @@ typename unordered_multimap<K,V>::const_iterator IoTRelation<K,V>::find(const K&
 template <class K,class V>
 typename unordered_multimap<K,V>::const_iterator IoTRelation<K,V>::begin() {
 
-       return rel->begin();
+       return (new unordered_multimap<K,V>(*rel))->begin();
 }
 
 
@@ -89,7 +89,7 @@ typename unordered_multimap<K,V>::const_iterator IoTRelation<K,V>::begin() {
 template <class K,class V>
 typename unordered_multimap<K,V>::const_iterator IoTRelation<K,V>::end() {
 
-       return rel->end();
+       return (new unordered_multimap<K,V>(*rel))->end();
 }
 
 
@@ -101,7 +101,7 @@ std::pair<typename unordered_multimap<K,V>::const_iterator,
        typename unordered_multimap<K,V>::const_iterator> 
        IoTRelation<K,V>::equal_range(const K& k) {
 
-       return rel->equal_range(k);
+       return (new unordered_multimap<K,V>(*rel))->equal_range(k);
 }