Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
F
freeswitch
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
张华
freeswitch
Commits
073a49c9
提交
073a49c9
authored
11月 19, 2007
作者:
Brian West
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
movin
git-svn-id:
http://svn.freeswitch.org/svn/freeswitch/trunk@6325
d0543943-73ff-0310-b7d9-9358b9ac24b2
上级
1c02f456
隐藏空白字符变更
内嵌
并排
正在显示
12 个修改的文件
包含
0 行增加
和
2330 行删除
+0
-2330
Makefile
src/mod/languages/mod_perl/Makefile
+0
-47
compiler.opts
src/mod/languages/mod_perl/compiler.opts
+0
-1
compiler.opts.in
src/mod/languages/mod_perl/compiler.opts.in
+0
-1
freeswitch.pm
src/mod/languages/mod_perl/freeswitch.pm
+0
-11
fs_perl.pm
src/mod/languages/mod_perl/fs_perl.pm
+0
-83
fs_perl.vcproj
src/mod/languages/mod_perl/fs_perl.vcproj
+0
-213
mod_perl.c
src/mod/languages/mod_perl/mod_perl.c
+0
-131
mod_perl.vcproj
src/mod/languages/mod_perl/mod_perl.vcproj
+0
-69
perlibs.h
src/mod/languages/mod_perl/perlibs.h
+0
-1
perlibs.h.in
src/mod/languages/mod_perl/perlibs.h.in
+0
-1
perlxsi.c
src/mod/languages/mod_perl/perlxsi.c
+0
-18
switch_swig_wrap.c
src/mod/languages/mod_perl/switch_swig_wrap.c
+0
-1754
没有找到文件。
src/mod/languages/mod_perl/Makefile
deleted
100644 → 0
浏览文件 @
1c02f456
# define these targets in your makefile if you wish
# local_all local_depend local_clean depend_install local_install local_distclean local_extraclean:
# and define these variables to impact your build
PERL
=
`
which perl
`
PERL_LIBDIR
=
-L
$(
shell
perl
-MConfig
-e
'print $$Config{archlib}'
)
/CORE
PERL_LIBS
=
$(
shell
perl
-MConfig
-e
'print $$Config{libs}'
)
LOCAL_CFLAGS
=
-w
-DMULTIPLICITY
$(
shell
$(PERL)
-MExtUtils
::Embed
-e
ccopts
)
-DEMBED_PERL
LOCAL_LDFLAGS
=
$(
shell
$(PERL)
-MExtUtils
::Embed
-e
ldopts
)
$(
shell
$(PERL)
-MConfig
-e
'print $$Config{libs}'
)
LOCAL_OBJS
=
perlxsi.o
include
../../../../build/modmake.rules
SWIGCFILE
=
../../../switch_swig.c
SWIGIFILE
=
../../../switch_swig.i
local_all
:
fs_perl.$(DYNAMIC_LIB_EXTEN)
.perlok
:
@
(
${
PERL
}
-V
|
grep
-i
usemultiplicity
=
define
>
/dev/null
&&
echo
Phew, You have the right perl.
)
\
||
((
echo
Sorry, you need to compile perl with threads and multiplicity.&&
exit
1
))
@
touch
.perlok
reswig
:
rm
switch_swig_wrap.c
swig
-o
switch_swig_wrap.c
-l
$(SWIGIFILE)
-ignoremissing
-DMULTIPLICITY
-perl5
-module
fs_perl
$(SWIGCFILE)
switch_swig.o
:
$(SWIGCFILE) Makefile
$(CC)
-w
$(ALL_CFLAGS)
-c
$<
-o
$@
switch_swig_wrap.o
:
switch_swig_wrap.c
$(CC)
-w
$(ALL_CFLAGS)
-c
$<
-o
$@
fs_perl.$(DYNAMIC_LIB_EXTEN)
:
$(MODNAME).$(DYNAMIC_LIB_EXTEN) switch_swig_wrap.o switch_swig.o
$(LINK)
$(SOLINK)
-o
fs_perl.
$(DYNAMIC_LIB_EXTEN)
switch_swig_wrap.o switch_swig.o
$(LDFLAGS)
local_clean
:
rm
-fr
*
~ .perlok
depend_install
:
mkdir
-p
$(PREFIX)
/perl
$(LTINSTALL)
fs_perl.
$(DYNAMIC_LIB_EXTEN)
fs_perl.pm
$(PREFIX)
/perl
if
[
!
-f
$(PREFIX)
/perl/freeswitch.pm
]
;
then
$(LTINSTALL)
freeswitch.pm
$(PREFIX)
/perl
;
fi
src/mod/languages/mod_perl/compiler.opts
deleted
100644 → 0
浏览文件 @
1c02f456
/IC:\perl\lib\CORE
\ No newline at end of file
src/mod/languages/mod_perl/compiler.opts.in
deleted
100644 → 0
浏览文件 @
1c02f456
/I@PERL_INCLUDE@
\ No newline at end of file
src/mod/languages/mod_perl/freeswitch.pm
deleted
100644 → 0
浏览文件 @
1c02f456
package
fs_perl
;
use
Data::
Dumper
;
sub
wazzup
()
{
fs_console_log
(
"WOOHOO!\n"
);
$session
=
fs_core_session_locate
(
$SWITCH_ENV
{
UUID
});
fs_channel_answer
(
$session
);
fs_ivr_play_file
(
$session
,
"/root/siriusraw.raw"
,
""
);
}
1
;
src/mod/languages/mod_perl/fs_perl.pm
deleted
100644 → 0
浏览文件 @
1c02f456
# This file was automatically generated by SWIG
package
fs_perl
;
require
Exporter
;
require
DynaLoader
;
@ISA
=
qw(Exporter DynaLoader)
;
package
fs_perlc
;
bootstrap
fs_perl
;
package
fs_perl
;
@EXPORT
=
qw( )
;
# ---------- BASE METHODS -------------
package
fs_perl
;
sub
TIEHASH
{
my
(
$classname
,
$obj
)
=
@_
;
return
bless
$obj
,
$classname
;
}
sub
CLEAR
{
}
sub
FIRSTKEY
{
}
sub
NEXTKEY
{
}
sub
FETCH
{
my
(
$self
,
$field
)
=
@_
;
my
$member_func
=
"swig_${field}_get"
;
$self
->
$member_func
();
}
sub
STORE
{
my
(
$self
,
$field
,
$newval
)
=
@_
;
my
$member_func
=
"swig_${field}_set"
;
$self
->
$member_func
(
$newval
);
}
sub
this
{
my
$ptr
=
shift
;
return
tied
(
%
$ptr
);
}
# ------- FUNCTION WRAPPERS --------
package
fs_perl
;
*
fs_core_set_globals
=
*
fs_perlc::
fs_core_set_globals
;
*
fs_core_init
=
*
fs_perlc::
fs_core_init
;
*
fs_core_destroy
=
*
fs_perlc::
fs_core_destroy
;
*
fs_loadable_module_init
=
*
fs_perlc::
fs_loadable_module_init
;
*
fs_loadable_module_shutdown
=
*
fs_perlc::
fs_loadable_module_shutdown
;
*
fs_console_loop
=
*
fs_perlc::
fs_console_loop
;
*
fs_consol_log
=
*
fs_perlc::
fs_consol_log
;
*
fs_consol_clean
=
*
fs_perlc::
fs_consol_clean
;
*
fs_core_session_locate
=
*
fs_perlc::
fs_core_session_locate
;
*
fs_channel_answer
=
*
fs_perlc::
fs_channel_answer
;
*
fs_channel_pre_answer
=
*
fs_perlc::
fs_channel_pre_answer
;
*
fs_channel_hangup
=
*
fs_perlc::
fs_channel_hangup
;
*
fs_channel_set_variable
=
*
fs_perlc::
fs_channel_set_variable
;
*
fs_channel_get_variable
=
*
fs_perlc::
fs_channel_get_variable
;
*
fs_channel_set_state
=
*
fs_perlc::
fs_channel_set_state
;
*
fs_ivr_play_file
=
*
fs_perlc::
fs_ivr_play_file
;
*
fs_switch_ivr_record_file
=
*
fs_perlc::
fs_switch_ivr_record_file
;
*
fs_switch_ivr_sleep
=
*
fs_perlc::
fs_switch_ivr_sleep
;
*
fs_ivr_play_file2
=
*
fs_perlc::
fs_ivr_play_file2
;
*
fs_switch_ivr_collect_digits_callback
=
*
fs_perlc::
fs_switch_ivr_collect_digits_callback
;
*
fs_switch_ivr_collect_digits_count
=
*
fs_perlc::
fs_switch_ivr_collect_digits_count
;
*
fs_switch_ivr_originate
=
*
fs_perlc::
fs_switch_ivr_originate
;
*
fs_switch_ivr_session_transfer
=
*
fs_perlc::
fs_switch_ivr_session_transfer
;
*
fs_switch_ivr_speak_text
=
*
fs_perlc::
fs_switch_ivr_speak_text
;
*
fs_switch_channel_get_variable
=
*
fs_perlc::
fs_switch_channel_get_variable
;
*
fs_switch_channel_set_variable
=
*
fs_perlc::
fs_switch_channel_set_variable
;
# ------- VARIABLE STUBS --------
package
fs_perl
;
*
FREESWITCH_PEN
=
*
fs_perlc::
FREESWITCH_PEN
;
*
FREESWITCH_OID_PREFIX
=
*
fs_perlc::
FREESWITCH_OID_PREFIX
;
*
FREESWITCH_ITAD
=
*
fs_perlc::
FREESWITCH_ITAD
;
*
__EXTENSIONS__
=
*
fs_perlc::
__EXTENSIONS__
;
1
;
src/mod/languages/mod_perl/fs_perl.vcproj
deleted
100644 → 0
浏览文件 @
1c02f456
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType=
"Visual C++"
Version=
"8.00"
Name=
"fs_perl"
ProjectGUID=
"{B0C6CFF9-7DCD-4A21-8BA4-C2011E18DED8}"
RootNamespace=
"fs_perl"
Keyword=
"Win32Proj"
>
<Platforms>
<Platform
Name=
"Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name=
"Debug|Win32"
OutputDirectory=
"$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory=
"$(ConfigurationName)"
ConfigurationType=
"2"
CharacterSet=
"1"
>
<Tool
Name=
"VCPreBuildEventTool"
CommandLine=
""
/>
<Tool
Name=
"VCCustomBuildTool"
/>
<Tool
Name=
"VCXMLDataGeneratorTool"
/>
<Tool
Name=
"VCWebServiceProxyGeneratorTool"
/>
<Tool
Name=
"VCMIDLTool"
/>
<Tool
Name=
"VCCLCompilerTool"
AdditionalOptions=
"@compiler.opts"
Optimization=
"0"
AdditionalIncludeDirectories=
""$(InputDir)..\..\..\include";"$(InputDir)..\..\..\..\libs\include";."
PreprocessorDefinitions=
"WIN32;_DEBUG;_WINDOWS;_USRDLL;FS_PERL_EXPORTS;MULTIPLICITY;EMBED_PERL"
MinimalRebuild=
"true"
BasicRuntimeChecks=
"3"
RuntimeLibrary=
"3"
UsePrecompiledHeader=
"0"
WarningLevel=
"3"
Detect64BitPortabilityProblems=
"true"
DebugInformationFormat=
"3"
/>
<Tool
Name=
"VCManagedResourceCompilerTool"
/>
<Tool
Name=
"VCResourceCompilerTool"
/>
<Tool
Name=
"VCPreLinkEventTool"
/>
<Tool
Name=
"VCLinkerTool"
OutputFile=
"$(SolutionDir)$(OutDir)/Perl/$(InputName).dll"
Version=
""
LinkIncremental=
"1"
AdditionalLibraryDirectories=
""$(InputDir)..\..\..\..\w32\vsnet\$(ConfigurationName)""
GenerateDebugInformation=
"true"
SubSystem=
"2"
TargetMachine=
"1"
/>
<Tool
Name=
"VCALinkTool"
/>
<Tool
Name=
"VCManifestTool"
/>
<Tool
Name=
"VCXDCMakeTool"
/>
<Tool
Name=
"VCBscMakeTool"
/>
<Tool
Name=
"VCFxCopTool"
/>
<Tool
Name=
"VCAppVerifierTool"
/>
<Tool
Name=
"VCWebDeploymentTool"
/>
<Tool
Name=
"VCPostBuildEventTool"
CommandLine=
"@xcopy $(InputDir)fs_perl.pm $(Outdir)\Perl\ /C /D /Y
@if not exist $(Outdir)\Perl\freeswitch.pm xcopy $(InputDir)freeswitch.pm $(Outdir)\Perl\ /C /Y
"
/>
</Configuration>
<Configuration
Name=
"Release|Win32"
OutputDirectory=
"$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory=
"$(ConfigurationName)"
ConfigurationType=
"2"
CharacterSet=
"1"
WholeProgramOptimization=
"1"
>
<Tool
Name=
"VCPreBuildEventTool"
CommandLine=
""
/>
<Tool
Name=
"VCCustomBuildTool"
/>
<Tool
Name=
"VCXMLDataGeneratorTool"
/>
<Tool
Name=
"VCWebServiceProxyGeneratorTool"
/>
<Tool
Name=
"VCMIDLTool"
/>
<Tool
Name=
"VCCLCompilerTool"
AdditionalOptions=
"@compiler.opts"
AdditionalIncludeDirectories=
""$(InputDir)..\..\..\include";"$(InputDir)..\..\..\..\libs\include";."
PreprocessorDefinitions=
"WIN32;NDEBUG;_WINDOWS;_USRDLL;FS_PERL_EXPORTS;MULTIPLICITY;EMBED_PERL"
RuntimeLibrary=
"2"
UsePrecompiledHeader=
"0"
WarningLevel=
"3"
Detect64BitPortabilityProblems=
"true"
DebugInformationFormat=
"3"
/>
<Tool
Name=
"VCManagedResourceCompilerTool"
/>
<Tool
Name=
"VCResourceCompilerTool"
/>
<Tool
Name=
"VCPreLinkEventTool"
/>
<Tool
Name=
"VCLinkerTool"
OutputFile=
"$(SolutionDir)$(OutDir)/Perl/$(InputName).dll"
Version=
""
LinkIncremental=
"1"
AdditionalLibraryDirectories=
""$(InputDir)..\..\..\..\w32\vsnet\$(ConfigurationName)""
GenerateDebugInformation=
"true"
SubSystem=
"2"
OptimizeReferences=
"2"
EnableCOMDATFolding=
"2"
TargetMachine=
"1"
/>
<Tool
Name=
"VCALinkTool"
/>
<Tool
Name=
"VCManifestTool"
/>
<Tool
Name=
"VCXDCMakeTool"
/>
<Tool
Name=
"VCBscMakeTool"
/>
<Tool
Name=
"VCFxCopTool"
/>
<Tool
Name=
"VCAppVerifierTool"
/>
<Tool
Name=
"VCWebDeploymentTool"
/>
<Tool
Name=
"VCPostBuildEventTool"
CommandLine=
"@xcopy $(InputDir)fs_perl.pm $(Outdir)\Perl\ /C /D /Y
@if not exist $(Outdir)\Perl\freeswitch.pm xcopy $(InputDir)freeswitch.pm $(Outdir)\Perl\ /C /Y
"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<File
RelativePath=
".\switch_swig.c"
>
</File>
<File
RelativePath=
".\switch_swig_wrap.c"
>
<FileConfiguration
Name=
"Debug|Win32"
>
<Tool
Name=
"VCCLCompilerTool"
WarningLevel=
"0"
/>
</FileConfiguration>
<FileConfiguration
Name=
"Release|Win32"
>
<Tool
Name=
"VCCLCompilerTool"
WarningLevel=
"0"
/>
</FileConfiguration>
</File>
</Files>
<Globals>
</Globals>
</VisualStudioProject>
src/mod/languages/mod_perl/mod_perl.c
deleted
100644 → 0
浏览文件 @
1c02f456
/*
* FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application
* Copyright (C) 2005/2006, Anthony Minessale II <anthmct@yahoo.com>
*
* Version: MPL 1.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application
*
* The Initial Developer of the Original Code is
* Anthony Minessale II <anthmct@yahoo.com>
* Portions created by the Initial Developer are Copyright (C)
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
*
* Anthony Minessale II <anthmct@yahoo.com>
*
*
* mod_perl.c -- Perl
*
*/
#ifdef __ICC
#pragma warning (disable:1419)
#endif
#ifdef _MSC_VER
#include <perlibs.h>
#pragma comment(lib, PERL_LIB)
#endif
#include <EXTERN.h>
#include <perl.h>
#include <switch.h>
static
char
*
embedding
[]
=
{
""
,
"-e"
,
""
};
EXTERN_C
void
xs_init
(
pTHX
);
SWITCH_MODULE_LOAD_FUNCTION
(
mod_perl_load
);
SWITCH_MODULE_SHUTDOWN_FUNCTION
(
mod_perl_shutdown
);
SWITCH_MODULE_DEFINITION
(
mod_perl
,
mod_perl_load
,
mod_perl_shutdown
,
NULL
);
static
struct
{
PerlInterpreter
*
my_perl
;
}
globals
;
static
void
destroy_perl
(
PerlInterpreter
**
to_destroy
)
{
perl_destruct
(
*
to_destroy
);
perl_free
(
*
to_destroy
);
*
to_destroy
=
NULL
;
}
static
PerlInterpreter
*
clone_perl
(
void
)
{
return
perl_clone
(
globals
.
my_perl
,
CLONEf_COPY_STACKS
|
CLONEf_KEEP_PTR_TABLE
);
}
static
void
perl_function
(
switch_core_session_t
*
session
,
char
*
data
)
{
char
*
uuid
=
switch_core_session_get_uuid
(
session
);
char
code
[
1024
];
PerlInterpreter
*
my_perl
=
clone_perl
();
sprintf
(
code
,
"package fs_perl;
\n
"
"$SWITCH_ENV{UUID} =
\"
%s
\"
;
\n
"
"chdir(
\"
%s/perl
\"
);
\n
"
,
uuid
,
SWITCH_GLOBAL_dirs
.
base_dir
);
Perl_eval_pv
(
my_perl
,
code
,
TRUE
);
Perl_eval_pv
(
my_perl
,
data
,
TRUE
);
destroy_perl
(
&
my_perl
);
}
SWITCH_MODULE_SHUTDOWN_FUNCTION
(
mod_perl_shutdown
)
{
if
(
globals
.
my_perl
)
{
perl_destruct
(
globals
.
my_perl
);
perl_free
(
globals
.
my_perl
);
globals
.
my_perl
=
NULL
;
switch_log_printf
(
SWITCH_CHANNEL_LOG
,
SWITCH_LOG_INFO
,
"Unallocated perl interpreter.
\n
"
);
}
return
SWITCH_STATUS_SUCCESS
;
}
SWITCH_MODULE_LOAD_FUNCTION
(
mod_perl_load
)
{
switch_application_interface_t
*
app_interface
;
PerlInterpreter
*
my_perl
;
char
code
[
1024
];
if
(
!
(
my_perl
=
perl_alloc
()))
{
switch_log_printf
(
SWITCH_CHANNEL_LOG
,
SWITCH_LOG_ERROR
,
"Could not allocate perl intrepreter
\n
"
);
return
SWITCH_STATUS_MEMERR
;
}
switch_log_printf
(
SWITCH_CHANNEL_LOG
,
SWITCH_LOG_INFO
,
"Allocated perl intrepreter.
\n
"
);
PERL_SET_CONTEXT
(
my_perl
);
perl_construct
(
my_perl
);
perl_parse
(
my_perl
,
xs_init
,
3
,
embedding
,
NULL
);
perl_run
(
my_perl
);
globals
.
my_perl
=
my_perl
;
sprintf
(
code
,
"use lib '%s/perl';use fs_perl;use freeswitch
\n
"
,
SWITCH_GLOBAL_dirs
.
base_dir
);
Perl_eval_pv
(
my_perl
,
code
,
TRUE
);
/* connect my internal structure to the blank pointer passed to me */
*
module_interface
=
switch_loadable_module_create_module_interface
(
pool
,
modname
);
SWITCH_ADD_APP
(
app_interface
,
"perl"
,
NULL
,
NULL
,
perl_function
,
NULL
,
SAF_NONE
);
/* indicate that the module should continue to be loaded */
return
SWITCH_STATUS_SUCCESS
;
}
/* For Emacs:
* Local Variables:
* mode:c
* indent-tabs-mode:t
* tab-width:4
* c-basic-offset:4
* End:
* For VIM:
* vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
*/
src/mod/languages/mod_perl/mod_perl.vcproj
deleted
100644 → 0
浏览文件 @
1c02f456
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType=
"Visual C++"
Version=
"8.00"
Name=
"mod_perl"
ProjectGUID=
"{7B077E7F-1BE7-4291-AB86-55E527B25CAC}"
RootNamespace=
"mod_perl"
Keyword=
"Win32Proj"
>
<Platforms>
<Platform
Name=
"Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name=
"Debug|Win32"
ConfigurationType=
"2"
InheritedPropertySheets=
"..\..\..\..\w32\module_debug.vsprops"
CharacterSet=
"2"
>
<Tool
Name=
"VCPreBuildEventTool"
CommandLine=
"if not exist perlxsi.c perl -MExtUtils::Embed -e xsinit"
/>
<Tool
Name=
"VCCLCompilerTool"
AdditionalOptions=
"@compiler.opts"
AdditionalIncludeDirectories=
"."
PreprocessorDefinitions=
"WIN32;_DEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS;_CRT_SECURE_NO_DEPRECATE;MULTIPLICITY;EMBED_PERL"
UsePrecompiledHeader=
"0"
/>
</Configuration>
<Configuration
Name=
"Release|Win32"
ConfigurationType=
"2"
InheritedPropertySheets=
"..\..\..\..\w32\module_release.vsprops"
CharacterSet=
"2"
>
<Tool
Name=
"VCPreBuildEventTool"
CommandLine=
"if not exist perlxsi.c perl -MExtUtils::Embed -e xsinit"
/>
<Tool
Name=
"VCCLCompilerTool"
AdditionalOptions=
"@compiler.opts"
AdditionalIncludeDirectories=
"."
PreprocessorDefinitions=
"_CRT_SECURE_NO_DEPRECATE;MULTIPLICITY;EMBED_PERL"
UsePrecompiledHeader=
"0"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<File
RelativePath=
".\mod_perl.c"
>
</File>
<File
RelativePath=
".\perlxsi.c"
>
</File>
</Files>
<Globals>
</Globals>
</VisualStudioProject>
src/mod/languages/mod_perl/perlibs.h
deleted
100644 → 0
浏览文件 @
1c02f456
#define PERL_LIB "C:\\perl\\lib\\CORE\\perl58.lib"
src/mod/languages/mod_perl/perlibs.h.in
deleted
100644 → 0
浏览文件 @
1c02f456
#define PERL_LIB "@PERL_LIB@"
src/mod/languages/mod_perl/perlxsi.c
deleted
100644 → 0
浏览文件 @
1c02f456
#ifdef __ICC
#pragma warning (disable:1419)
#endif
#include <EXTERN.h>
#include <perl.h>
EXTERN_C
void
xs_init
(
pTHX
);
EXTERN_C
void
boot_DynaLoader
(
pTHX_
CV
*
cv
);
EXTERN_C
void
xs_init
(
pTHX
)
{
char
*
file
=
__FILE__
;
dXSUB_SYS
;
/* DynaLoader is a special case */
newXS
(
"DynaLoader::boot_DynaLoader"
,
boot_DynaLoader
,
file
);
}
src/mod/languages/mod_perl/switch_swig_wrap.c
deleted
100644 → 0
浏览文件 @
1c02f456
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 1.3.21
*
* 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.
* ----------------------------------------------------------------------------- */
/*************************************************************** -*- c -*-
* perl5/precommon.swg
*
* Rename all exported symbols from common.swg, to avoid symbol
* clashes if multiple interpreters are included
*
************************************************************************/
#include "switch.h"
#define SWIG_TypeRegister SWIG_Perl_TypeRegister
#define SWIG_TypeCheck SWIG_Perl_TypeCheck
#define SWIG_TypeCast SWIG_Perl_TypeCast
#define SWIG_TypeDynamicCast SWIG_Perl_TypeDynamicCast
#define SWIG_TypeName SWIG_Perl_TypeName
#define SWIG_TypeQuery SWIG_Perl_TypeQuery
#define SWIG_TypeClientData SWIG_Perl_TypeClientData
#define SWIG_PackData SWIG_Perl_PackData
#define SWIG_UnpackData SWIG_Perl_UnpackData
/***********************************************************************
* 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__) || defined(__CYGWIN__)
# if defined(_MSC_VER) || defined(__GNUC__)
# if defined(STATIC_LINKED)
# define SWIGEXPORT(a) a
# define SWIGIMPORT(a) extern a
# else
# define SWIGEXPORT(a) __declspec(dllexport) a
# define SWIGIMPORT(a) extern a
# endif
# else
# if defined(__BORLANDC__)
# define SWIGEXPORT(a) a _export
# define SWIGIMPORT(a) a _export
# else
# define SWIGEXPORT(a) a
# define SWIGIMPORT(a) a
# endif
# endif
#else
# define SWIGEXPORT(a) a
# define SWIGIMPORT(a) a
#endif
#ifdef SWIG_GLOBAL
# define SWIGRUNTIME(a) SWIGEXPORT(a)
#else
# define SWIGRUNTIME(a) static a
#endif
#ifdef __cplusplus
extern
"C"
{
#endif
typedef
void
*
(
*
swig_converter_func
)(
void
*
);
typedef
struct
swig_type_info
*
(
*
swig_dycast_func
)(
void
**
);
typedef
struct
swig_type_info
{
const
char
*
name
;
swig_converter_func
converter
;
const
char
*
str
;
void
*
clientdata
;
swig_dycast_func
dcast
;
struct
swig_type_info
*
next
;
struct
swig_type_info
*
prev
;
}
swig_type_info
;
#ifdef SWIG_NOINCLUDE
SWIGIMPORT
(
swig_type_info
*
)
SWIG_TypeRegister
(
swig_type_info
*
);
SWIGIMPORT
(
swig_type_info
*
)
SWIG_TypeCheck
(
char
*
c
,
swig_type_info
*
);
SWIGIMPORT
(
void
*
)
SWIG_TypeCast
(
swig_type_info
*
,
void
*
);
SWIGIMPORT
(
swig_type_info
*
)
SWIG_TypeDynamicCast
(
swig_type_info
*
,
void
**
);
SWIGIMPORT
(
const
char
*
)
SWIG_TypeName
(
const
swig_type_info
*
);
SWIGIMPORT
(
swig_type_info
*
)
SWIG_TypeQuery
(
const
char
*
);
SWIGIMPORT
(
void
)
SWIG_TypeClientData
(
swig_type_info
*
,
void
*
);
SWIGIMPORT
(
char
*
)
SWIG_PackData
(
char
*
,
void
*
,
int
);
SWIGIMPORT
(
char
*
)
SWIG_UnpackData
(
char
*
,
void
*
,
int
);
#else
static
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 */
if
(
tc
->
clientdata
)
ti
->
clientdata
=
tc
->
clientdata
;
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
++
;
}
if
(
next
)
next
->
prev
=
head
;
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 */
do
{
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
;
s
->
prev
=
ty
;
return
s
;
}
s
=
s
->
next
;
}
while
(
s
&&
(
s
!=
ty
->
next
));
return
0
;
}
/* Cast a pointer up an inheritance hierarchy */
SWIGRUNTIME
(
void
*
)
SWIG_TypeCast
(
swig_type_info
*
ty
,
void
*
ptr
)
{
if
((
!
ty
)
||
(
!
ty
->
converter
))
return
ptr
;
return
(
*
ty
->
converter
)(
ptr
);
}
/* Dynamic pointer casting. Down an inheritance hierarchy */
SWIGRUNTIME
(
swig_type_info
*
)
SWIG_TypeDynamicCast
(
swig_type_info
*
ty
,
void
**
ptr
)
{
swig_type_info
*
lastty
=
ty
;
if
(
!
ty
||
!
ty
->
dcast
)
return
ty
;
while
(
ty
&&
(
ty
->
dcast
))
{
ty
=
(
*
ty
->
dcast
)(
ptr
);
if
(
ty
)
lastty
=
ty
;
}
return
lastty
;
}
/* Return the name associated with this type */
SWIGRUNTIME
(
const
char
*
)
SWIG_TypeName
(
const
swig_type_info
*
ty
)
{
return
ty
->
name
;
}
/* 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
;
}
/* Set the clientdata field for a type */
SWIGRUNTIME
(
void
)
SWIG_TypeClientData
(
swig_type_info
*
ti
,
void
*
clientdata
)
{
swig_type_info
*
tc
,
*
equiv
;
if
(
ti
->
clientdata
==
clientdata
)
return
;
ti
->
clientdata
=
clientdata
;
equiv
=
ti
->
next
;
while
(
equiv
)
{
if
(
!
equiv
->
converter
)
{
tc
=
swig_type_list
;
while
(
tc
)
{
if
((
strcmp
(
tc
->
name
,
equiv
->
name
)
==
0
))
SWIG_TypeClientData
(
tc
,
clientdata
);
tc
=
tc
->
prev
;
}
}
equiv
=
equiv
->
next
;
}
}
/* Pack binary data into a string */
SWIGRUNTIME
(
char
*
)
SWIG_PackData
(
char
*
c
,
void
*
ptr
,
int
sz
)
{
static
char
hex
[
17
]
=
"0123456789abcdef"
;
int
i
;
unsigned
char
*
u
=
(
unsigned
char
*
)
ptr
;
register
unsigned
char
uu
;
for
(
i
=
0
;
i
<
sz
;
i
++
,
u
++
)
{
uu
=
*
u
;
*
(
c
++
)
=
hex
[(
uu
&
0xf0
)
>>
4
];
*
(
c
++
)
=
hex
[
uu
&
0xf
];
}
return
c
;
}
/* Unpack binary data from a string */
SWIGRUNTIME
(
char
*
)
SWIG_UnpackData
(
char
*
c
,
void
*
ptr
,
int
sz
)
{
register
unsigned
char
uu
=
0
;
register
int
d
;
unsigned
char
*
u
=
(
unsigned
char
*
)
ptr
;
int
i
;
for
(
i
=
0
;
i
<
sz
;
i
++
,
u
++
)
{
d
=
*
(
c
++
);
if
((
d
>=
'0'
)
&&
(
d
<=
'9'
))
uu
=
((
d
-
'0'
)
<<
4
);
else
if
((
d
>=
'a'
)
&&
(
d
<=
'f'
))
uu
=
((
d
-
(
'a'
-
10
))
<<
4
);
d
=
*
(
c
++
);
if
((
d
>=
'0'
)
&&
(
d
<=
'9'
))
uu
|=
(
d
-
'0'
);
else
if
((
d
>=
'a'
)
&&
(
d
<=
'f'
))
uu
|=
(
d
-
(
'a'
-
10
));
*
u
=
uu
;
}
return
c
;
}
#endif
#ifdef __cplusplus
}
#endif
/* ---------------------------------------------------------------------- -*- c -*-
* perl5.swg
*
* Perl5 runtime library
* $Header: /cvsroot/SWIG/Lib/perl5/perlrun.swg,v 1.14 2003/12/04 19:14:14 beazley 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
#ifndef pTHX_
#define pTHX_
#endif
#include <string.h>
#ifdef __cplusplus
}
#endif
/* Macro to call an XS function */
#ifdef PERL_OBJECT
# define SWIG_CALLXS(_name) _name(cv,pPerl)
#else
# ifndef MULTIPLICITY
# define SWIG_CALLXS(_name) _name(cv)
# else
# define SWIG_CALLXS(_name) _name(PERL_GET_THX, cv)
# endif
#endif
/* Contract support */
#define SWIG_contract_assert(expr,msg) if (!(expr)) { SWIG_croak(msg); } else
/* Note: SwigMagicFuncHack is a typedef used to get the C++ compiler to just shut up already */
#ifdef PERL_OBJECT
#define MAGIC_PPERL CPerlObj *pPerl = (CPerlObj *) this;
typedef
int
(
CPerlObj
::*
SwigMagicFunc
)(
SV
*
,
MAGIC
*
);
#ifdef __cplusplus
extern
"C"
{
#endif
typedef
int
(
CPerlObj
::*
SwigMagicFuncHack
)(
SV
*
,
MAGIC
*
);
#ifdef __cplusplus
}
#endif
#define SWIG_MAGIC(a,b) (SV *a, MAGIC *b)
#define SWIGCLASS_STATIC
#else
#define MAGIC_PPERL
#define SWIGCLASS_STATIC static
#ifndef MULTIPLICITY
#define SWIG_MAGIC(a,b) (SV *a, MAGIC *b)
typedef
int
(
*
SwigMagicFunc
)(
SV
*
,
MAGIC
*
);
#ifdef __cplusplus
extern
"C"
{
#endif
typedef
int
(
*
SwigMagicFuncHack
)(
SV
*
,
MAGIC
*
);
#ifdef __cplusplus
}
#endif
#else
#define SWIG_MAGIC(a,b) (struct interpreter *interp, SV *a, MAGIC *b)
typedef
int
(
*
SwigMagicFunc
)(
struct
interpreter
*
,
SV
*
,
MAGIC
*
);
#ifdef __cplusplus
extern
"C"
{
#endif
typedef
int
(
*
SwigMagicFuncHack
)(
struct
interpreter
*
,
SV
*
,
MAGIC
*
);
#ifdef __cplusplus
}
#endif
#endif
#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 __cplusplus
extern
"C"
{
#endif
#define SWIG_OWNER 1
#define SWIG_SHADOW 2
/* Common SWIG API */
#ifdef PERL_OBJECT
# define SWIG_ConvertPtr(obj, pp, type, flags) \
SWIG_Perl_ConvertPtr(pPerl, obj, pp, type, flags)
# define SWIG_NewPointerObj(p, type, flags) \
SWIG_Perl_NewPointerObj(pPerl, p, type, flags)
# define SWIG_MakePackedObj(sv, p, s, type) \
SWIG_Perl_MakePackedObj(pPerl, sv, p, s, type)
# define SWIG_ConvertPacked(obj, p, s, type, flags) \
SWIG_Perl_ConvertPacked(pPerl, obj, p, s, type, flags)
#else
# define SWIG_ConvertPtr(obj, pp, type, flags) \
SWIG_Perl_ConvertPtr(obj, pp, type, flags)
# define SWIG_NewPointerObj(p, type, flags) \
SWIG_Perl_NewPointerObj(p, type, flags)
# define SWIG_MakePackedObj(sv, p, s, type) \
SWIG_Perl_MakePackedObj(sv, p, s, type )
# define SWIG_ConvertPacked(obj, p, s, type, flags) \
SWIG_Perl_ConvertPacked(obj, p, s, type, flags)
#endif
/* Perl-specific API */
#ifdef PERL_OBJECT
# define SWIG_MakePtr(sv, ptr, type, flags) \
SWIG_Perl_MakePtr(pPerl, sv, ptr, type, flags)
# define SWIG_TypeCheckRV(rv, ty) \
SWIG_Perl_TypeCheckRV(pPerl, rv, ty)
# define SWIG_SetError(str) \
SWIG_Perl_SetError(pPerl, str)
#else
# define SWIG_MakePtr(sv, ptr, type, flags) \
SWIG_Perl_MakePtr(sv, ptr, type, flags)
# define SWIG_TypeCheckRV(rv, ty) \
SWIG_Perl_TypeCheckRV(rv, ty)
# define SWIG_SetError(str) \
SWIG_Perl_SetError(str)
# define SWIG_SetErrorSV(str) \
SWIG_Perl_SetErrorSV(str)
#endif
#define SWIG_SetErrorf SWIG_Perl_SetErrorf
#ifdef PERL_OBJECT
# define SWIG_MAYBE_PERL_OBJECT CPerlObj *pPerl,
#else
# define SWIG_MAYBE_PERL_OBJECT
#endif
#ifdef SWIG_NOINCLUDE
SWIGIMPORT
(
int
)
SWIG_Perl_ConvertPtr
(
SWIG_MAYBE_PERL_OBJECT
SV
*
,
void
**
,
swig_type_info
*
,
int
flags
);
SWIGIMPORT
(
void
)
SWIG_Perl_MakePtr
(
SWIG_MAYBE_PERL_OBJECT
SV
*
,
void
*
,
swig_type_info
*
,
int
flags
);
SWIGIMPORT
(
SV
*
)
SWIG_Perl_NewPointerObj
(
SWIG_MAYBE_PERL_OBJECT
void
*
,
swig_type_info
*
,
int
flags
);
SWIGIMPORT
(
void
)
SWIG_Perl_MakePackedObj
(
SWIG_MAYBE_PERL_OBJECT
SV
*
,
void
*
,
int
,
swig_type_info
*
);
SWIGIMPORT
(
int
)
SWIG_Perl_ConvertPacked
(
SWIG_MAYBE_PERL_OBJECT
SV
*
,
void
*
,
int
,
swig_type_info
*
,
int
flags
);
SWIGIMPORT
(
swig_type_info
*
)
SWIG_Perl_TypeCheckRV
(
SWIG_MAYBE_PERL_OBJECT
SV
*
rv
,
swig_type_info
*
ty
);
SWIGIMPORT
(
SV
*
)
SWIG_Perl_SetError
(
SWIG_MAYBE_PERL_OBJECT
char
*
);
#else
SWIGRUNTIME
(
swig_type_info
*
)
SWIG_Perl_TypeCheckRV
(
SWIG_MAYBE_PERL_OBJECT
SV
*
rv
,
swig_type_info
*
ty
)
{
swig_type_info
*
s
;
if
(
!
ty
)
return
0
;
/* Void pointer */
s
=
ty
->
next
;
/* First element always just a name */
do
{
if
(
sv_derived_from
(
rv
,
(
char
*
)
s
->
name
))
{
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
;
s
->
prev
=
ty
;
return
s
;
}
s
=
s
->
next
;
}
while
(
s
&&
(
s
!=
ty
->
next
));
return
0
;
}
/* Function for getting a pointer value */
SWIGRUNTIME
(
int
)
SWIG_Perl_ConvertPtr
(
SWIG_MAYBE_PERL_OBJECT
SV
*
sv
,
void
**
ptr
,
swig_type_info
*
_t
,
int
flags
)
{
swig_type_info
*
tc
;
void
*
voidptr
=
(
void
*
)
0
;
/* 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
);
IV
tmp
=
0
;
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
));
}
voidptr
=
(
void
*
)
tmp
;
if
(
!
_t
)
{
*
(
ptr
)
=
voidptr
;
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 */
tc
=
SWIG_TypeCheckRV
(
sv
,
_t
);
if
(
!
tc
)
{
*
ptr
=
voidptr
;
return
-
1
;
}
*
ptr
=
SWIG_TypeCast
(
tc
,
voidptr
);
return
0
;
}
*
ptr
=
voidptr
;
return
0
;
}
SWIGRUNTIME
(
void
)
SWIG_Perl_MakePtr
(
SWIG_MAYBE_PERL_OBJECT
SV
*
sv
,
void
*
ptr
,
swig_type_info
*
t
,
int
flags
)
{
if
(
ptr
&&
(
flags
&
SWIG_SHADOW
))
{
SV
*
self
;
SV
*
obj
=
newSV
(
0
);
HV
*
hash
=
newHV
();
HV
*
stash
;
sv_setref_pv
(
obj
,
(
char
*
)
t
->
name
,
ptr
);
stash
=
SvSTASH
(
SvRV
(
obj
));
if
(
flags
&
SWIG_OWNER
)
{
HV
*
hv
;
GV
*
gv
=*
(
GV
**
)
hv_fetch
(
stash
,
"OWNER"
,
5
,
TRUE
);
if
(
!
isGV
(
gv
))
gv_init
(
gv
,
stash
,
"OWNER"
,
5
,
FALSE
);
hv
=
GvHVn
(
gv
);
hv_store_ent
(
hv
,
obj
,
newSViv
(
1
),
0
);
}
sv_magic
((
SV
*
)
hash
,
(
SV
*
)
obj
,
'P'
,
Nullch
,
0
);
SvREFCNT_dec
(
obj
);
self
=
newRV_noinc
((
SV
*
)
hash
);
sv_setsv
(
sv
,
self
);
SvREFCNT_dec
((
SV
*
)
self
);
sv_bless
(
sv
,
stash
);
}
else
{
sv_setref_pv
(
sv
,
(
char
*
)
t
->
name
,
ptr
);
}
}
SWIGRUNTIME
(
SV
*
)
SWIG_Perl_NewPointerObj
(
SWIG_MAYBE_PERL_OBJECT
void
*
ptr
,
swig_type_info
*
t
,
int
flags
)
{
SV
*
result
=
sv_newmortal
();
SWIG_MakePtr
(
result
,
ptr
,
t
,
flags
);
return
result
;
}
SWIGRUNTIME
(
void
)
SWIG_Perl_MakePackedObj
(
SWIG_MAYBE_PERL_OBJECT
SV
*
sv
,
void
*
ptr
,
int
sz
,
swig_type_info
*
type
)
{
char
result
[
1024
];
char
*
r
=
result
;
if
((
2
*
sz
+
1
+
strlen
(
type
->
name
))
>
1000
)
return
;
*
(
r
++
)
=
'_'
;
r
=
SWIG_PackData
(
r
,
ptr
,
sz
);
strcpy
(
r
,
type
->
name
);
sv_setpv
(
sv
,
result
);
}
/* Convert a packed value value */
SWIGRUNTIME
(
int
)
SWIG_Perl_ConvertPacked
(
SWIG_MAYBE_PERL_OBJECT
SV
*
obj
,
void
*
ptr
,
int
sz
,
swig_type_info
*
ty
,
int
flags
)
{
swig_type_info
*
tc
;
char
*
c
=
0
;
if
((
!
obj
)
||
(
!
SvOK
(
obj
)))
return
-
1
;
c
=
SvPV
(
obj
,
PL_na
);
/* Pointer values must start with leading underscore */
if
(
*
c
!=
'_'
)
return
-
1
;
c
++
;
c
=
SWIG_UnpackData
(
c
,
ptr
,
sz
);
if
(
ty
)
{
tc
=
SWIG_TypeCheck
(
c
,
ty
);
if
(
!
tc
)
return
-
1
;
}
return
0
;
}
SWIGRUNTIME
(
void
)
SWIG_Perl_SetError
(
SWIG_MAYBE_PERL_OBJECT
const
char
*
error
)
{
if
(
error
)
sv_setpv
(
perl_get_sv
(
"@"
,
TRUE
),
error
);
}
SWIGRUNTIME
(
void
)
SWIG_Perl_SetErrorSV
(
SWIG_MAYBE_PERL_OBJECT
SV
*
error
)
{
if
(
error
)
sv_setsv
(
perl_get_sv
(
"@"
,
TRUE
),
error
);
}
SWIGRUNTIME
(
void
)
SWIG_Perl_SetErrorf
(
const
char
*
fmt
,
...)
{
va_list
args
;
va_start
(
args
,
fmt
);
sv_vsetpvfn
(
perl_get_sv
(
"@"
,
TRUE
),
fmt
,
strlen
(
fmt
),
&
args
,
Null
(
SV
**
),
0
,
Null
(
bool
*
));
va_end
(
args
);
}
#endif
/* Macros for low-level exception handling */
#define SWIG_fail goto fail
#define SWIG_croak(x) { SWIG_SetError(x); goto fail; }
#define SWIG_croakSV(x) { SWIG_SetErrorSV(x); goto fail; }
/* most preprocessors do not support vararg macros :-( */
/* #define SWIG_croakf(x...) { SWIG_SetErrorf(x); goto fail; } */
typedef
XS
(
SwigPerlWrapper
);
typedef
SwigPerlWrapper
*
SwigPerlWrapperPtr
;
/* Structure for command table */
typedef
struct
{
const
char
*
name
;
SwigPerlWrapperPtr
wrapper
;
}
swig_command_info
;
/* Information for constant table */
#define SWIG_INT 1
#define SWIG_FLOAT 2
#define SWIG_STRING 3
#define SWIG_POINTER 4
#define SWIG_BINARY 5
/* Constant information structure */
typedef
struct
swig_constant_info
{
int
type
;
const
char
*
name
;
long
lvalue
;
double
dvalue
;
void
*
pvalue
;
swig_type_info
**
ptype
;
}
swig_constant_info
;
#ifdef __cplusplus
}
#endif
/* Structure for variable table */
typedef
struct
{
const
char
*
name
;
SwigMagicFunc
set
;
SwigMagicFunc
get
;
swig_type_info
**
type
;
}
swig_variable_info
;
/* Magic variable code */
#ifndef PERL_OBJECT
#define swig_create_magic(s,a,b,c) _swig_create_magic(s,a,b,c)
#ifndef MULTIPLICITY
static
void
_swig_create_magic
(
SV
*
sv
,
char
*
name
,
int
(
*
set
)(
SV
*
,
MAGIC
*
),
int
(
*
get
)(
SV
*
,
MAGIC
*
))
{
#else
static
void
_swig_create_magic
(
SV
*
sv
,
char
*
name
,
int
(
*
set
)(
struct
interpreter
*
,
SV
*
,
MAGIC
*
),
int
(
*
get
)(
struct
interpreter
*
,
SV
*
,
MAGIC
*
))
{
#endif
#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
=
(
SwigMagicFuncHack
)
get
;
mg
->
mg_virtual
->
svt_set
=
(
SwigMagicFuncHack
)
set
;
mg
->
mg_virtual
->
svt_len
=
0
;
mg
->
mg_virtual
->
svt_clear
=
0
;
mg
->
mg_virtual
->
svt_free
=
0
;
}
#ifdef do_open
#undef do_open
#endif
#ifdef do_close
#undef do_close
#endif
#ifdef scalar
#undef scalar
#endif
#ifdef list
#undef list
#endif
#ifdef apply
#undef apply
#endif
#ifdef convert
#undef convert
#endif
#ifdef Error
#undef Error
#endif
#ifdef form
#undef form
#endif
#ifdef vform
#undef vform
#endif
#ifdef LABEL
#undef LABEL
#endif
#ifdef METHOD
#undef METHOD
#endif
#ifdef Move
#undef Move
#endif
#ifdef yylex
#undef yylex
#endif
#ifdef yyparse
#undef yyparse
#endif
#ifdef yyerror
#undef yyerror
#endif
#ifdef invert
#undef invert
#endif
#ifdef ref
#undef ref
#endif
#ifdef ENTER
#undef ENTER
#endif
/* -------- TYPES TABLE (BEGIN) -------- */
#define SWIGTYPE_p_switch_channel_t swig_types[0]
#define SWIGTYPE_p_switch_file_handle_t swig_types[1]
#define SWIGTYPE_p_switch_core_session_t swig_types[2]
#define SWIGTYPE_p_p_switch_core_session_t swig_types[3]
#define SWIGTYPE_p_uint32_t swig_types[4]
#define SWIGTYPE_p_switch_input_args_t swig_types[5]
static
swig_type_info
*
swig_types
[
7
];
/* -------- TYPES TABLE (END) -------- */
#define SWIG_init boot_fs_perl
#define SWIG_name "fs_perlc::boot_fs_perl"
#define SWIG_prefix "fs_perlc::"
#ifdef __cplusplus
extern
"C"
#endif
#ifndef PERL_OBJECT
#ifndef MULTIPLICITY
SWIGEXPORT
(
void
)
SWIG_init
(
CV
*
cv
);
#else
SWIGEXPORT
(
void
)
SWIG_init
(
pTHXo_
CV
*
cv
);
#endif
#else
SWIGEXPORT
(
void
)
SWIG_init
(
CV
*
cv
,
CPerlObj
*
);
#endif
extern
void
fs_core_set_globals
(
void
);
extern
int
fs_core_init
(
char
*
);
extern
int
fs_core_destroy
(
void
);
extern
int
fs_loadable_module_init
(
void
);
extern
int
fs_loadable_module_shutdown
(
void
);
extern
int
fs_console_loop
(
void
);
extern
void
fs_consol_log
(
char
*
,
char
*
);
extern
void
fs_consol_clean
(
char
*
);
extern
switch_core_session_t
*
fs_core_session_locate
(
char
*
);
extern
void
fs_channel_answer
(
switch_core_session_t
*
);
extern
void
fs_channel_pre_answer
(
switch_core_session_t
*
);
extern
void
fs_channel_hangup
(
switch_core_session_t
*
,
char
*
);
extern
void
fs_channel_set_variable
(
switch_core_session_t
*
,
char
*
,
char
*
);
extern
void
fs_channel_get_variable
(
switch_core_session_t
*
,
char
*
);
extern
void
fs_channel_set_state
(
switch_core_session_t
*
,
char
*
);
extern
int
fs_ivr_play_file
(
switch_core_session_t
*
,
switch_file_handle_t
*
,
char
*
,
switch_input_args_t
*
);
extern
int
fs_switch_ivr_record_file
(
switch_core_session_t
*
,
switch_file_handle_t
*
,
char
*
,
switch_input_args_t
*
,
unsigned
int
);
extern
int
fs_switch_ivr_sleep
(
switch_core_session_t
*
,
uint32_t
);
extern
int
fs_ivr_play_file2
(
switch_core_session_t
*
,
char
*
);
extern
int
fs_switch_ivr_collect_digits_callback
(
switch_core_session_t
*
,
switch_input_args_t
*
,
unsigned
int
);
extern
int
fs_switch_ivr_collect_digits_count
(
switch_core_session_t
*
,
char
*
,
unsigned
int
,
unsigned
int
,
char
const
*
,
char
*
,
unsigned
int
);
extern
int
fs_switch_ivr_originate
(
switch_core_session_t
*
,
switch_core_session_t
**
,
char
*
,
uint32_t
);
extern
int
fs_switch_ivr_session_transfer
(
switch_core_session_t
*
,
char
*
,
char
*
,
char
*
);
extern
int
fs_switch_ivr_speak_text
(
switch_core_session_t
*
,
char
*
,
char
*
,
uint32_t
,
char
*
);
extern
char
*
fs_switch_channel_get_variable
(
switch_channel_t
*
,
char
*
);
extern
int
fs_switch_channel_set_variable
(
switch_channel_t
*
,
char
*
,
char
*
);
#ifdef PERL_OBJECT
#define MAGIC_CLASS _wrap_fs_perl_var::
class
_wrap_fs_perl_var
:
public
CPerlObj
{
public:
#else
#define MAGIC_CLASS
#endif
SWIGCLASS_STATIC
int
swig_magic_readonly
(
pTHX_
SV
*
sv
,
MAGIC
*
mg
)
{
MAGIC_PPERL
sv
=
sv
;
mg
=
mg
;
croak
(
"Value is read-only."
);
return
0
;
}
#ifdef PERL_OBJECT
};
#endif
#ifdef __cplusplus
extern
"C"
{
#endif
XS
(
_wrap_fs_core_set_globals
)
{
{
int
argvi
=
0
;
dXSARGS
;
if
((
items
<
0
)
||
(
items
>
0
))
{
SWIG_croak
(
"Usage: fs_core_set_globals();"
);
}
fs_core_set_globals
();
XSRETURN
(
argvi
);
fail:
;
}
croak
(
Nullch
);
}
XS
(
_wrap_fs_core_init
)
{
{
char
*
arg1
;
int
result
;
int
argvi
=
0
;
dXSARGS
;
if
((
items
<
1
)
||
(
items
>
1
))
{
SWIG_croak
(
"Usage: fs_core_init(path);"
);
}
if
(
!
SvOK
((
SV
*
)
ST
(
0
)))
arg1
=
0
;
else
arg1
=
(
char
*
)
SvPV
(
ST
(
0
),
PL_na
);
result
=
(
int
)
fs_core_init
(
arg1
);
ST
(
argvi
)
=
sv_newmortal
();
sv_setiv
(
ST
(
argvi
++
),
(
IV
)
result
);
XSRETURN
(
argvi
);
fail:
;
}
croak
(
Nullch
);
}
XS
(
_wrap_fs_core_destroy
)
{
{
int
result
;
int
argvi
=
0
;
dXSARGS
;
if
((
items
<
0
)
||
(
items
>
0
))
{
SWIG_croak
(
"Usage: fs_core_destroy();"
);
}
result
=
(
int
)
fs_core_destroy
();
ST
(
argvi
)
=
sv_newmortal
();
sv_setiv
(
ST
(
argvi
++
),
(
IV
)
result
);
XSRETURN
(
argvi
);
fail:
;
}
croak
(
Nullch
);
}
XS
(
_wrap_fs_loadable_module_init
)
{
{
int
result
;
int
argvi
=
0
;
dXSARGS
;
if
((
items
<
0
)
||
(
items
>
0
))
{
SWIG_croak
(
"Usage: fs_loadable_module_init();"
);
}
result
=
(
int
)
fs_loadable_module_init
();
ST
(
argvi
)
=
sv_newmortal
();
sv_setiv
(
ST
(
argvi
++
),
(
IV
)
result
);
XSRETURN
(
argvi
);
fail:
;
}
croak
(
Nullch
);
}
XS
(
_wrap_fs_loadable_module_shutdown
)
{
{
int
result
;
int
argvi
=
0
;
dXSARGS
;
if
((
items
<
0
)
||
(
items
>
0
))
{
SWIG_croak
(
"Usage: fs_loadable_module_shutdown();"
);
}
result
=
(
int
)
fs_loadable_module_shutdown
();
ST
(
argvi
)
=
sv_newmortal
();
sv_setiv
(
ST
(
argvi
++
),
(
IV
)
result
);
XSRETURN
(
argvi
);
fail:
;
}
croak
(
Nullch
);
}
XS
(
_wrap_fs_console_loop
)
{
{
int
result
;
int
argvi
=
0
;
dXSARGS
;
if
((
items
<
0
)
||
(
items
>
0
))
{
SWIG_croak
(
"Usage: fs_console_loop();"
);
}
result
=
(
int
)
fs_console_loop
();
ST
(
argvi
)
=
sv_newmortal
();
sv_setiv
(
ST
(
argvi
++
),
(
IV
)
result
);
XSRETURN
(
argvi
);
fail:
;
}
croak
(
Nullch
);
}
XS
(
_wrap_fs_consol_log
)
{
{
char
*
arg1
;
char
*
arg2
;
int
argvi
=
0
;
dXSARGS
;
if
((
items
<
2
)
||
(
items
>
2
))
{
SWIG_croak
(
"Usage: fs_consol_log(level_str,msg);"
);
}
if
(
!
SvOK
((
SV
*
)
ST
(
0
)))
arg1
=
0
;
else
arg1
=
(
char
*
)
SvPV
(
ST
(
0
),
PL_na
);
if
(
!
SvOK
((
SV
*
)
ST
(
1
)))
arg2
=
0
;
else
arg2
=
(
char
*
)
SvPV
(
ST
(
1
),
PL_na
);
fs_consol_log
(
arg1
,
arg2
);
XSRETURN
(
argvi
);
fail:
;
}
croak
(
Nullch
);
}
XS
(
_wrap_fs_consol_clean
)
{
{
char
*
arg1
;
int
argvi
=
0
;
dXSARGS
;
if
((
items
<
1
)
||
(
items
>
1
))
{
SWIG_croak
(
"Usage: fs_consol_clean(msg);"
);
}
if
(
!
SvOK
((
SV
*
)
ST
(
0
)))
arg1
=
0
;
else
arg1
=
(
char
*
)
SvPV
(
ST
(
0
),
PL_na
);
fs_consol_clean
(
arg1
);
XSRETURN
(
argvi
);
fail:
;
}
croak
(
Nullch
);
}
XS
(
_wrap_fs_core_session_locate
)
{
{
char
*
arg1
;
switch_core_session_t
*
result
;
int
argvi
=
0
;
dXSARGS
;
if
((
items
<
1
)
||
(
items
>
1
))
{
SWIG_croak
(
"Usage: fs_core_session_locate(uuid);"
);
}
if
(
!
SvOK
((
SV
*
)
ST
(
0
)))
arg1
=
0
;
else
arg1
=
(
char
*
)
SvPV
(
ST
(
0
),
PL_na
);
result
=
(
switch_core_session_t
*
)
fs_core_session_locate
(
arg1
);
ST
(
argvi
)
=
sv_newmortal
();
SWIG_MakePtr
(
ST
(
argvi
++
),
(
void
*
)
result
,
SWIGTYPE_p_switch_core_session_t
,
0
|
0
);
XSRETURN
(
argvi
);
fail:
;
}
croak
(
Nullch
);
}
XS
(
_wrap_fs_channel_answer
)
{
{
switch_core_session_t
*
arg1
=
(
switch_core_session_t
*
)
0
;
int
argvi
=
0
;
dXSARGS
;
if
((
items
<
1
)
||
(
items
>
1
))
{
SWIG_croak
(
"Usage: fs_channel_answer(session);"
);
}
{
if
(
SWIG_ConvertPtr
(
ST
(
0
),
(
void
**
)
&
arg1
,
SWIGTYPE_p_switch_core_session_t
,
0
)
<
0
)
{
SWIG_croak
(
"Type error in argument 1 of fs_channel_answer. Expected _p_switch_core_session_t"
);
}
}
fs_channel_answer
(
arg1
);
XSRETURN
(
argvi
);
fail:
;
}
croak
(
Nullch
);
}
XS
(
_wrap_fs_channel_pre_answer
)
{
{
switch_core_session_t
*
arg1
=
(
switch_core_session_t
*
)
0
;
int
argvi
=
0
;
dXSARGS
;
if
((
items
<
1
)
||
(
items
>
1
))
{
SWIG_croak
(
"Usage: fs_channel_pre_answer(session);"
);
}
{
if
(
SWIG_ConvertPtr
(
ST
(
0
),
(
void
**
)
&
arg1
,
SWIGTYPE_p_switch_core_session_t
,
0
)
<
0
)
{
SWIG_croak
(
"Type error in argument 1 of fs_channel_pre_answer. Expected _p_switch_core_session_t"
);
}
}
fs_channel_pre_answer
(
arg1
);
XSRETURN
(
argvi
);
fail:
;
}
croak
(
Nullch
);
}
XS
(
_wrap_fs_channel_hangup
)
{
{
switch_core_session_t
*
arg1
=
(
switch_core_session_t
*
)
0
;
char
*
arg2
;
int
argvi
=
0
;
dXSARGS
;
if
((
items
<
2
)
||
(
items
>
2
))
{
SWIG_croak
(
"Usage: fs_channel_hangup(session,cause);"
);
}
{
if
(
SWIG_ConvertPtr
(
ST
(
0
),
(
void
**
)
&
arg1
,
SWIGTYPE_p_switch_core_session_t
,
0
)
<
0
)
{
SWIG_croak
(
"Type error in argument 1 of fs_channel_hangup. Expected _p_switch_core_session_t"
);
}
}
if
(
!
SvOK
((
SV
*
)
ST
(
1
)))
arg2
=
0
;
else
arg2
=
(
char
*
)
SvPV
(
ST
(
1
),
PL_na
);
fs_channel_hangup
(
arg1
,
arg2
);
XSRETURN
(
argvi
);
fail:
;
}
croak
(
Nullch
);
}
XS
(
_wrap_fs_channel_set_variable
)
{
{
switch_core_session_t
*
arg1
=
(
switch_core_session_t
*
)
0
;
char
*
arg2
;
char
*
arg3
;
int
argvi
=
0
;
dXSARGS
;
if
((
items
<
3
)
||
(
items
>
3
))
{
SWIG_croak
(
"Usage: fs_channel_set_variable(session,var,val);"
);
}
{
if
(
SWIG_ConvertPtr
(
ST
(
0
),
(
void
**
)
&
arg1
,
SWIGTYPE_p_switch_core_session_t
,
0
)
<
0
)
{
SWIG_croak
(
"Type error in argument 1 of fs_channel_set_variable. Expected _p_switch_core_session_t"
);
}
}
if
(
!
SvOK
((
SV
*
)
ST
(
1
)))
arg2
=
0
;
else
arg2
=
(
char
*
)
SvPV
(
ST
(
1
),
PL_na
);
if
(
!
SvOK
((
SV
*
)
ST
(
2
)))
arg3
=
0
;
else
arg3
=
(
char
*
)
SvPV
(
ST
(
2
),
PL_na
);
fs_channel_set_variable
(
arg1
,
arg2
,
arg3
);
XSRETURN
(
argvi
);
fail:
;
}
croak
(
Nullch
);
}
XS
(
_wrap_fs_channel_get_variable
)
{
{
switch_core_session_t
*
arg1
=
(
switch_core_session_t
*
)
0
;
char
*
arg2
;
int
argvi
=
0
;
dXSARGS
;
if
((
items
<
2
)
||
(
items
>
2
))
{
SWIG_croak
(
"Usage: fs_channel_get_variable(session,var);"
);
}
{
if
(
SWIG_ConvertPtr
(
ST
(
0
),
(
void
**
)
&
arg1
,
SWIGTYPE_p_switch_core_session_t
,
0
)
<
0
)
{
SWIG_croak
(
"Type error in argument 1 of fs_channel_get_variable. Expected _p_switch_core_session_t"
);
}
}
if
(
!
SvOK
((
SV
*
)
ST
(
1
)))
arg2
=
0
;
else
arg2
=
(
char
*
)
SvPV
(
ST
(
1
),
PL_na
);
fs_channel_get_variable
(
arg1
,
arg2
);
XSRETURN
(
argvi
);
fail:
;
}
croak
(
Nullch
);
}
XS
(
_wrap_fs_channel_set_state
)
{
{
switch_core_session_t
*
arg1
=
(
switch_core_session_t
*
)
0
;
char
*
arg2
;
int
argvi
=
0
;
dXSARGS
;
if
((
items
<
2
)
||
(
items
>
2
))
{
SWIG_croak
(
"Usage: fs_channel_set_state(session,state);"
);
}
{
if
(
SWIG_ConvertPtr
(
ST
(
0
),
(
void
**
)
&
arg1
,
SWIGTYPE_p_switch_core_session_t
,
0
)
<
0
)
{
SWIG_croak
(
"Type error in argument 1 of fs_channel_set_state. Expected _p_switch_core_session_t"
);
}
}
if
(
!
SvOK
((
SV
*
)
ST
(
1
)))
arg2
=
0
;
else
arg2
=
(
char
*
)
SvPV
(
ST
(
1
),
PL_na
);
fs_channel_set_state
(
arg1
,
arg2
);
XSRETURN
(
argvi
);
fail:
;
}
croak
(
Nullch
);
}
XS
(
_wrap_fs_ivr_play_file
)
{
{
switch_core_session_t
*
arg1
=
(
switch_core_session_t
*
)
0
;
switch_file_handle_t
*
arg2
=
(
switch_file_handle_t
*
)
0
;
char
*
arg3
;
switch_input_args_t
*
arg4
=
(
switch_input_args_t
*
)
0
;
int
result
;
int
argvi
=
0
;
dXSARGS
;
if
((
items
<
4
)
||
(
items
>
4
))
{
SWIG_croak
(
"Usage: fs_ivr_play_file(session,fh,file,args);"
);
}
{
if
(
SWIG_ConvertPtr
(
ST
(
0
),
(
void
**
)
&
arg1
,
SWIGTYPE_p_switch_core_session_t
,
0
)
<
0
)
{
SWIG_croak
(
"Type error in argument 1 of fs_ivr_play_file. Expected _p_switch_core_session_t"
);
}
}
{
if
(
SWIG_ConvertPtr
(
ST
(
1
),
(
void
**
)
&
arg2
,
SWIGTYPE_p_switch_file_handle_t
,
0
)
<
0
)
{
SWIG_croak
(
"Type error in argument 2 of fs_ivr_play_file. Expected _p_switch_file_handle_t"
);
}
}
if
(
!
SvOK
((
SV
*
)
ST
(
2
)))
arg3
=
0
;
else
arg3
=
(
char
*
)
SvPV
(
ST
(
2
),
PL_na
);
{
if
(
SWIG_ConvertPtr
(
ST
(
3
),
(
void
**
)
&
arg4
,
SWIGTYPE_p_switch_input_args_t
,
0
)
<
0
)
{
SWIG_croak
(
"Type error in argument 4 of fs_ivr_play_file. Expected _p_switch_input_args_t"
);
}
}
result
=
(
int
)
fs_ivr_play_file
(
arg1
,
arg2
,
arg3
,
arg4
);
ST
(
argvi
)
=
sv_newmortal
();
sv_setiv
(
ST
(
argvi
++
),
(
IV
)
result
);
XSRETURN
(
argvi
);
fail:
;
}
croak
(
Nullch
);
}
XS
(
_wrap_fs_switch_ivr_record_file
)
{
{
switch_core_session_t
*
arg1
=
(
switch_core_session_t
*
)
0
;
switch_file_handle_t
*
arg2
=
(
switch_file_handle_t
*
)
0
;
char
*
arg3
;
switch_input_args_t
*
arg4
=
(
switch_input_args_t
*
)
0
;
unsigned
int
arg5
;
int
result
;
int
argvi
=
0
;
dXSARGS
;
if
((
items
<
5
)
||
(
items
>
5
))
{
SWIG_croak
(
"Usage: fs_switch_ivr_record_file(session,fh,file,args,limit);"
);
}
{
if
(
SWIG_ConvertPtr
(
ST
(
0
),
(
void
**
)
&
arg1
,
SWIGTYPE_p_switch_core_session_t
,
0
)
<
0
)
{
SWIG_croak
(
"Type error in argument 1 of fs_switch_ivr_record_file. Expected _p_switch_core_session_t"
);
}
}
{
if
(
SWIG_ConvertPtr
(
ST
(
1
),
(
void
**
)
&
arg2
,
SWIGTYPE_p_switch_file_handle_t
,
0
)
<
0
)
{
SWIG_croak
(
"Type error in argument 2 of fs_switch_ivr_record_file. Expected _p_switch_file_handle_t"
);
}
}
if
(
!
SvOK
((
SV
*
)
ST
(
2
)))
arg3
=
0
;
else
arg3
=
(
char
*
)
SvPV
(
ST
(
2
),
PL_na
);
{
if
(
SWIG_ConvertPtr
(
ST
(
3
),
(
void
**
)
&
arg4
,
SWIGTYPE_p_switch_input_args_t
,
0
)
<
0
)
{
SWIG_croak
(
"Type error in argument 4 of fs_switch_ivr_record_file. Expected _p_switch_input_args_t"
);
}
}
arg5
=
(
unsigned
int
)
SvUV
(
ST
(
4
));
result
=
(
int
)
fs_switch_ivr_record_file
(
arg1
,
arg2
,
arg3
,
arg4
,
arg5
);
ST
(
argvi
)
=
sv_newmortal
();
sv_setiv
(
ST
(
argvi
++
),
(
IV
)
result
);
XSRETURN
(
argvi
);
fail:
;
}
croak
(
Nullch
);
}
XS
(
_wrap_fs_switch_ivr_sleep
)
{
{
switch_core_session_t
*
arg1
=
(
switch_core_session_t
*
)
0
;
uint32_t
arg2
;
int
result
;
int
argvi
=
0
;
dXSARGS
;
if
((
items
<
2
)
||
(
items
>
2
))
{
SWIG_croak
(
"Usage: fs_switch_ivr_sleep(session,ms);"
);
}
{
if
(
SWIG_ConvertPtr
(
ST
(
0
),
(
void
**
)
&
arg1
,
SWIGTYPE_p_switch_core_session_t
,
0
)
<
0
)
{
SWIG_croak
(
"Type error in argument 1 of fs_switch_ivr_sleep. Expected _p_switch_core_session_t"
);
}
}
{
uint32_t
*
argp
;
if
(
SWIG_ConvertPtr
(
ST
(
1
),(
void
**
)
&
argp
,
SWIGTYPE_p_uint32_t
,
0
)
<
0
)
{
SWIG_croak
(
"Type error in argument 2 of fs_switch_ivr_sleep. Expected _p_uint32_t"
);
}
arg2
=
*
argp
;
}
result
=
(
int
)
fs_switch_ivr_sleep
(
arg1
,
arg2
);
ST
(
argvi
)
=
sv_newmortal
();
sv_setiv
(
ST
(
argvi
++
),
(
IV
)
result
);
XSRETURN
(
argvi
);
fail:
;
}
croak
(
Nullch
);
}
XS
(
_wrap_fs_ivr_play_file2
)
{
{
switch_core_session_t
*
arg1
=
(
switch_core_session_t
*
)
0
;
char
*
arg2
;
int
result
;
int
argvi
=
0
;
dXSARGS
;
if
((
items
<
2
)
||
(
items
>
2
))
{
SWIG_croak
(
"Usage: fs_ivr_play_file2(session,file);"
);
}
{
if
(
SWIG_ConvertPtr
(
ST
(
0
),
(
void
**
)
&
arg1
,
SWIGTYPE_p_switch_core_session_t
,
0
)
<
0
)
{
SWIG_croak
(
"Type error in argument 1 of fs_ivr_play_file2. Expected _p_switch_core_session_t"
);
}
}
if
(
!
SvOK
((
SV
*
)
ST
(
1
)))
arg2
=
0
;
else
arg2
=
(
char
*
)
SvPV
(
ST
(
1
),
PL_na
);
result
=
(
int
)
fs_ivr_play_file2
(
arg1
,
arg2
);
ST
(
argvi
)
=
sv_newmortal
();
sv_setiv
(
ST
(
argvi
++
),
(
IV
)
result
);
XSRETURN
(
argvi
);
fail:
;
}
croak
(
Nullch
);
}
XS
(
_wrap_fs_switch_ivr_collect_digits_callback
)
{
{
switch_core_session_t
*
arg1
=
(
switch_core_session_t
*
)
0
;
switch_input_args_t
*
arg2
=
(
switch_input_args_t
*
)
0
;
unsigned
int
arg3
;
int
result
;
int
argvi
=
0
;
dXSARGS
;
if
((
items
<
3
)
||
(
items
>
3
))
{
SWIG_croak
(
"Usage: fs_switch_ivr_collect_digits_callback(session,args,timeout);"
);
}
{
if
(
SWIG_ConvertPtr
(
ST
(
0
),
(
void
**
)
&
arg1
,
SWIGTYPE_p_switch_core_session_t
,
0
)
<
0
)
{
SWIG_croak
(
"Type error in argument 1 of fs_switch_ivr_collect_digits_callback. Expected _p_switch_core_session_t"
);
}
}
{
if
(
SWIG_ConvertPtr
(
ST
(
1
),
(
void
**
)
&
arg2
,
SWIGTYPE_p_switch_input_args_t
,
0
)
<
0
)
{
SWIG_croak
(
"Type error in argument 2 of fs_switch_ivr_collect_digits_callback. Expected _p_switch_input_args_t"
);
}
}
arg3
=
(
unsigned
int
)
SvUV
(
ST
(
2
));
result
=
(
int
)
fs_switch_ivr_collect_digits_callback
(
arg1
,
arg2
,
arg3
);
ST
(
argvi
)
=
sv_newmortal
();
sv_setiv
(
ST
(
argvi
++
),
(
IV
)
result
);
XSRETURN
(
argvi
);
fail:
;
}
croak
(
Nullch
);
}
XS
(
_wrap_fs_switch_ivr_collect_digits_count
)
{
{
switch_core_session_t
*
arg1
=
(
switch_core_session_t
*
)
0
;
char
*
arg2
;
unsigned
int
arg3
;
unsigned
int
arg4
;
char
*
arg5
;
char
*
arg6
;
unsigned
int
arg7
;
int
result
;
int
argvi
=
0
;
dXSARGS
;
if
((
items
<
7
)
||
(
items
>
7
))
{
SWIG_croak
(
"Usage: fs_switch_ivr_collect_digits_count(session,buf,buflen,maxdigits,terminators,terminator,timeout);"
);
}
{
if
(
SWIG_ConvertPtr
(
ST
(
0
),
(
void
**
)
&
arg1
,
SWIGTYPE_p_switch_core_session_t
,
0
)
<
0
)
{
SWIG_croak
(
"Type error in argument 1 of fs_switch_ivr_collect_digits_count. Expected _p_switch_core_session_t"
);
}
}
if
(
!
SvOK
((
SV
*
)
ST
(
1
)))
arg2
=
0
;
else
arg2
=
(
char
*
)
SvPV
(
ST
(
1
),
PL_na
);
arg3
=
(
unsigned
int
)
SvUV
(
ST
(
2
));
arg4
=
(
unsigned
int
)
SvUV
(
ST
(
3
));
if
(
!
SvOK
((
SV
*
)
ST
(
4
)))
arg5
=
0
;
else
arg5
=
(
char
*
)
SvPV
(
ST
(
4
),
PL_na
);
if
(
!
SvOK
((
SV
*
)
ST
(
5
)))
arg6
=
0
;
else
arg6
=
(
char
*
)
SvPV
(
ST
(
5
),
PL_na
);
arg7
=
(
unsigned
int
)
SvUV
(
ST
(
6
));
result
=
(
int
)
fs_switch_ivr_collect_digits_count
(
arg1
,
arg2
,
arg3
,
arg4
,(
char
const
*
)
arg5
,
arg6
,
arg7
);
ST
(
argvi
)
=
sv_newmortal
();
sv_setiv
(
ST
(
argvi
++
),
(
IV
)
result
);
XSRETURN
(
argvi
);
fail:
;
}
croak
(
Nullch
);
}
XS
(
_wrap_fs_switch_ivr_originate
)
{
{
switch_core_session_t
*
arg1
=
(
switch_core_session_t
*
)
0
;
switch_core_session_t
**
arg2
=
(
switch_core_session_t
**
)
0
;
char
*
arg3
;
uint32_t
arg4
;
int
result
;
int
argvi
=
0
;
dXSARGS
;
if
((
items
<
4
)
||
(
items
>
4
))
{
SWIG_croak
(
"Usage: fs_switch_ivr_originate(session,bleg,bridgeto,timelimit_sec);"
);
}
{
if
(
SWIG_ConvertPtr
(
ST
(
0
),
(
void
**
)
&
arg1
,
SWIGTYPE_p_switch_core_session_t
,
0
)
<
0
)
{
SWIG_croak
(
"Type error in argument 1 of fs_switch_ivr_originate. Expected _p_switch_core_session_t"
);
}
}
{
if
(
SWIG_ConvertPtr
(
ST
(
1
),
(
void
**
)
&
arg2
,
SWIGTYPE_p_p_switch_core_session_t
,
0
)
<
0
)
{
SWIG_croak
(
"Type error in argument 2 of fs_switch_ivr_originate. Expected _p_p_switch_core_session_t"
);
}
}
if
(
!
SvOK
((
SV
*
)
ST
(
2
)))
arg3
=
0
;
else
arg3
=
(
char
*
)
SvPV
(
ST
(
2
),
PL_na
);
{
uint32_t
*
argp
;
if
(
SWIG_ConvertPtr
(
ST
(
3
),(
void
**
)
&
argp
,
SWIGTYPE_p_uint32_t
,
0
)
<
0
)
{
SWIG_croak
(
"Type error in argument 4 of fs_switch_ivr_originate. Expected _p_uint32_t"
);
}
arg4
=
*
argp
;
}
result
=
(
int
)
fs_switch_ivr_originate
(
arg1
,
arg2
,
arg3
,
arg4
);
ST
(
argvi
)
=
sv_newmortal
();
sv_setiv
(
ST
(
argvi
++
),
(
IV
)
result
);
XSRETURN
(
argvi
);
fail:
;
}
croak
(
Nullch
);
}
XS
(
_wrap_fs_switch_ivr_session_transfer
)
{
{
switch_core_session_t
*
arg1
=
(
switch_core_session_t
*
)
0
;
char
*
arg2
;
char
*
arg3
;
char
*
arg4
;
int
result
;
int
argvi
=
0
;
dXSARGS
;
if
((
items
<
4
)
||
(
items
>
4
))
{
SWIG_croak
(
"Usage: fs_switch_ivr_session_transfer(session,extension,dialplan,context);"
);
}
{
if
(
SWIG_ConvertPtr
(
ST
(
0
),
(
void
**
)
&
arg1
,
SWIGTYPE_p_switch_core_session_t
,
0
)
<
0
)
{
SWIG_croak
(
"Type error in argument 1 of fs_switch_ivr_session_transfer. Expected _p_switch_core_session_t"
);
}
}
if
(
!
SvOK
((
SV
*
)
ST
(
1
)))
arg2
=
0
;
else
arg2
=
(
char
*
)
SvPV
(
ST
(
1
),
PL_na
);
if
(
!
SvOK
((
SV
*
)
ST
(
2
)))
arg3
=
0
;
else
arg3
=
(
char
*
)
SvPV
(
ST
(
2
),
PL_na
);
if
(
!
SvOK
((
SV
*
)
ST
(
3
)))
arg4
=
0
;
else
arg4
=
(
char
*
)
SvPV
(
ST
(
3
),
PL_na
);
result
=
(
int
)
fs_switch_ivr_session_transfer
(
arg1
,
arg2
,
arg3
,
arg4
);
ST
(
argvi
)
=
sv_newmortal
();
sv_setiv
(
ST
(
argvi
++
),
(
IV
)
result
);
XSRETURN
(
argvi
);
fail:
;
}
croak
(
Nullch
);
}
XS
(
_wrap_fs_switch_ivr_speak_text
)
{
{
switch_core_session_t
*
arg1
=
(
switch_core_session_t
*
)
0
;
char
*
arg2
;
char
*
arg3
;
uint32_t
arg4
;
char
*
arg5
;
int
result
;
int
argvi
=
0
;
dXSARGS
;
if
((
items
<
5
)
||
(
items
>
5
))
{
SWIG_croak
(
"Usage: fs_switch_ivr_speak_text(session,tts_name,voice_name,rate,text);"
);
}
{
if
(
SWIG_ConvertPtr
(
ST
(
0
),
(
void
**
)
&
arg1
,
SWIGTYPE_p_switch_core_session_t
,
0
)
<
0
)
{
SWIG_croak
(
"Type error in argument 1 of fs_switch_ivr_speak_text. Expected _p_switch_core_session_t"
);
}
}
if
(
!
SvOK
((
SV
*
)
ST
(
1
)))
arg2
=
0
;
else
arg2
=
(
char
*
)
SvPV
(
ST
(
1
),
PL_na
);
if
(
!
SvOK
((
SV
*
)
ST
(
2
)))
arg3
=
0
;
else
arg3
=
(
char
*
)
SvPV
(
ST
(
2
),
PL_na
);
{
uint32_t
*
argp
;
if
(
SWIG_ConvertPtr
(
ST
(
3
),(
void
**
)
&
argp
,
SWIGTYPE_p_uint32_t
,
0
)
<
0
)
{
SWIG_croak
(
"Type error in argument 4 of fs_switch_ivr_speak_text. Expected _p_uint32_t"
);
}
arg4
=
*
argp
;
}
if
(
!
SvOK
((
SV
*
)
ST
(
4
)))
arg5
=
0
;
else
arg5
=
(
char
*
)
SvPV
(
ST
(
4
),
PL_na
);
result
=
(
int
)
fs_switch_ivr_speak_text
(
arg1
,
arg2
,
arg3
,
arg4
,
arg5
);
ST
(
argvi
)
=
sv_newmortal
();
sv_setiv
(
ST
(
argvi
++
),
(
IV
)
result
);
XSRETURN
(
argvi
);
fail:
;
}
croak
(
Nullch
);
}
XS
(
_wrap_fs_switch_channel_get_variable
)
{
{
switch_channel_t
*
arg1
=
(
switch_channel_t
*
)
0
;
char
*
arg2
;
char
*
result
;
int
argvi
=
0
;
dXSARGS
;
if
((
items
<
2
)
||
(
items
>
2
))
{
SWIG_croak
(
"Usage: fs_switch_channel_get_variable(channel,varname);"
);
}
{
if
(
SWIG_ConvertPtr
(
ST
(
0
),
(
void
**
)
&
arg1
,
SWIGTYPE_p_switch_channel_t
,
0
)
<
0
)
{
SWIG_croak
(
"Type error in argument 1 of fs_switch_channel_get_variable. Expected _p_switch_channel_t"
);
}
}
if
(
!
SvOK
((
SV
*
)
ST
(
1
)))
arg2
=
0
;
else
arg2
=
(
char
*
)
SvPV
(
ST
(
1
),
PL_na
);
result
=
(
char
*
)
fs_switch_channel_get_variable
(
arg1
,
arg2
);
ST
(
argvi
)
=
sv_newmortal
();
if
(
result
)
{
sv_setpv
((
SV
*
)
ST
(
argvi
++
),
(
char
*
)
result
);
}
else
{
sv_setsv
((
SV
*
)
ST
(
argvi
++
),
&
PL_sv_undef
);
}
XSRETURN
(
argvi
);
fail:
;
}
croak
(
Nullch
);
}
XS
(
_wrap_fs_switch_channel_set_variable
)
{
{
switch_channel_t
*
arg1
=
(
switch_channel_t
*
)
0
;
char
*
arg2
;
char
*
arg3
;
int
result
;
int
argvi
=
0
;
dXSARGS
;
if
((
items
<
3
)
||
(
items
>
3
))
{
SWIG_croak
(
"Usage: fs_switch_channel_set_variable(channel,varname,value);"
);
}
{
if
(
SWIG_ConvertPtr
(
ST
(
0
),
(
void
**
)
&
arg1
,
SWIGTYPE_p_switch_channel_t
,
0
)
<
0
)
{
SWIG_croak
(
"Type error in argument 1 of fs_switch_channel_set_variable. Expected _p_switch_channel_t"
);
}
}
if
(
!
SvOK
((
SV
*
)
ST
(
1
)))
arg2
=
0
;
else
arg2
=
(
char
*
)
SvPV
(
ST
(
1
),
PL_na
);
if
(
!
SvOK
((
SV
*
)
ST
(
2
)))
arg3
=
0
;
else
arg3
=
(
char
*
)
SvPV
(
ST
(
2
),
PL_na
);
result
=
(
int
)
fs_switch_channel_set_variable
(
arg1
,
arg2
,
arg3
);
ST
(
argvi
)
=
sv_newmortal
();
sv_setiv
(
ST
(
argvi
++
),
(
IV
)
result
);
XSRETURN
(
argvi
);
fail:
;
}
croak
(
Nullch
);
}
/* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */
static
swig_type_info
_swigt__p_switch_channel_t
[]
=
{{
"_p_switch_channel_t"
,
0
,
"switch_channel_t *"
,
0
},{
"_p_switch_channel_t"
},{
0
}};
static
swig_type_info
_swigt__p_switch_file_handle_t
[]
=
{{
"_p_switch_file_handle_t"
,
0
,
"switch_file_handle_t *"
,
0
},{
"_p_switch_file_handle_t"
},{
0
}};
static
swig_type_info
_swigt__p_switch_core_session_t
[]
=
{{
"_p_switch_core_session_t"
,
0
,
"switch_core_session_t *"
,
0
},{
"_p_switch_core_session_t"
},{
0
}};
static
swig_type_info
_swigt__p_p_switch_core_session_t
[]
=
{{
"_p_p_switch_core_session_t"
,
0
,
"switch_core_session_t **"
,
0
},{
"_p_p_switch_core_session_t"
},{
0
}};
static
swig_type_info
_swigt__p_uint32_t
[]
=
{{
"_p_uint32_t"
,
0
,
"uint32_t *"
,
0
},{
"_p_uint32_t"
},{
0
}};
static
swig_type_info
_swigt__p_switch_input_args_t
[]
=
{{
"_p_switch_input_args_t"
,
0
,
"switch_input_args_t *"
,
0
},{
"_p_switch_input_args_t"
},{
0
}};
static
swig_type_info
*
swig_types_initial
[]
=
{
_swigt__p_switch_channel_t
,
_swigt__p_switch_file_handle_t
,
_swigt__p_switch_core_session_t
,
_swigt__p_p_switch_core_session_t
,
_swigt__p_uint32_t
,
_swigt__p_switch_input_args_t
,
0
};
/* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */
static
swig_constant_info
swig_constants
[]
=
{
{
SWIG_STRING
,
(
char
*
)
SWIG_prefix
"FREESWITCH_PEN"
,
0
,
0
,
(
void
*
)
"27880"
,
0
},
{
SWIG_STRING
,
(
char
*
)
SWIG_prefix
"FREESWITCH_OID_PREFIX"
,
0
,
0
,
(
void
*
)
".1.3.6.1.4.1.27880"
,
0
},
{
SWIG_STRING
,
(
char
*
)
SWIG_prefix
"FREESWITCH_ITAD"
,
0
,
0
,
(
void
*
)
"543"
,
0
},
{
SWIG_INT
,
(
char
*
)
SWIG_prefix
"__EXTENSIONS__"
,
(
long
)
1
,
0
,
0
,
0
},
{
0
}
};
#ifdef __cplusplus
}
#endif
static
swig_variable_info
swig_variables
[]
=
{
{
0
}
};
static
swig_command_info
swig_commands
[]
=
{
{
"fs_perlc::fs_core_set_globals"
,
_wrap_fs_core_set_globals
},
{
"fs_perlc::fs_core_init"
,
_wrap_fs_core_init
},
{
"fs_perlc::fs_core_destroy"
,
_wrap_fs_core_destroy
},
{
"fs_perlc::fs_loadable_module_init"
,
_wrap_fs_loadable_module_init
},
{
"fs_perlc::fs_loadable_module_shutdown"
,
_wrap_fs_loadable_module_shutdown
},
{
"fs_perlc::fs_console_loop"
,
_wrap_fs_console_loop
},
{
"fs_perlc::fs_consol_log"
,
_wrap_fs_consol_log
},
{
"fs_perlc::fs_consol_clean"
,
_wrap_fs_consol_clean
},
{
"fs_perlc::fs_core_session_locate"
,
_wrap_fs_core_session_locate
},
{
"fs_perlc::fs_channel_answer"
,
_wrap_fs_channel_answer
},
{
"fs_perlc::fs_channel_pre_answer"
,
_wrap_fs_channel_pre_answer
},
{
"fs_perlc::fs_channel_hangup"
,
_wrap_fs_channel_hangup
},
{
"fs_perlc::fs_channel_set_variable"
,
_wrap_fs_channel_set_variable
},
{
"fs_perlc::fs_channel_get_variable"
,
_wrap_fs_channel_get_variable
},
{
"fs_perlc::fs_channel_set_state"
,
_wrap_fs_channel_set_state
},
{
"fs_perlc::fs_ivr_play_file"
,
_wrap_fs_ivr_play_file
},
{
"fs_perlc::fs_switch_ivr_record_file"
,
_wrap_fs_switch_ivr_record_file
},
{
"fs_perlc::fs_switch_ivr_sleep"
,
_wrap_fs_switch_ivr_sleep
},
{
"fs_perlc::fs_ivr_play_file2"
,
_wrap_fs_ivr_play_file2
},
{
"fs_perlc::fs_switch_ivr_collect_digits_callback"
,
_wrap_fs_switch_ivr_collect_digits_callback
},
{
"fs_perlc::fs_switch_ivr_collect_digits_count"
,
_wrap_fs_switch_ivr_collect_digits_count
},
{
"fs_perlc::fs_switch_ivr_originate"
,
_wrap_fs_switch_ivr_originate
},
{
"fs_perlc::fs_switch_ivr_session_transfer"
,
_wrap_fs_switch_ivr_session_transfer
},
{
"fs_perlc::fs_switch_ivr_speak_text"
,
_wrap_fs_switch_ivr_speak_text
},
{
"fs_perlc::fs_switch_channel_get_variable"
,
_wrap_fs_switch_channel_get_variable
},
{
"fs_perlc::fs_switch_channel_set_variable"
,
_wrap_fs_switch_channel_set_variable
},
{
0
,
0
}
};
#ifdef __cplusplus
extern
"C"
#endif
XS
(
SWIG_init
)
{
dXSARGS
;
int
i
;
static
int
_init
=
0
;
if
(
!
_init
)
{
for
(
i
=
0
;
swig_types_initial
[
i
];
i
++
)
{
swig_types
[
i
]
=
SWIG_TypeRegister
(
swig_types_initial
[
i
]);
}
_init
=
1
;
}
/* Install commands */
for
(
i
=
0
;
swig_commands
[
i
].
name
;
i
++
)
{
newXS
((
char
*
)
swig_commands
[
i
].
name
,
swig_commands
[
i
].
wrapper
,
(
char
*
)
__FILE__
);
}
/* Install variables */
for
(
i
=
0
;
swig_variables
[
i
].
name
;
i
++
)
{
SV
*
sv
;
sv
=
perl_get_sv
((
char
*
)
swig_variables
[
i
].
name
,
TRUE
|
0x2
);
if
(
swig_variables
[
i
].
type
)
{
SWIG_MakePtr
(
sv
,(
void
*
)
1
,
*
swig_variables
[
i
].
type
,
0
);
}
else
{
sv_setiv
(
sv
,(
IV
)
0
);
}
swig_create_magic
(
sv
,
(
char
*
)
swig_variables
[
i
].
name
,
swig_variables
[
i
].
set
,
swig_variables
[
i
].
get
);
}
/* Install constant */
for
(
i
=
0
;
swig_constants
[
i
].
type
;
i
++
)
{
SV
*
sv
;
sv
=
perl_get_sv
((
char
*
)
swig_constants
[
i
].
name
,
TRUE
|
0x2
);
switch
(
swig_constants
[
i
].
type
)
{
case
SWIG_INT
:
sv_setiv
(
sv
,
(
IV
)
swig_constants
[
i
].
lvalue
);
break
;
case
SWIG_FLOAT
:
sv_setnv
(
sv
,
(
double
)
swig_constants
[
i
].
dvalue
);
break
;
case
SWIG_STRING
:
sv_setpv
(
sv
,
(
char
*
)
swig_constants
[
i
].
pvalue
);
break
;
case
SWIG_POINTER
:
SWIG_MakePtr
(
sv
,
swig_constants
[
i
].
pvalue
,
*
(
swig_constants
[
i
].
ptype
),
0
);
break
;
case
SWIG_BINARY
:
SWIG_MakePackedObj
(
sv
,
swig_constants
[
i
].
pvalue
,
swig_constants
[
i
].
lvalue
,
*
(
swig_constants
[
i
].
ptype
));
break
;
default:
break
;
}
SvREADONLY_on
(
sv
);
}
ST
(
0
)
=
&
PL_sv_yes
;
XSRETURN
(
1
);
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论