Wenzel Jakob | eda978e | 2016-03-15 15:05:40 +0100 | [diff] [blame] | 1 | from __future__ import print_function |
| 2 | import sys |
| 3 | |
| 4 | sys.path.append('.') |
| 5 | |
| 6 | from example import StringList, print_opaque_list |
Wenzel Jakob | 0871228 | 2016-04-22 16:52:15 +0200 | [diff] [blame] | 7 | from example import ClassWithSTLVecProperty |
Wenzel Jakob | 9883ec0 | 2016-03-26 23:37:51 +0100 | [diff] [blame] | 8 | from example import return_void_ptr, print_void_ptr |
| 9 | from example import return_null_str, print_null_str |
Wenzel Jakob | 9f0dfce | 2016-04-06 17:38:18 +0200 | [diff] [blame] | 10 | from example import return_unique_ptr |
Wenzel Jakob | e8b9dd2 | 2016-04-30 19:35:24 +0200 | [diff] [blame] | 11 | from example import Example1 |
Wenzel Jakob | eda978e | 2016-03-15 15:05:40 +0100 | [diff] [blame] | 12 | |
Wenzel Jakob | 0871228 | 2016-04-22 16:52:15 +0200 | [diff] [blame] | 13 | ##### |
| 14 | |
Wenzel Jakob | eda978e | 2016-03-15 15:05:40 +0100 | [diff] [blame] | 15 | l = StringList() |
| 16 | l.push_back("Element 1") |
| 17 | l.push_back("Element 2") |
| 18 | print_opaque_list(l) |
| 19 | print("Back element is %s" % l.back()) |
Wenzel Jakob | 06f56ee | 2016-04-28 16:25:24 +0200 | [diff] [blame] | 20 | for i, k in enumerate(l): |
| 21 | print("%i/%i : %s" % (i + 1, len(l), k)) |
Wenzel Jakob | eda978e | 2016-03-15 15:05:40 +0100 | [diff] [blame] | 22 | l.pop_back() |
| 23 | print_opaque_list(l) |
Wenzel Jakob | de1bca8 | 2016-03-26 17:51:09 +0100 | [diff] [blame] | 24 | |
Wenzel Jakob | 0871228 | 2016-04-22 16:52:15 +0200 | [diff] [blame] | 25 | ##### |
| 26 | cvp = ClassWithSTLVecProperty() |
| 27 | print_opaque_list(cvp.stringList) |
| 28 | |
| 29 | cvp.stringList = l |
| 30 | cvp.stringList.push_back("Element 3") |
| 31 | print_opaque_list(cvp.stringList) |
| 32 | |
| 33 | ##### |
| 34 | |
Wenzel Jakob | de1bca8 | 2016-03-26 17:51:09 +0100 | [diff] [blame] | 35 | print_void_ptr(return_void_ptr()) |
Wenzel Jakob | 772c6d5 | 2016-04-30 19:56:10 +0200 | [diff] [blame] | 36 | print_void_ptr(Example1()) # Should also work for other C++ types |
| 37 | |
| 38 | try: |
| 39 | print_void_ptr([1, 2, 3]) # This should not work |
| 40 | except Exception as e: |
| 41 | print("Caught expected exception: " + str(e)) |
Wenzel Jakob | 9883ec0 | 2016-03-26 23:37:51 +0100 | [diff] [blame] | 42 | |
| 43 | print(return_null_str()) |
| 44 | print_null_str(return_null_str()) |
Wenzel Jakob | 9f0dfce | 2016-04-06 17:38:18 +0200 | [diff] [blame] | 45 | |
Wenzel Jakob | 0871228 | 2016-04-22 16:52:15 +0200 | [diff] [blame] | 46 | ##### |
| 47 | |
Wenzel Jakob | 06f56ee | 2016-04-28 16:25:24 +0200 | [diff] [blame] | 48 | ptr = return_unique_ptr() |
| 49 | print(ptr) |
| 50 | print_opaque_list(ptr) |