/trunk/Examples/test-suite/extend.i
Swig | 53 lines | 49 code | 4 blank | 0 comment | 0 complexity | 33abc5dff56d4738ac09bc5f23f35097 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
- %module extend
- %extend Base {
- ~Base() {
- delete $self;
- }
- static int zeroVal() {
- return 0;
- }
- virtual int currentValue() {
- return $self->value;
- }
- int extendmethod(int v) {
- int ret = $self->method(v);
- return ret * 2;
- }
- };
- %inline %{
- struct Base {
- Base(int v = 0) : value(v) {}
- int value;
- virtual int method(int v) {
- return v;
- }
- };
- struct Derived : Base {
- double actualval;
- };
- %}
- %{
- double extendval = 0;
- double Derived_extendval_get(Derived *self) {
- return self->actualval * 100;
- }
- void Derived_extendval_set(Derived *self, double d) {
- self->actualval = d/100;
- }
- %}
- %extend Derived {
- Derived(int v) {
- Derived *$self = new Derived();
- $self->value = v*2;
- return $self;
- }
- virtual int method(int v) {
- int ret = $self->Base::method(v);
- return ret * 2;
- }
- double extendval;
- }