summaryrefslogtreecommitdiff
path: root/Examples/python/reference/runme.py
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2009-08-18 20:56:02 +0000
committerLorry <lorry@roadtrain.codethink.co.uk>2012-09-25 16:59:08 +0000
commit9f8a09ed743cedd9547bf0661d518647966ab114 (patch)
tree9c7803d3b27a8ec22e91792ac7f7932efa128b20 /Examples/python/reference/runme.py
downloadswig-tarball-master.tar.gz
Imported from /srv/lorry/lorry-area/swig-tarball/swig-1.3.40.tar.gz.HEADswig-1.3.40master
Diffstat (limited to 'Examples/python/reference/runme.py')
-rw-r--r--Examples/python/reference/runme.py63
1 files changed, 63 insertions, 0 deletions
diff --git a/Examples/python/reference/runme.py b/Examples/python/reference/runme.py
new file mode 100644
index 0000000..a1f5336
--- /dev/null
+++ b/Examples/python/reference/runme.py
@@ -0,0 +1,63 @@
+# file: runme.py
+
+# This file illustrates the manipulation of C++ references in Python
+
+import example
+
+# ----- Object creation -----
+
+print "Creating some objects:"
+a = example.Vector(3,4,5)
+b = example.Vector(10,11,12)
+
+print " Created",a.cprint()
+print " Created",b.cprint()
+
+# ----- Call an overloaded operator -----
+
+# This calls the wrapper we placed around
+#
+# operator+(const Vector &a, const Vector &)
+#
+# It returns a new allocated object.
+
+print "Adding a+b"
+c = example.addv(a,b)
+print " a+b =", c.cprint()
+
+# Note: Unless we free the result, a memory leak will occur
+del c
+
+# ----- Create a vector array -----
+
+# Note: Using the high-level interface here
+print "Creating an array of vectors"
+va = example.VectorArray(10)
+print " va = ",va
+
+# ----- Set some values in the array -----
+
+# These operators copy the value of $a and $b to the vector array
+va.set(0,a)
+va.set(1,b)
+
+va.set(2,example.addv(a,b))
+
+# Get some values from the array
+
+print "Getting some array values"
+for i in range(0,5):
+ print " va(%d) = %s" % (i, va.get(i).cprint())
+
+# Watch under resource meter to check on this
+print "Making sure we don't leak memory."
+for i in xrange(0,1000000):
+ c = va.get(i % 10)
+
+# ----- Clean up -----
+print "Cleaning up"
+
+del va
+del a
+del b
+