X-Git-Url: http://developer.intra2net.com/git/?p=libt2n;a=blobdiff_plain;f=example-codegen%2Fserver.hxx;h=16068a06d30f03d9c9f0587b76088b686a053b5d;hp=027e31338746ca8c01daaf97ac9ed4255ef94f5a;hb=fb5c13c6a58254295bc0b6f18e618f18b4c318e5;hpb=86c1c2e9dcdced7022bc2b979a4b580946802410 diff --git a/example-codegen/server.hxx b/example-codegen/server.hxx index 027e313..16068a0 100644 --- a/example-codegen/server.hxx +++ b/example-codegen/server.hxx @@ -1,13 +1,36 @@ #include -#include "codegen_common.hxx" +// serialization of string +#include +// serialization of pair +#include -using namespace std; +// std::vector +#include +#include + +#include "foo.hxx" + +#include "codegen_common.hxx" -LIBT2N_SET_DEFAULTGROUP(example); +LIBT2N_SET_DEFAULTGROUP(default); +//! test pass by copy 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; +} + +//! test pass by const reference +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") @@ -16,3 +39,32 @@ LIBT2N_EXPORT std::string testfunc(std::string str) ret=str+", testfunc() was here"; return ret; } + +//! test builtin type +LIBT2N_EXPORT int t2(int i) +{ + return i; +} + +using namespace std; + +//! test pair, multiple arguments and namespace +LIBT2N_EXPORT_GROUP(other) bool t3(int i, float f, const string &s, const pair &p) +{ + return (i==p.first) && (f==p.second) && (s=="hello"); +} + +//! test function overload +LIBT2N_EXPORT_GROUP(other) int t3(int i) +{ + return i; +} + +//! test std::vector +LIBT2N_EXPORT_GROUP(other) bool t3(const std::vector &i) +{ + return (i.size()==1) && (i[0]==10); +} + +//! test own type and seperate declaration and definition +LIBT2N_EXPORT_GROUP(other) bool t3(const Foo &foo);