blob: 6280090e40f02fdc549894b2e79080e45f619a1e [file]
#include <memory>
#include "cpp_inheritance_test.h"
#if defined(_WIN32)
#define FFIGEN_EXPORT __declspec(dllexport)
#else
#define FFIGEN_EXPORT
#endif
extern "C" {
FFIGEN_EXPORT int AccessBase_value(const AccessBase* self) {
return self->value();
}
FFIGEN_EXPORT void AccessBase_delete(AccessBase* self) {
delete self;
}
FFIGEN_EXPORT Circle* Circle_new(double x, double y, double radius) {
return new Circle(x, y, radius);
}
FFIGEN_EXPORT double Circle_area(const Circle* self) {
return self->area();
}
FFIGEN_EXPORT double Circle_getX(const Circle* self) {
return self->getX();
}
FFIGEN_EXPORT double Circle_getY(const Circle* self) {
return self->getY();
}
FFIGEN_EXPORT void Circle_delete(Circle* self) {
delete self;
}
FFIGEN_EXPORT ColoredCircle* ColoredCircle_new(double x, double y, double radius, int color) {
return new ColoredCircle(x, y, radius, color);
}
FFIGEN_EXPORT int ColoredCircle_getColor(const ColoredCircle* self) {
return self->getColor();
}
FFIGEN_EXPORT double ColoredCircle_area(const ColoredCircle* self) {
return self->area();
}
FFIGEN_EXPORT double ColoredCircle_getX(const ColoredCircle* self) {
return self->getX();
}
FFIGEN_EXPORT double ColoredCircle_getY(const ColoredCircle* self) {
return self->getY();
}
FFIGEN_EXPORT int ColoredCircle_draw(const ColoredCircle* self) {
return self->draw();
}
FFIGEN_EXPORT void ColoredCircle_delete(ColoredCircle* self) {
delete self;
}
FFIGEN_EXPORT DiamondBase* DiamondBase_new() {
return new DiamondBase();
}
FFIGEN_EXPORT int DiamondBase_baseVal(const DiamondBase* self) {
return self->baseVal();
}
FFIGEN_EXPORT int DiamondBase_virtVal(const DiamondBase* self) {
return self->virtVal();
}
FFIGEN_EXPORT void DiamondBase_delete(DiamondBase* self) {
delete self;
}
FFIGEN_EXPORT DiamondDerived* DiamondDerived_new() {
return new DiamondDerived();
}
FFIGEN_EXPORT int DiamondDerived_virtVal(const DiamondDerived* self) {
return self->virtVal();
}
FFIGEN_EXPORT int DiamondDerived_baseVal(const DiamondDerived* self) {
return self->baseVal();
}
FFIGEN_EXPORT void DiamondDerived_delete(DiamondDerived* self) {
delete self;
}
FFIGEN_EXPORT DiamondLeft* DiamondLeft_new() {
return new DiamondLeft();
}
FFIGEN_EXPORT int DiamondLeft_virtVal(const DiamondLeft* self) {
return self->virtVal();
}
FFIGEN_EXPORT int DiamondLeft_baseVal(const DiamondLeft* self) {
return self->baseVal();
}
FFIGEN_EXPORT void DiamondLeft_delete(DiamondLeft* self) {
delete self;
}
FFIGEN_EXPORT DiamondRight* DiamondRight_new() {
return new DiamondRight();
}
FFIGEN_EXPORT int DiamondRight_baseVal(const DiamondRight* self) {
return self->baseVal();
}
FFIGEN_EXPORT int DiamondRight_virtVal(const DiamondRight* self) {
return self->virtVal();
}
FFIGEN_EXPORT void DiamondRight_delete(DiamondRight* self) {
delete self;
}
FFIGEN_EXPORT Drawable* Drawable_new() {
return new Drawable();
}
FFIGEN_EXPORT int Drawable_draw(const Drawable* self) {
return self->draw();
}
FFIGEN_EXPORT void Drawable_delete(Drawable* self) {
delete self;
}
FFIGEN_EXPORT OverloadBase* OverloadBase_new() {
return new OverloadBase();
}
FFIGEN_EXPORT int OverloadBase_getValue(OverloadBase* self, int x) {
return self->getValue(x);
}
FFIGEN_EXPORT double OverloadBase_getValueDouble(OverloadBase* self, double x) {
return self->getValueDouble(x);
}
FFIGEN_EXPORT void OverloadBase_delete(OverloadBase* self) {
delete self;
}
FFIGEN_EXPORT OverloadDerived* OverloadDerived_new() {
return new OverloadDerived();
}
FFIGEN_EXPORT int OverloadDerived_getValue(OverloadDerived* self, int x) {
return self->getValue(x);
}
FFIGEN_EXPORT double OverloadDerived_getValueDouble(OverloadDerived* self, double x) {
return self->getValueDouble(x);
}
FFIGEN_EXPORT void OverloadDerived_delete(OverloadDerived* self) {
delete self;
}
FFIGEN_EXPORT PrivateDerived* PrivateDerived_new() {
return new PrivateDerived();
}
FFIGEN_EXPORT void PrivateDerived_delete(PrivateDerived* self) {
delete self;
}
FFIGEN_EXPORT ProtectedDerived* ProtectedDerived_new() {
return new ProtectedDerived();
}
FFIGEN_EXPORT void ProtectedDerived_delete(ProtectedDerived* self) {
delete self;
}
FFIGEN_EXPORT PublicDerived* PublicDerived_new() {
return new PublicDerived();
}
FFIGEN_EXPORT int PublicDerived_value(const PublicDerived* self) {
return self->value();
}
FFIGEN_EXPORT void PublicDerived_delete(PublicDerived* self) {
delete self;
}
FFIGEN_EXPORT Shape* Shape_new(double x, double y) {
return new Shape(x, y);
}
FFIGEN_EXPORT double Shape_getX(const Shape* self) {
return self->getX();
}
FFIGEN_EXPORT double Shape_getY(const Shape* self) {
return self->getY();
}
FFIGEN_EXPORT void Shape_delete(Shape* self) {
delete self;
}
FFIGEN_EXPORT Square* Square_new(double x, double y, double side) {
return new Square(x, y, side);
}
FFIGEN_EXPORT double Square_getX(const Square* self) {
return self->getX();
}
FFIGEN_EXPORT double Square_area(const Square* self) {
return self->area();
}
FFIGEN_EXPORT double Square_getY(const Square* self) {
return self->getY();
}
FFIGEN_EXPORT void Square_delete(Square* self) {
delete self;
}
}