diff --git a/mc_prefab-inl.hpp b/mc_prefab-inl.hpp index 774a8c4..8b205dd 100644 --- a/mc_prefab-inl.hpp +++ b/mc_prefab-inl.hpp @@ -129,7 +129,6 @@ template void serialize(Serializer* serializer, const std::pair& value) { serializer->write(value.first); serializer->write(value.second); - return true; } template @@ -145,7 +144,7 @@ bool deserialize(Deserializer* deserializer, std::pair* value) { template void serialize(Serializer* serializer, const std::map& value) { serializer->write(value.size()); - for (const typename std::map::const_iterator iter = value.begin(); iter != value.end(); ++iter) { + for (typename std::map::const_iterator iter = value.begin(); iter != value.end(); ++iter) { serializer->write(*iter); } } diff --git a/testing.cpp b/testing.cpp index 8291a22..5389fde 100644 --- a/testing.cpp +++ b/testing.cpp @@ -37,6 +37,8 @@ using namespace metacall; #define TEST_BASIC_STRING #define TEST_VECTOR #define TEST_LIST +#define TEST_PAIR +#define TEST_MAP // @@ -77,12 +79,12 @@ static void testCString(Binding* binding, Protocol* protocol) { #ifdef TEST_BASIC_STRING -static void testBasicStringAnsiImp(const std::string& str) { - printf("[testBasicStringAnsiImp]: '%s'\n", str.c_str()); +static void testBasicStringAnsiImp(const std::string& string) { + printf("[testBasicStringAnsiImp]: '%s'\n", string.c_str()); } -static void testBasicStringUnicodeImp(const std::wstring& str) { - wprintf(L"[testBasicStringUnicodeImp]: '%S'\n", str.c_str()); +static void testBasicStringUnicodeImp(const std::wstring& string) { + wprintf(L"[testBasicStringUnicodeImp]: '%S'\n", string.c_str()); } static void testBasicString(Binding* binding, Protocol* protocol) { @@ -109,10 +111,10 @@ static void testBasicString(Binding* binding, Protocol* protocol) { #ifdef TEST_VECTOR -static void testVectorImp(const std::vector& vec) { +static void testVectorImp(const std::vector& vector) { printf("[testVectorImp]: "); - for (std::vector::const_iterator iter = vec.begin(); iter != vec.end(); ++iter) { + for (std::vector::const_iterator iter = vector.begin(); iter != vector.end(); ++iter) { printf("%f ", *iter); } @@ -122,12 +124,12 @@ static void testVectorImp(const std::vector& vec) { static void testVector(Binding* binding, Protocol* protocol) { binding->bind(FPARAM(testVectorImp)); - std::vector vec; - vec.push_back(3.14159f); - vec.push_back(2.71828f); - vec.push_back(1.61803f); + std::vector vector; + vector.push_back(3.14159f); + vector.push_back(2.71828f); + vector.push_back(1.61803f); - protocol->invoke("testVectorImp", vec); + protocol->invoke("testVectorImp", vector); } #endif @@ -139,10 +141,10 @@ static void testVector(Binding* binding, Protocol* protocol) { #ifdef TEST_LIST -static void testListImp(const std::list& lst) { +static void testListImp(const std::list& list) { printf("[testListImp]: "); - for (std::list::const_iterator iter = lst.begin(); iter != lst.end(); ++iter) { + for (std::list::const_iterator iter = list.begin(); iter != list.end(); ++iter) { printf("%f ", *iter); } @@ -152,17 +154,64 @@ static void testListImp(const std::list& lst) { static void testList(Binding* binding, Protocol* protocol) { binding->bind(FPARAM(testListImp)); - std::list lst; - lst.push_back(3.14159f); - lst.push_back(2.71828f); - lst.push_back(1.61803f); + std::list list; + list.push_back(3.14159f); + list.push_back(2.71828f); + list.push_back(1.61803f); - protocol->invoke("testListImp", lst); + protocol->invoke("testListImp", list); } #endif +// +// std::pair +// + +#ifdef TEST_PAIR + +static void testPairImp(const std::pair& pair) { + printf("[testPairImp]: (%f, %d)\n", pair.first, pair.second); +} + +static void testPair(Binding* binding, Protocol* protocol) { + binding->bind(FPARAM(testPairImp)); + protocol->invoke("testPairImp", std::make_pair(3.14159f, 123)); +} + +#endif + + +// +// std::map +// + +#ifdef TEST_MAP + +static void testMapImp(const std::map& map) { + printf("[testMapImp]: "); + + for (std::map::const_iterator iter = map.begin(); iter != map.end(); ++iter) { + printf("(%f, %d) ", iter->first, iter->second); + } + + printf("\n"); +} + +static void testMap(Binding* binding, Protocol* protocol) { + binding->bind(FPARAM(testMapImp)); + + std::map map; + map[3.14159f] = 123; + map[2.71828f] = 456; + map[1.61803f] = 789; + + protocol->invoke("testMapImp", map); +} + +#endif + // // Program entry @@ -203,6 +252,14 @@ int main(int, char *[]) { testList(&binding, &protocol); #endif +#ifdef TEST_PAIR + testPair(&binding, &protocol); +#endif + +#ifdef TEST_MAP + testMap(&binding, &protocol); +#endif + server.advance(); client.advance(); }