Listing 11: foo_wrap.cc (sample 2).

#include "native_library/native.h"
#include "native_wrap.h"
extern "C" { 
  NativeClass_wrap  * newNativeClass() { 
    return (NativeClass_wrap*) new CNativeClass(); 
  }
  void deleteNativeClass( NativeClass_wrap *& native) { 
    NativeClass * native_ = (NativeClass*) native;
    delete native_; 
    native = 0; 
  }
  double calcEllipse( NativeClass_wrap * native, 
                    EllipseData_wrap input) { 
    EllipseData data = { input.r1, input.r2};
    NativeClass * native_ = (NativeClass*) native;
    return native->calcEllipse( data); 
  }
} /* extern "C" */