aboutsummaryrefslogtreecommitdiff
path: root/Examples/xml/example_xml.i
blob: a598b6a425188a6c4a96d0b8352571d990ee9fad (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
/* File : example.i */
%module my_example

enum color { RED=10, BLUE, GREEN };

class Foo {
 public:
  Foo() { }
  enum speed { IMPULSE, WARP, LUDICROUS };
  void enum_test(speed s);
};

void enum_test(color c, Foo::speed s);



%include pointer.i

/* Next we'll use some typemaps */

%include typemaps.i

%typemap(out) int * {
    WHATEVER  MAKES YOU HAPPY AS RESULT
}

%typemap(in) int * {
    WHATEVER  MAKES YOU HAPPY AS PARAMETER
}

%pragma(xml) DEBUG="false";

extern  int *  my_gcd(const char * x, int * y[], int * r, int (*op)(int,int)) const;
extern double my_foo;
void my_void();
my_empty();

const double my_dutch = 1.0;

union my_union
{
    int my_iii;
    char my_ccc;
};

struct my_struct
{
public:
    virtual ~my_struct();
  int my_foo();
protected:
  int my_bar;
  double  x, y;   
  virtual double area() = 0;
  static  int nshapes;
};

class my_class : public my_struct, public my_union
{
public:
    my_class( char c );
private:
    ~my_class();
    virtual const int *  my_func( my_class , char * * x, int y[], const int & r) const;
    double my_foo[128];
    const my_int i;
};

typedef int my_int;