📄 tinysvm_wrap.c
字号:
/* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). * Version 1.3.6u-20010826-1259 * * This file is not intended to be easily readable and contains a number of * coding conventions designed to improve portability and efficiency. Do not make * changes to this file unless you know what you are doing--modify the SWIG * interface file instead. * ----------------------------------------------------------------------------- *//*********************************************************************** * common.swg * * This file contains generic SWIG runtime support for pointer * type checking as well as a few commonly used macros to control * external linkage. * * Author : David Beazley (beazley@cs.uchicago.edu) * * Copyright (c) 1999-2000, The University of Chicago * * This file may be freely redistributed without license or fee provided * this copyright message remains intact. ************************************************************************/#include <string.h>#if defined(_WIN32) || defined(__WIN32__)# if defined(_MSC_VER)# if defined(STATIC_LINKED)# define SWIGEXPORT(a) a# else# define SWIGEXPORT(a) __declspec(dllexport) a# endif# else# if defined(__BORLANDC__)# define SWIGEXPORT(a) a _export# else# define SWIGEXPORT(a) a# endif#endif#else# define SWIGEXPORT(a) a#endif#ifdef SWIG_GLOBAL#define SWIGRUNTIME(a) SWIGEXPORT(a)#else#define SWIGRUNTIME(a) static a#endif#ifdef __cplusplusextern "C" {#endiftypedef struct swig_type_info { const char *name; void *(*converter)(void *); const char *str; struct swig_type_info *next; struct swig_type_info *prev;} swig_type_info;#ifdef SWIG_NOINCLUDESWIGEXPORT(swig_type_info *) SWIG_TypeRegister(swig_type_info *);SWIGEXPORT(swig_type_info *) SWIG_TypeCheck(char *c, swig_type_info *);SWIGEXPORT(void *) SWIG_TypeCast(swig_type_info *, void *);SWIGEXPORT(swig_type_info *) SWIG_TypeQuery(const char *);#elsestatic swig_type_info *swig_type_list = 0;/* Register a type mapping with the type-checking */SWIGRUNTIME(swig_type_info *)SWIG_TypeRegister(swig_type_info *ti){ swig_type_info *tc, *head, *ret, *next; /* Check to see if this type has already been registered */ tc = swig_type_list; while (tc) { if (strcmp(tc->name, ti->name) == 0) { /* Already exists in the table. Just add additional types to the list */ head = tc; next = tc->next; goto l1; } tc = tc->prev; } head = ti; next = 0; /* Place in list */ ti->prev = swig_type_list; swig_type_list = ti; /* Build linked lists */ l1: ret = head; tc = ti + 1; /* Patch up the rest of the links */ while (tc->name) { head->next = tc; tc->prev = head; head = tc; tc++; } head->next = next; return ret;}/* Check the typename */SWIGRUNTIME(swig_type_info *) SWIG_TypeCheck(char *c, swig_type_info *ty){ swig_type_info *s; if (!ty) return 0; /* Void pointer */ s = ty->next; /* First element always just a name */ while (s) { if (strcmp(s->name,c) == 0) { if (s == ty->next) return s; /* Move s to the top of the linked list */ s->prev->next = s->next; if (s->next) { s->next->prev = s->prev; } /* Insert s as second element in the list */ s->next = ty->next; if (ty->next) ty->next->prev = s; ty->next = s; return s; } s = s->next; } return 0;}/* Cast a pointer (needed for C++ inheritance */SWIGRUNTIME(void *) SWIG_TypeCast(swig_type_info *ty, void *ptr) { if ((!ty) || (!ty->converter)) return ptr; return (*ty->converter)(ptr);}/* Search for a swig_type_info structure */SWIGRUNTIME(swig_type_info *)SWIG_TypeQuery(const char *name) { swig_type_info *ty = swig_type_list; while (ty) { if (ty->str && (strcmp(name,ty->str) == 0)) return ty; if (ty->name && (strcmp(name,ty->name) == 0)) return ty; ty = ty->prev; } return 0;}#endif#ifdef __cplusplus}#endif/* ----------------------------------------------------------------------------- * perl5.swg * * Perl5 runtime library * $Header: /cl/lab/cvsroot/taku-ku/TinySVM/perl/TinySVM_wrap.c,v 1.2 2001/08/29 14:52:46 taku-ku Exp $ * ----------------------------------------------------------------------------- */#define SWIGPERL#define SWIGPERL5#ifdef __cplusplus/* Needed on some windows machines---since MS plays funny games with the header files under C++ */#include <math.h>#include <stdlib.h>extern "C" {#endif#include "EXTERN.h"#include "perl.h"#include "XSUB.h"/* Get rid of free and malloc defined by perl */#undef free#undef malloc#include <string.h>#ifdef __cplusplus}#endif#ifdef PERL_OBJECT#define MAGIC_PPERL CPerlObj *pPerl = (CPerlObj *) this;#define MAGIC_CAST (int (CPerlObj::*)(SV *, MAGIC *))#define SWIGCLASS_STATIC #else#define MAGIC_PPERL#define MAGIC_CAST#define SWIGCLASS_STATIC static#endif#if defined(WIN32) && defined(PERL_OBJECT) && !defined(PerlIO_exportFILE)#define PerlIO_exportFILE(fh,fl) (FILE*)(fh)#endif/* Modifications for newer Perl 5.005 releases */#if !defined(PERL_REVISION) || ((PERL_REVISION >= 5) && ((PERL_VERSION < 5) || ((PERL_VERSION == 5) && (PERL_SUBVERSION < 50))))#ifndef PL_sv_yes#define PL_sv_yes sv_yes#endif#ifndef PL_sv_undef#define PL_sv_undef sv_undef#endif#ifndef PL_na#define PL_na na#endif#endif#include <stdlib.h>#ifdef __cplusplusextern "C" {#endif#ifdef SWIG_NOINCLUDE#ifndef PERL_OBJECTextern int SWIG_ConvertPtr(SV *, void **, swig_type_info *);extern void SWIG_MakePtr(SV *, void *, swig_type_info *);#elseextern int _SWIG_ConvertPtr(CPerlObj *, SV *, void **, swig_type_info *);extern void _SWIG_MakePtr(CPerlObj *, SV *, void *, swig_type_info *);#define SWIG_ConvertPtr(a,b,c) _SWIG_ConvertPtr(pPerl,a,b,c)#define SWIG_MakePtr(a,b,c) _SWIG_MakePtr(pPerl,a,b,c)#endif#endif/* Function for getting a pointer value */#ifndef PERL_OBJECTSWIGRUNTIME(int) SWIG_ConvertPtr(SV *sv, void **ptr, swig_type_info *_t)#else#define SWIG_ConvertPtr(a,b,c) _SWIG_GetConvert(pPerl,a,b,c)SWIGRUNTIME(int)_SWIG_ConvertPtr(CPerlObj *pPerl, SV *sv, void **ptr, swig_type_info *_t)#endif{ char *_c; swig_type_info *tc; IV tmp; /* If magical, apply more magic */ if (SvGMAGICAL(sv)) mg_get(sv); /* Check to see if this is an object */ if (sv_isobject(sv)) { SV *tsv = (SV*) SvRV(sv); if ((SvTYPE(tsv) == SVt_PVHV)) { MAGIC *mg; if (SvMAGICAL(tsv)) { mg = mg_find(tsv,'P'); if (mg) { SV *rsv = mg->mg_obj; if (sv_isobject(rsv)) { tmp = SvIV((SV*)SvRV(rsv)); } } } else { return -1; } } else { tmp = SvIV((SV*)SvRV(sv)); } if (!_t) { *(ptr) = (void *) tmp; return 0; } } else if (! SvOK(sv)) { /* Check for undef */ *(ptr) = (void *) 0; return 0; } else if (SvTYPE(sv) == SVt_RV) { /* Check for NULL pointer */ *(ptr) = (void *) 0; if (!SvROK(sv)) return 0; else return -1; } else { /* Don't know what it is */ *(ptr) = (void *) 0; return -1; } if (_t) { /* Now see if the types match */ _c = HvNAME(SvSTASH(SvRV(sv))); tc = SWIG_TypeCheck(_c,_t); if (!tc) { *ptr = (void *) tmp; return -1; } *ptr = SWIG_TypeCast(tc,(void *)tmp); return 0; } *ptr = (void *) tmp; return 0;}#ifndef PERL_OBJECTSWIGRUNTIME(void) SWIG_MakePtr(SV *sv, void *ptr, swig_type_info *t)#else#define SWIG_MakePtr(a,b,c) _SWIG_MakePtr(pPerl,a,b,c)SWIGRUNTIME(int *)_SWIG_MakePtr(CPerlObj *pPerl, SV *sv, void *ptr, swig_type_info *t)#endif{ sv_setref_pv(sv, (char *) t->name, ptr);}/* Magic variable code */#ifndef PERL_OBJECT#define swig_create_magic(s,a,b,c) _swig_create_magic(s,a,b,c)static void _swig_create_magic(SV *sv, const char *name, int (*set)(SV *, MAGIC *), int (*get)(SV *,MAGIC *)) {#else#define swig_create_magic(s,a,b,c) _swig_create_magic(pPerl,s,a,b,c)static void _swig_create_magic(CPerlObj *pPerl, SV *sv, const char *name, int (CPerlObj::*set)(SV *, MAGIC *), int (CPerlObj::*get)(SV *, MAGIC *)) {#endif MAGIC *mg; sv_magic(sv,sv,'U',(char *) name,strlen(name)); mg = mg_find(sv,'U'); mg->mg_virtual = (MGVTBL *) malloc(sizeof(MGVTBL)); mg->mg_virtual->svt_get = get; mg->mg_virtual->svt_set = set; mg->mg_virtual->svt_len = 0; mg->mg_virtual->svt_clear = 0; mg->mg_virtual->svt_free = 0;}#ifdef __cplusplus}#endif/* -------- TYPES TABLE (BEGIN) -------- */#define SWIGTYPE_p_BaseExample swig_types[0] #define SWIGTYPE_p_Example swig_types[1] #define SWIGTYPE_p_Model swig_types[2] static swig_type_info *swig_types[4];/* -------- TYPES TABLE (END) -------- */#define SWIG_init boot_TinySVM#define SWIG_name "TinySVMc::boot_TinySVM"#define SWIG_varinit "TinySVMc::var_TinySVM_init();"#ifdef __cplusplusextern "C"#endif#ifndef PERL_OBJECTSWIGEXPORT(void) SWIG_init (CV* cv);#elseSWIGEXPORT(void) SWIG_init (CV *cv, CPerlObj *);#endif#include <tinysvm.h>#include <ctype.h>#include <string.h>#define BaseExample TinySVM::BaseExample#define Example TinySVM::Example #define Model TinySVM::Model#undef VALUEFUNC#define VALUEFUNC(f) ((VALUE (*)())f)#ifdef PERL_OBJECT#define MAGIC_CLASS _wrap_TinySVM_var::class _wrap_TinySVM_var : public CPerlObj {public:#else#define MAGIC_CLASS#endifSWIGCLASS_STATIC int swig_magic_readonly(SV *sv, MAGIC *mg) { MAGIC_PPERL sv = sv; mg = mg; croak("Value is read-only."); return 0;}#ifdef PERL_OBJECT};#endifXS(_wrap_BaseExample_add) { BaseExample *arg0 ; char *arg1 ; int argvi = 0; int result ; dXSARGS; if ((items < 2) || (items > 2)) croak("Usage: BaseExample_add(self,char const *);"); if (SWIG_ConvertPtr(ST(0),(void **) &arg0,SWIGTYPE_p_BaseExample) < 0) { croak("Type error in argument 1 of BaseExample_add. Expected %s", SWIGTYPE_p_BaseExample->name); XSRETURN(1); } if (! SvOK((SV*) ST(1))) { arg1 = 0; } else { arg1 = (char *) SvPV(ST(1),PL_na); } result = (int )arg0->add((char const *)arg1); ST(argvi) = sv_newmortal(); sv_setiv(ST(argvi++),(IV) result); XSRETURN(argvi);}XS(_wrap_BaseExample_set) { BaseExample *arg0 ; int arg1 ; char *arg2 ; int argvi = 0; int result ; dXSARGS; if ((items < 3) || (items > 3)) croak("Usage: BaseExample_set(self,i,char const *);"); if (SWIG_ConvertPtr(ST(0),(void **) &arg0,SWIGTYPE_p_BaseExample) < 0) { croak("Type error in argument 1 of BaseExample_set. Expected %s", SWIGTYPE_p_BaseExample->name); XSRETURN(1); } arg1 = (int )SvIV(ST(1)); if (! SvOK((SV*) ST(2))) { arg2 = 0; } else { arg2 = (char *) SvPV(ST(2),PL_na); } result = (int )arg0->set(arg1,(char const *)arg2); ST(argvi) = sv_newmortal(); sv_setiv(ST(argvi++),(IV) result); XSRETURN(argvi);}XS(_wrap_BaseExample_get) { BaseExample *arg0 ; int arg1 ; int argvi = 0; char *result ; dXSARGS; if ((items < 2) || (items > 2)) croak("Usage: BaseExample_get(self,i);"); if (SWIG_ConvertPtr(ST(0),(void **) &arg0,SWIGTYPE_p_BaseExample) < 0) { croak("Type error in argument 1 of BaseExample_get. Expected %s", SWIGTYPE_p_BaseExample->name); XSRETURN(1); } arg1 = (int )SvIV(ST(1)); result = (char *)arg0->get(arg1); ST(argvi) = sv_newmortal(); sv_setpv((SV*)ST(argvi++),(char *) result); XSRETURN(argvi);}XS(_wrap_BaseExample_remove) { BaseExample *arg0 ; int arg1 ; int argvi = 0; int result ; dXSARGS; if ((items < 2) || (items > 2)) croak("Usage: BaseExample_remove(self,i);"); if (SWIG_ConvertPtr(ST(0),(void **) &arg0,SWIGTYPE_p_BaseExample) < 0) { croak("Type error in argument 1 of BaseExample_remove. Expected %s", SWIGTYPE_p_BaseExample->name); XSRETURN(1); } arg1 = (int )SvIV(ST(1)); result = (int )arg0->remove(arg1); ST(argvi) = sv_newmortal(); sv_setiv(ST(argvi++),(IV) result); XSRETURN(argvi);}XS(_wrap_BaseExample_clear) { BaseExample *arg0 ; int argvi = 0; int result ; dXSARGS; if ((items < 1) || (items > 1)) croak("Usage: BaseExample_clear(self);"); if (SWIG_ConvertPtr(ST(0),(void **) &arg0,SWIGTYPE_p_BaseExample) < 0) { croak("Type error in argument 1 of BaseExample_clear. Expected %s", SWIGTYPE_p_BaseExample->name); XSRETURN(1); } result = (int )arg0->clear(); ST(argvi) = sv_newmortal(); sv_setiv(ST(argvi++),(IV) result); XSRETURN(argvi);}XS(_wrap_BaseExample_size) { BaseExample *arg0 ; int argvi = 0; int result ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -