diff options
author | William S Fulton <wsf@fultondesigns.co.uk> | 2019-03-03 14:26:43 +0000 |
---|---|---|
committer | William S Fulton <wsf@fultondesigns.co.uk> | 2019-03-03 14:52:57 +0000 |
commit | 34108deec7e89d9f7c70b337702cfffb1e34c006 (patch) | |
tree | e78b89d81abeea893c598ee403e8898456e43050 /Doc | |
parent | 3b07cba74066ef3a95b1e66a8c7d869a9510d1b9 (diff) | |
download | swig-34108deec7e89d9f7c70b337702cfffb1e34c006.tar.gz |
Documentation for directors and virtual final methods
Diffstat (limited to 'Doc')
-rw-r--r-- | Doc/Manual/Go.html | 4 | ||||
-rw-r--r-- | Doc/Manual/Java.html | 7 | ||||
-rw-r--r-- | Doc/Manual/Perl5.html | 7 | ||||
-rw-r--r-- | Doc/Manual/Php.html | 7 | ||||
-rw-r--r-- | Doc/Manual/Python.html | 7 |
5 files changed, 19 insertions, 13 deletions
diff --git a/Doc/Manual/Go.html b/Doc/Manual/Go.html index 4a60e45e0..047b46edf 100644 --- a/Doc/Manual/Go.html +++ b/Doc/Manual/Go.html @@ -785,7 +785,9 @@ In order to override virtual methods on a C++ class with Go methods the <tt>NewDirectorClassName</tt> constructor functions receives a <tt>DirectorInterface</tt> argument. The methods in the <tt> DirectorInterface</tt> are a subset of the public and protected virtual methods -of the C++ class. If the <tt>DirectorInterface</tt> contains a method with a +of the C++ class. +Virtual methods that have a final specifier are unsurprisingly excluded. +If the <tt>DirectorInterface</tt> contains a method with a matching signature to a virtual method of the C++ class then the virtual C++ method will be overwritten with the Go method. As Go doesn't support protected methods all overridden protected virtual C++ methods will be public in Go. diff --git a/Doc/Manual/Java.html b/Doc/Manual/Java.html index bf77c1562..3a04b8a79 100644 --- a/Doc/Manual/Java.html +++ b/Doc/Manual/Java.html @@ -3629,7 +3629,7 @@ The %feature directive can be applied globally, to specific classes, and to spec // generate directors for all classes that have virtual methods %feature("director"); -// generate directors for all virtual methods in class Foo +// generate directors for the virtual methods in class Foo %feature("director") Foo; </pre> </div> @@ -3647,7 +3647,7 @@ So for example, </div> <p> -will generate directors for all virtual methods of class Foo except bar(). +will generate directors for the virtual methods of class Foo except bar(). </p> <p> @@ -3683,7 +3683,8 @@ The director classes store a pointer to their underlying Java proxy classes. <p> For simplicity let's ignore the <tt>Swig::Director</tt> class and refer to the original C++ class as the director's base class. By default, a director class extends all virtual methods in the inheritance chain of its base class (see the preceding section for how to modify this behavior). -Thus all virtual method calls, whether they originate in C++ or in Java via proxy classes, eventually end up in at the implementation in the director class. +Virtual methods that have a final specifier are unsurprisingly excluded. +Thus the virtual method calls, whether they originate in C++ or in Java via proxy classes, eventually end up in at the implementation in the director class. The job of the director methods is to route these method calls to the appropriate place in the inheritance chain. By "appropriate place" we mean the method that would have been called if the C++ base class and its Java derived classes were seamlessly integrated. That seamless integration is exactly what the director classes provide, transparently skipping over all the messy JNI glue code that binds the two languages together. diff --git a/Doc/Manual/Perl5.html b/Doc/Manual/Perl5.html index 5ce765c26..766ccaede 100644 --- a/Doc/Manual/Perl5.html +++ b/Doc/Manual/Perl5.html @@ -3070,7 +3070,7 @@ globally, to specific classes, and to specific methods, like this: // generate directors for all classes that have virtual methods %feature("director"); -// generate directors for all virtual methods in class Foo +// generate directors for the virtual methods in class Foo %feature("director") Foo; </pre> </div> @@ -3088,7 +3088,7 @@ directors for specific classes or methods. So for example, </div> <p> -will generate directors for all virtual methods of class Foo except +will generate directors for the virtual methods of class Foo except bar(). </p> @@ -3153,7 +3153,8 @@ For simplicity let's ignore the <tt>Swig::Director</tt> class and refer to the original C++ class as the director's base class. By default, a director class extends all virtual methods in the inheritance chain of its base class (see the preceding section for how to modify this behavior). -Thus all virtual method calls, whether they originate in C++ or in +Virtual methods that have a final specifier are unsurprisingly excluded. +Thus the virtual method calls, whether they originate in C++ or in Perl via proxy classes, eventually end up in at the implementation in the director class. The job of the director methods is to route these method calls to the appropriate place in the inheritance chain. By diff --git a/Doc/Manual/Php.html b/Doc/Manual/Php.html index 85732fd33..1b8b2d468 100644 --- a/Doc/Manual/Php.html +++ b/Doc/Manual/Php.html @@ -937,7 +937,7 @@ globally, to specific classes, and to specific methods, like this: // generate directors for all classes that have virtual methods %feature("director"); -// generate directors for all virtual methods in class Foo +// generate directors for the virtual methods in class Foo %feature("director") Foo; </pre> </div> @@ -955,7 +955,7 @@ directors for specific classes or methods. So for example, </div> <p> -will generate directors for all virtual methods of class Foo except +will generate directors for the virtual methods of class Foo except bar(). </p> @@ -1020,7 +1020,8 @@ For simplicity let's ignore the <tt>Swig::Director</tt> class and refer to the original C++ class as the director's base class. By default, a director class extends all virtual methods in the inheritance chain of its base class (see the preceding section for how to modify this behavior). -Thus all virtual method calls, whether they originate in C++ or in +Virtual methods that have a final specifier are unsurprisingly excluded. +Thus the virtual method calls, whether they originate in C++ or in PHP via proxy classes, eventually end up in at the implementation in the director class. The job of the director methods is to route these method calls to the appropriate place in the inheritance chain. By "appropriate diff --git a/Doc/Manual/Python.html b/Doc/Manual/Python.html index 6a174fddf..2554e9da3 100644 --- a/Doc/Manual/Python.html +++ b/Doc/Manual/Python.html @@ -2934,7 +2934,7 @@ globally, to specific classes, and to specific methods, like this: // generate directors for all classes that have virtual methods %feature("director"); -// generate directors for all virtual methods in class Foo +// generate directors for the virtual methods in class Foo %feature("director") Foo; </pre> </div> @@ -2952,7 +2952,7 @@ directors for specific classes or methods. So for example, </div> <p> -will generate directors for all virtual methods of class Foo except +will generate directors for the virtual methods of class Foo except bar(). </p> @@ -3018,7 +3018,8 @@ For simplicity let's ignore the <tt>Swig::Director</tt> class and refer to the original C++ class as the director's base class. By default, a director class extends all virtual methods in the inheritance chain of its base class (see the preceding section for how to modify this behavior). -Thus all virtual method calls, whether they originate in C++ or in +Virtual methods that have a final specifier are unsurprisingly excluded. +Thus the virtual method calls, whether they originate in C++ or in Python via proxy classes, eventually end up in at the implementation in the director class. The job of the director methods is to route these method calls to the appropriate place in the inheritance chain. By |