root/trunk/bindings/bcd/bind.h

Revision 61, 4.0 kB (checked in by Gregor, 6 years ago)

--

Line 
1 /**
2  * Generic classes et cetera for all BCD-generated C++ bindings.
3  *
4  * Authors: Gregor Richards
5  *
6  * License:
7  *  Copyright (C) 2006  Gregor Richards
8  * 
9  *  This program is free software; you can redistribute it and/or
10  *  modify it under the terms of the GNU General Public License
11  *  as published by the Free Software Foundation; either version 2
12  *  of the License, or (at your option) any later version.
13  * 
14  *  This program is distributed in the hope that it will be useful,
15  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
16  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  *  GNU General Public License for more details.
18  * 
19  *  You should have received a copy of the GNU General Public License
20  *  along with this program; if not, write to the Free Software
21  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
22  */
23
24 // D-provided interfaces to reflected classes
25 extern "C" void *CXXReflectedClass_opNeg(void *c);
26 extern "C" void *CXXReflectedClass_opPos(void *c);
27 extern "C" void *CXXReflectedClass_opPostInc(void *c);
28 extern "C" void *CXXReflectedClass_opPostDec(void *c);
29    
30 extern "C" void *CXXReflectedClass_opAdd(void *c, void *x);
31 extern "C" void *CXXReflectedClass_opSub(void *c, void *x);
32 extern "C" void *CXXReflectedClass_opMul(void *c, void *x);
33 extern "C" void *CXXReflectedClass_opDiv(void *c, void *x);
34 extern "C" void *CXXReflectedClass_opMod(void *c, void *x);
35 extern "C" void *CXXReflectedClass_opAnd(void *c, void *x);
36 extern "C" void *CXXReflectedClass_opOr(void *c, void *x);
37 extern "C" void *CXXReflectedClass_opXor(void *c, void *x);
38 extern "C" void *CXXReflectedClass_opShl(void *c, void *x);
39 extern "C" void *CXXReflectedClass_opShr(void *c, void *x);
40 extern "C" int CXXReflectedClass_opEquals(void *c, void *x);
41 extern "C" int CXXReflectedClass_opNotEquals(void *c, void *x);
42 extern "C" int CXXReflectedClass_opLT(void *c, void *x);
43 extern "C" int CXXReflectedClass_opLE(void *c, void *x);
44 extern "C" int CXXReflectedClass_opGT(void *c, void *x);
45 extern "C" int CXXReflectedClass_opGE(void *c, void *x);
46 extern "C" void *CXXReflectedClass_opAddAssign(void *c, void *x);
47 extern "C" void *CXXReflectedClass_opSubAssign(void *c, void *x);
48 extern "C" void *CXXReflectedClass_opMulAssign(void *c, void *x);
49 extern "C" void *CXXReflectedClass_opDivAssign(void *c, void *x);
50 extern "C" void *CXXReflectedClass_opModAssign(void *c, void *x);
51 extern "C" void *CXXReflectedClass_opAndAssign(void *c, void *x);
52 extern "C" void *CXXReflectedClass_opOrAssign(void *c, void *x);
53 extern "C" void *CXXReflectedClass_opXorAssign(void *c, void *x);
54
55
56 // classes reflected into C++ from D
57 class DReflectedClass {
58     public:
59    
60     DReflectedClass();
61     DReflectedClass(void *sdptr);
62    
63     DReflectedClass operator-();
64     DReflectedClass operator+();
65     DReflectedClass operator++(int x);
66     DReflectedClass operator--(int x);
67    
68     DReflectedClass operator+(DReflectedClass x);
69     DReflectedClass operator-(DReflectedClass x);
70     DReflectedClass operator*(DReflectedClass x);
71     DReflectedClass operator/(DReflectedClass x);
72     DReflectedClass operator%(DReflectedClass x);
73     DReflectedClass operator&(DReflectedClass x);
74     DReflectedClass operator|(DReflectedClass x);
75     DReflectedClass operator^(DReflectedClass x);
76     DReflectedClass operator<<(DReflectedClass x);
77     DReflectedClass operator>>(DReflectedClass x);
78     int operator==(DReflectedClass x);
79     int operator!=(DReflectedClass x);
80     int operator<(DReflectedClass x);
81     int operator<=(DReflectedClass x);
82     int operator>(DReflectedClass x);
83     int operator>=(DReflectedClass x);
84     DReflectedClass operator+=(DReflectedClass x);
85     DReflectedClass operator-=(DReflectedClass x);
86     DReflectedClass operator*=(DReflectedClass x);
87     DReflectedClass operator/=(DReflectedClass x);
88     DReflectedClass operator%=(DReflectedClass x);
89     DReflectedClass operator&=(DReflectedClass x);
90     DReflectedClass operator|=(DReflectedClass x);
91     DReflectedClass operator^=(DReflectedClass x);
92    
93     void *dptr;
94 };
Note: See TracBrowser for help on using the browser.