source: tags/initial/PERL2ARB/ARB.xs

Last change on this file was 2, checked in by oldcode, 24 years ago

Initial revision

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.9 KB
Line 
1#ifdef __cplusplus
2extern "C" {
3#endif
4#include "EXTERN.h"
5#include "perl.h"
6#include "XSUB.h"
7#include "arbdb.h"
8#include "arbdbt.h"
9#include "ARB_ext.c"
10#ifdef __cplusplus
11}
12#endif
13
14
15MODULE = ARB            PACKAGE = ARB    PREFIX = P2A_
16
17PROTOTYPES: ENABLE
18
19GBDATA *
20P2A_find(gbd,key,str,search_mode)
21        GBDATA *gbd
22        char *key
23        char *str
24        char *search_mode
25
26        CODE:
27        if (str[0] == 0) str = 0;
28        if (key[0] == 0) key = 0;
29        RETVAL = GB_find(gbd,key,str,GBP_search_mode(search_mode));
30        OUTPUT:
31        RETVAL
32
33
34GBDATA *
35P2A_search(gbd,str,type_of_entry)
36        GBDATA *gbd
37        char *str
38        char *type_of_entry
39
40        CODE:
41        if (str[0] == 0) str = 0;
42        RETVAL = GB_search(gbd,str,GBP_gb_types(type_of_entry));
43        OUTPUT:
44        RETVAL
45       
46GBDATA *
47P2A_create(father,key,type)
48        GBDATA *father
49        char *key
50        char *type
51
52        CODE:
53        RETVAL = GB_create(father,key,GBP_gb_types(type));
54        OUTPUT:
55        RETVAL
56
57GBDATA *
58P2A_first_marked(gbd,keystring)
59        GBDATA *gbd
60        char *keystring
61
62        CODE:
63        if(keystring[0] == 0) keystring=0;
64        RETVAL = GB_first_marked(gbd,keystring);
65        OUTPUT:
66        RETVAL
67
68GBDATA *
69P2A_next_marked(gbd,keystring)
70        GBDATA *gbd
71        char *keystring
72
73        CODE:
74        if(keystring[0] == 0) keystring=0;
75        RETVAL = GB_next_marked(gbd,keystring);
76        OUTPUT:
77        RETVAL
78
79char *
80P2A_read_string(gbd)
81        GBDATA *gbd
82
83        CODE:
84        RETVAL = GB_read_char_pntr(gbd);
85        OUTPUT:
86        RETVAL
87
88char *
89P2A_read_bits(gbd,c_0,c_1)
90        GBDATA *gbd
91        char c_0
92        char c_1
93
94        CODE:
95        RETVAL = GB_read_bits_pntr(gbd,c_0,c_1);
96        OUTPUT:
97        RETVAL
98
99
100
101char *
102P2A_read_bytes(gbd)
103        GBDATA *gbd
104
105        CODE:
106        RETVAL = GB_read_bytes_pntr(gbd);
107        OUTPUT:
108        RETVAL
109
110
111long
112P2A_read_ints_using_index(gbd,index)
113        GBDATA *gbd
114        int     index
115
116        CODE:
117        if( index >= GB_read_count(gbd)){
118                croak("Error: ARB::read_ints_using_index index '%i' out of [0,%i[", index, GB_read_count(gbd));
119        };
120        RETVAL = GB_read_ints_pntr(gbd)[index];
121        OUTPUT:
122        RETVAL
123
124double
125P2A_read_floats_using_index(gbd,index)
126        GBDATA *gbd
127        int     index
128
129        CODE:
130        if( index >= GB_read_count(gbd)){
131                croak("Error: ARB::read_ints_using_index index '%i' out of [0,%i[", index, GB_read_count(gbd));
132        };
133        RETVAL = GB_read_floats_pntr(gbd)[index];
134        OUTPUT:
135        RETVAL
136
137char *
138P2A_write_ints_using_index(gbd,val,index)
139        GBDATA *gbd
140        long val
141        long index
142
143        CODE:
144        RETVAL = "Not Implemented"; /* GB_write_ints(gbd,i,size);*/
145        OUTPUT:
146        RETVAL
147
148char *
149P2A_write_floats_using_index(gbd,f,index)
150        GBDATA *gbd
151        double f
152        long index
153
154        CODE:
155        RETVAL = "Not Implemented"; /*GB_write_floats(gbd,f,size);*/
156        OUTPUT:
157        RETVAL
158
159
160char *
161P2A_read_type(gbd)
162        GBDATA *gbd
163
164        CODE:
165        RETVAL = GBP_type_to_string(GB_read_type(gbd));
166        OUTPUT:
167        RETVAL
168
169char *
170P2A_add_callback(gbd,func_name,clientdata)
171        GBDATA *gbd
172        char *func_name
173        char *clientdata
174
175        CODE:
176        RETVAL = (char *)GBP_add_callback(gbd,func_name,clientdata);
177        OUTPUT:
178        RETVAL
179       
180char *
181P2A_ensure_callback(gbd,func_name,clientdata)
182        GBDATA *gbd
183        char *func_name
184        char *clientdata
185
186        CODE:
187        RETVAL = (char *)GBP_ensure_callback(gbd,func_name,clientdata);
188        OUTPUT:
189        RETVAL
190       
191void 
192P2A_usleep(usec)
193        long usec
194
195        PPCODE:
196        GB_usleep(usec);
197
198       
199char *
200P2A_remove_callback(gbd,func_name,clientdata)
201        GBDATA *gbd
202        char *func_name
203        char *clientdata
204
205        CODE:
206        RETVAL = (char *)GBP_remove_callback(gbd,func_name,clientdata);
207        OUTPUT:
208        RETVAL
209
210char *
211P2A_request_undo_type(gb_main,type)
212        GBDATA *gb_main
213        char *type
214
215        CODE:
216        RETVAL = (char *)GB_request_undo_type(gb_main,GBP_undo_types(type));
217        OUTPUT:
218        RETVAL
219
220char *
221P2A_undo(gb_main,type)
222        GBDATA *gb_main
223        char *type
224
225        CODE:
226        RETVAL = (char *)GB_undo(gb_main,GBP_undo_types(type));
227        OUTPUT:
228        RETVAL
229
230char *
231P2A_undo_info(gb_main,type)
232        GBDATA *gb_main
233        char *type
234
235        CODE:
236        if (static_pntr) free(static_pntr);
237        static_pntr = GB_undo_info(gb_main,GBP_undo_types(type));
238        RETVAL = static_pntr;
239        OUTPUT:
240        RETVAL
241
242char *
243P2A_get_requested_undo_type(gb_main)
244        GBDATA *gb_main
245
246        CODE:
247        RETVAL = (char *)GBP_undo_type_2_string(GB_get_requested_undo_type(gb_main));
248        OUTPUT:
249        RETVAL
250       
251GBDATA *
252P2AT_open_table_field(gb_table,key,type)
253        GBDATA *gb_table
254        char *key
255        char *type
256
257        CODE:
258        RETVAL = GBT_open_table_field(gb_table,key,GBP_gb_types(type));
259        OUTPUT:
260        RETVAL
261
262       
Note: See TracBrowser for help on using the repository browser.