G++ := g++
ARM_G++ := arm-linux-gnueabihf-g++
+#ARM_G++ := arm-linux-gnueabi-g++
JAVA := java
JAR := jar
JAVADOC := javadoc
$(ARM_G++) $(GCCFLAGS) -o IoTSlave.o IoTSlave.cpp $(INCLUDE) $(CCCLINKERFLAGS)
cp IoTSlave.o $(BASE)/bin/iotruntime/slave/
+PHONY += cpp-test
+cpp-test:
+ $(G++) $(GCCFLAGS) -o SetRelationTest.o SetRelationTest.cpp $(INCLUDE) $(CCCLINKERFLAGS)
+
PHONY += run
run:
java IoTSlave
--- /dev/null
+#include <iostream>
+#include "IoTSet.hpp"
+#include "IoTRelation.hpp"
+
+using namespace std;
+
+int main ()
+{
+ unordered_set<string> myset = { "red","green","blue" };
+
+ IoTSet<string> iotset(&myset);
+
+ unordered_set<string>::const_iterator got = iotset.find ("red");
+
+ if ( got == iotset.end() )
+ cout << "not found in myset" << endl;
+ else
+ cout << *got << " is in myset" << endl;
+
+ cout << "size: " << iotset.size() << endl;
+
+ unordered_multimap<string,string> mymap = {
+ {"mom","church"},
+ {"mom","college"},
+ {"dad","office"},
+ {"bro","school"} };
+
+ unordered_set<string>* retset = iotset.values();
+ cout << "Returned set: " << retset->size() << endl;
+ retset->erase("red");
+ cout << "Returned set: " << retset->size() << endl;
+ cout << "Original set: " << myset.size() << endl;
+
+ //cout << "one of the values for 'mom' is: ";
+ //cout << mymap.find("mom")->second;
+ //cout << endl;
+ IoTRelation<string,string> iotrel(&mymap);
+
+ std::pair<unordered_multimap<string,string>::const_iterator,
+ unordered_multimap<string,string>::const_iterator> ret;
+ ret = iotrel.equal_range("mom");
+ for (std::unordered_multimap<string,string>::const_iterator it=ret.first; it!=ret.second; ++it)
+ cout << ' ' << it->second << endl;
+
+ cout << "size: " << iotrel.size() << endl;
+
+ return 0;
+}
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);
}
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();
}
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();
}
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);
}
template <class T>
typename unordered_set<T>::const_iterator IoTSet<T>::find(const T& k) {
- return set->find(k);
+ return (new unordered_set<T>(*set))->find(k);
}
template <class T>
typename unordered_set<T>::const_iterator IoTSet<T>::begin() {
- return set->begin();
+ return (new unordered_set<T>(*set))->begin();
}
template <class T>
typename unordered_set<T>::const_iterator IoTSet<T>::end() {
- return set->end();
+ return (new unordered_set<T>(*set))->end();
}