codegen.stamp: server.hxx $(top_builddir)/codegen/codegen
cp $(top_srcdir)/codegen/codegen-stubhead.hxx codegen_common.hxx
- gccxml $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) server.hxx -fxml=tmpserver.xml
- $(top_builddir)/codegen/codegen tmpserver.xml codegen_
+ gccxml $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) server.hxx -fxml=server.xml
+ $(top_builddir)/codegen/codegen server.xml codegen_
touch codegen.stamp
codegen_common.hxx codegen_common.cpp codegen_client.hxx codegen_client.cpp codegen_server.cpp: codegen.stamp
+
+TESTS = test
libt2n::socket_client_connection sc("./socket");
cmd_group_default_client cc(sc);
- return (cc.testfunc("hello")=="hello, testfunc() was here") ? EXIT_SUCCESS : EXIT_FAILURE;
+ return ( ( cc.testfunc("hello") == "hello, testfunc() was here" )
+ && ( cc.testfunc_ref("hello") == "hello, testfunc() was here" )
+ && ( cc.t2(10) == 10 )
+ && ( cc.t3(10, 20, "hello", std::pair<int, float>(10,20)) ) )
+ ? EXIT_SUCCESS : EXIT_FAILURE;
}
#include <string>
#include "codegen_common.hxx"
-using namespace std;
-
LIBT2N_SET_DEFAULTGROUP(example);
LIBT2N_EXPORT std::string testfunc(std::string str)
{
- string ret;
+ std::string ret;
+ if (str=="throw")
+ throw libt2n::t2n_runtime_error("throw me around");
+ if (str=="big")
+ ret.insert(0,100*1024,'x');
+ else
+ ret=str+", testfunc() was here";
+ return ret;
+}
+
+LIBT2N_EXPORT std::string testfunc_ref(const std::string &str)
+{
+ std::string ret;
if (str=="throw")
throw libt2n::t2n_runtime_error("throw me around");
if (str=="big")
ret=str+", testfunc() was here";
return ret;
}
+
+LIBT2N_EXPORT int t2(int i)
+{
+ return i;
+}
+
+using namespace std;
+
+LIBT2N_EXPORT bool t3(int i, float f, const string &s, const pair<int, float> &p)
+{
+ return (i==p.first) && (f==p.second) && (s=="hello");
+}