Wrote c and c++ client programs for a c++ idl-generated object. Currently
[wvapps.git] / xplcidl / cppimpl.cc
blobbb52c8ee4c8219b4ec01a684ea929ea1031c7594
1 #include "cpptest.h"
2 #include "testalloc.h"
3 #include <stdio.h>
4 #include <assert.h>
6 static bool is_expecting(const char *s)
8 return s && expected && !strcmp(s, expected);
11 #define EXPECT_ME() do { \
12 printf("testing '%s'\n", __func__); \
13 assert(is_expecting(__func__)); \
14 } while (0)
15 #define CHECK(a) assert((int)(a) == 1);
17 class Test : public ITest
19 public:
20 virtual void voidfunc()
22 EXPECT_ME();
25 virtual IObject *objret()
27 EXPECT_ME();
28 return (IObject *)1;
31 virtual int intret()
33 EXPECT_ME();
34 return 1;
37 virtual bool boolret()
39 EXPECT_ME();
40 return 1;
43 virtual const char *strret()
45 EXPECT_ME();
46 return (const char *)1;
49 virtual void objparm(const IObject &arg, IObject *&arg2, IObject *&arg3)
51 EXPECT_ME();
52 CHECK(&arg);
53 CHECK(arg2);
54 CHECK(arg3);
57 virtual void intparm(int arg, int &arg2, int &arg3)
59 EXPECT_ME();
60 CHECK(arg);
61 CHECK(arg2);
62 CHECK(arg3);
65 virtual void boolparm(bool arg, bool &arg2, bool &arg3)
67 EXPECT_ME();
68 CHECK(arg);
69 CHECK(arg2);
70 CHECK(arg3);
73 virtual void strparm(const char *arg, const char *&arg2, const char *&arg3)
75 EXPECT_ME();
76 CHECK(arg);
77 CHECK(arg2);
78 CHECK(arg3);
83 ITest *get_cppobj()
85 return new Test;
89 void free_cppobj(ITest *t)
91 delete (Test *)t;