summaryrefslogtreecommitdiff
path: root/Examples/test-suite/ruby_track_objects_directors.i
diff options
context:
space:
mode:
Diffstat (limited to 'Examples/test-suite/ruby_track_objects_directors.i')
-rw-r--r--Examples/test-suite/ruby_track_objects_directors.i44
1 files changed, 44 insertions, 0 deletions
diff --git a/Examples/test-suite/ruby_track_objects_directors.i b/Examples/test-suite/ruby_track_objects_directors.i
new file mode 100644
index 0000000..1312098
--- /dev/null
+++ b/Examples/test-suite/ruby_track_objects_directors.i
@@ -0,0 +1,44 @@
+%module(directors="1") ruby_track_objects_directors
+
+%{
+#include <string>
+%}
+
+%include "std_string.i";
+%feature("director") Foo;
+
+%trackobjects;
+
+%inline %{
+
+class Foo {
+public:
+ Foo() {}
+ virtual ~Foo() {}
+ virtual std::string ping()
+ {
+ return "Foo::ping()";
+ }
+
+ virtual std::string pong()
+ {
+ return "Foo::pong();" + ping();
+ }
+};
+
+
+class Container {
+ Foo* foo_;
+public:
+ Foo* get_foo()
+ {
+ return foo_;
+ }
+
+ void set_foo(Foo *foo)
+ {
+ foo_ = foo;
+ }
+};
+
+%}