mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-08-13 01:26:58 +00:00
add perl wrapper to scgi
This commit is contained in:
103
libs/libscgi/perl/FSSCGI.pm
Normal file
103
libs/libscgi/perl/FSSCGI.pm
Normal file
@@ -0,0 +1,103 @@
|
||||
# This file was automatically generated by SWIG (http://www.swig.org).
|
||||
# Version 1.3.35
|
||||
#
|
||||
# Don't modify this file, modify the SWIG interface instead.
|
||||
|
||||
package FSSCGI;
|
||||
require Exporter;
|
||||
require DynaLoader;
|
||||
@ISA = qw(Exporter DynaLoader);
|
||||
package FSSCGIc;
|
||||
bootstrap FSSCGI;
|
||||
package FSSCGI;
|
||||
@EXPORT = qw( );
|
||||
|
||||
# ---------- BASE METHODS -------------
|
||||
|
||||
package FSSCGI;
|
||||
|
||||
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 FSSCGI;
|
||||
|
||||
|
||||
############# Class : FSSCGI::SCGIhandle ##############
|
||||
|
||||
package FSSCGI::SCGIhandle;
|
||||
use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
|
||||
@ISA = qw( FSSCGI );
|
||||
%OWNER = ();
|
||||
%ITERATORS = ();
|
||||
sub new {
|
||||
my $pkg = shift;
|
||||
my $self = FSSCGIc::new_SCGIhandle(@_);
|
||||
bless $self, $pkg if defined($self);
|
||||
}
|
||||
|
||||
sub DESTROY {
|
||||
return unless $_[0]->isa('HASH');
|
||||
my $self = tied(%{$_[0]});
|
||||
return unless defined $self;
|
||||
delete $ITERATORS{$self};
|
||||
if (exists $OWNER{$self}) {
|
||||
FSSCGIc::delete_SCGIhandle($self);
|
||||
delete $OWNER{$self};
|
||||
}
|
||||
}
|
||||
|
||||
*connected = *FSSCGIc::SCGIhandle_connected;
|
||||
*socketDescriptor = *FSSCGIc::SCGIhandle_socketDescriptor;
|
||||
*disconnect = *FSSCGIc::SCGIhandle_disconnect;
|
||||
*addParam = *FSSCGIc::SCGIhandle_addParam;
|
||||
*addBody = *FSSCGIc::SCGIhandle_addBody;
|
||||
*sendRequest = *FSSCGIc::SCGIhandle_sendRequest;
|
||||
*recv = *FSSCGIc::SCGIhandle_recv;
|
||||
*bind = *FSSCGIc::SCGIhandle_bind;
|
||||
*accept = *FSSCGIc::SCGIhandle_accept;
|
||||
sub DISOWN {
|
||||
my $self = shift;
|
||||
my $ptr = tied(%$self);
|
||||
delete $OWNER{$ptr};
|
||||
}
|
||||
|
||||
sub ACQUIRE {
|
||||
my $self = shift;
|
||||
my $ptr = tied(%$self);
|
||||
$OWNER{$ptr} = 1;
|
||||
}
|
||||
|
||||
|
||||
# ------- VARIABLE STUBS --------
|
||||
|
||||
package FSSCGI;
|
||||
|
||||
1;
|
38
libs/libscgi/perl/Makefile
Normal file
38
libs/libscgi/perl/Makefile
Normal file
@@ -0,0 +1,38 @@
|
||||
PERL=$(shell which perl)
|
||||
PERL_SITEDIR=$(shell perl -MConfig -e 'print $$Config{sitelibexp}')
|
||||
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}')
|
||||
GCC_WARNING_JUNK=-w
|
||||
PERL_INC=$(shell $(PERL) -MExtUtils::Embed -e perl_inc)
|
||||
all: FSSCGI.so
|
||||
|
||||
scgi_wrap.cpp:
|
||||
swig -module FSSCGI -shadow -perl5 -c++ -DMULTIPLICITY -I../src/include -o scgi_wrap.cpp ../FSSCGI.i
|
||||
|
||||
perlxsi.c:
|
||||
$(PERL) -MExtUtils::Embed -e xsinit -- -o perlxsi.c
|
||||
|
||||
perlxsi.o: perlxsi.c
|
||||
$(CC) $(CC_CFLAGS) $(CFLAGS) $(LOCAL_CFLAGS) -c perlxsi.c -o perlxsi.o
|
||||
|
||||
scgi_wrap.o: scgi_wrap.cpp
|
||||
$(CXX) $(CXX_CFLAGS) $(CXXFLAGS) $(GCC_WARNING_JUNK) $(PERL_INC) -c scgi_wrap.cpp -o scgi_wrap.o
|
||||
|
||||
FSSCGI.so: scgi_wrap.o perlxsi.o
|
||||
$(CXX) $(SOLINK) scgi_wrap.o perlxsi.o $(MYLIB) $(LOCAL_LDFLAGS) -o FSSCGI.so -L. $(LIBS)
|
||||
|
||||
clean:
|
||||
rm -f *.o *.so *~
|
||||
|
||||
swigclean:
|
||||
rm -f scgi_wrap.* FSSCGI.so FSSCGI.pm perlxsi.*
|
||||
|
||||
reswig: swigclean scgi_wrap.cpp perlxsi.c
|
||||
|
||||
install: FSSCGI.so
|
||||
install -m 755 FSSCGI.so $(PERL_SITEDIR)
|
||||
install -m 755 FSSCGI.pm $(PERL_SITEDIR)
|
||||
install -d -m 755 FSSCGI $(PERL_SITEDIR)/FSSCGI
|
||||
install -m 755 FSSCGI/* $(PERL_SITEDIR)/FSSCGI
|
4149
libs/libscgi/perl/esl_wrap.cpp
Normal file
4149
libs/libscgi/perl/esl_wrap.cpp
Normal file
File diff suppressed because it is too large
Load Diff
16
libs/libscgi/perl/perlxsi.c
Normal file
16
libs/libscgi/perl/perlxsi.c
Normal file
@@ -0,0 +1,16 @@
|
||||
#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);
|
||||
}
|
2459
libs/libscgi/perl/scgi_wrap.cpp
Normal file
2459
libs/libscgi/perl/scgi_wrap.cpp
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user