diff options
author | Marc Chevrier <marc.chevrier@sap.com> | 2018-03-27 08:17:35 (GMT) |
---|---|---|
committer | Marc Chevrier <marc.chevrier@sap.com> | 2018-04-02 14:24:13 (GMT) |
commit | 438429d6fe04164b7ed70bda872e291d0df1a9e3 (patch) | |
tree | 048a336020ece4a135fa0afea6686efeb1e6b6bd /Tests/UseSWIG/runme.php4 | |
parent | e42fcb117fa1a8d063023bb39db96da93159ee40 (diff) | |
download | CMake-438429d6fe04164b7ed70bda872e291d0df1a9e3.zip CMake-438429d6fe04164b7ed70bda872e291d0df1a9e3.tar.gz CMake-438429d6fe04164b7ed70bda872e291d0df1a9e3.tar.bz2 |
UseSWIG: Rework tests
Diffstat (limited to 'Tests/UseSWIG/runme.php4')
-rw-r--r-- | Tests/UseSWIG/runme.php4 | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/Tests/UseSWIG/runme.php4 b/Tests/UseSWIG/runme.php4 new file mode 100644 index 0000000..653ced2 --- /dev/null +++ b/Tests/UseSWIG/runme.php4 @@ -0,0 +1,58 @@ +<?php + +# This file illustrates the low-level C++ interface +# created by SWIG. In this case, all of our C++ classes +# get converted into function calls. + +require("example.php"); + +# ----- Object creation ----- + +print "Creating some objects:\n"; +$c = new_Circle(10); +print " Created circle $c\n"; +$s = new_Square(10); +print " Created square $s\n"; + +# ----- Access a static member ----- + +print "\nA total of " . nshapes() . " shapes were created\n"; + +# ----- Member data access ----- + +# Set the location of the object. +# Note: methods in the base class Shape are used since +# x and y are defined there. + +Shape_x_set($c, 20); +Shape_y_set($c, 30); +Shape_x_set($s,-10); +Shape_y_set($s,5); + +print "\nHere is their current position:\n"; +print " Circle = (" . Shape_x_get($c) . "," . Shape_y_get($c) . ")\n"; +print " Square = (" . Shape_x_get($s) . "," . Shape_y_get($s) . ")\n"; + +# ----- Call some methods ----- + +print "\nHere are some properties of the shapes:\n"; +foreach (array($c,$s) as $o) { + print " $o\n"; + print " area = " . Shape_area($o) . "\n"; + print " perimeter = " . Shape_perimeter($o) . "\n"; + } +# Notice how the Shape_area() and Shape_perimeter() functions really +# invoke the appropriate virtual method on each object. + +# ----- Delete everything ----- + +print "\nGuess I'll clean up now\n"; + +# Note: this invokes the virtual destructor +delete_Shape($c); +delete_Shape($s); + +print nshapes() . " shapes remain\n"; +print "Goodbye\n"; + +?> |