const char * is now a T_PV.
[ZOOM-Perl-moved-to-github.git] / typemap
1 # $Id: typemap,v 1.3 2005-10-11 15:40:14 mike Exp $
2
3 ZOOM_connection                                 T_PTROBJ
4 ZOOM_connection *                               T_PTROBJ
5 ZOOM_options                                    T_PTROBJ
6 ZOOM_options_callback                           T_PTROBJ
7 ZOOM_package                                    T_PTROBJ
8 ZOOM_query                                      T_PTROBJ
9 ZOOM_record                                     T_PTROBJ
10 ZOOM_record *                                   T_PTROBJ
11 ZOOM_resultset                                  T_PTROBJ
12 ZOOM_scanset                                    T_PTROBJ
13 __compar_fn_t                                   T_PTROBJ
14 __const char *                                  T_PTROBJ
15 __const void *                                  T_PTROBJ
16 __const wchar_t *                               T_PTROBJ
17 __extension__ extern lldiv_t                    T_PTROBJ
18 __extension__ extern long long int              T_PTROBJ
19 __extension__ extern unsigned long long int     T_PTROBJ
20 __locale_t                                      T_PTROBJ
21 char * __const *                                T_PTROBJ
22 const __sigset_t *                              T_PTROBJ
23 # The next line was originally autogenerated by h2xs, which gave the
24 # type of "const char *" as T_PTROBJ -- a pointer to an opaque object.
25 # This prevented the return value of ZOOM_record_get() from being
26 # translated into a Perl string.  Instead, I am using T_PV, which
27 # works properly.
28 const char *                                    T_PV
29 const char **                                   T_PTROBJ
30 const struct timespec *                         T_PTROBJ
31 div_t                                           T_OPAQUE_STRUCT
32 double *                                        T_PTROBJ
33 fd_set *                                        T_PTROBJ
34 int *                                           T_PTROBJ
35 int32_t *                                       T_PTROBJ
36 ldiv_t                                          T_OPAQUE_STRUCT
37 long double                                     T_NV
38 long int                                        T_PTROBJ
39 long int *                                      T_PTROBJ
40 long long int                                   T_PTROBJ
41 struct drand48_data *                           T_PTROBJ
42 struct random_data *                            T_PTROBJ
43 struct timeval *                                T_PTROBJ
44 unsigned int *                                  T_PTROBJ
45 unsigned long int                               T_PTROBJ
46 unsigned short int                              T_PTROBJ
47 unsigned short int *                            T_PTROBJ
48 void ( * __func ) ( int __status, void * __arg )        T_PTROBJ
49 void ( * __func ) ( void )                      T_PTROBJ
50 void **                                         T_PTROBJ
51 #############################################################################
52 INPUT
53 T_OPAQUE_STRUCT
54         if (sv_derived_from($arg, \"${ntype}\")) {
55             STRLEN len;
56             char  *s = SvPV((SV*)SvRV($arg), len);
57
58             if (len != sizeof($var))
59                 croak(\"Size %d of packed data != expected %d\",
60                         len, sizeof($var));
61             $var = *($type *)s;
62         }
63         else
64             croak(\"$var is not of type ${ntype}\")
65 #############################################################################
66 OUTPUT
67 T_OPAQUE_STRUCT
68         sv_setref_pvn($arg, \"${ntype}\", (char *)&$var, sizeof($var));