home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2000 May
/
Chip_2000-05_cd1.bin
/
zkuste
/
Perl
/
ActivePerl-5.6.0.613.msi
/
䆊䌷䈹䈙䏵-䞅䞆䞀㡆䞃䄦䠥
/
_b610b3284667fa0c43442991c40f2f7e
< prev
next >
Wrap
Text File
|
2000-03-23
|
3KB
|
101 lines
<HTML>
<HEAD>
<TITLE>SOAP::Packager - SOAP internal helper class</TITLE>
<LINK REL="stylesheet" HREF="../../../Active.css" TYPE="text/css">
<LINK REV="made" HREF="mailto:">
</HEAD>
<BODY>
<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
<TR><TD CLASS=block VALIGN=MIDDLE WIDTH=100% BGCOLOR="#cccccc">
<STRONG><P CLASS=block> SOAP::Packager - SOAP internal helper class</P></STRONG>
</TD></TR>
</TABLE>
<A NAME="__index__"></A>
<!-- INDEX BEGIN -->
<UL>
<LI><A HREF="#name">NAME</A></LI><LI><A HREF="#supportedplatforms">SUPPORTED PLATFORMS</A></LI>
<LI><A HREF="#synopsis">SYNOPSIS</A></LI>
<LI><A HREF="#description">DESCRIPTION</A></LI>
<LI><A HREF="#author">AUTHOR</A></LI>
<LI><A HREF="#see also">SEE ALSO</A></LI>
</UL>
<!-- INDEX END -->
<HR>
<P>
<H1><A NAME="name">NAME</A></H1>
<P>SOAP::Packager - SOAP internal helper class</P>
<P>
<HR>
<H1><A NAME="supportedplatforms">SUPPORTED PLATFORMS</A></H1>
<UL>
<LI>Linux</LI>
<LI>Solaris</LI>
<LI>Windows</LI>
</UL>
<HR>
<H1><A NAME="synopsis">SYNOPSIS</A></H1>
<PRE>
use SOAP::Packager;
my $packager = SOAP::Packager->new('s:', 1, sub { print shift } );</PRE>
<PRE>
# some object used as a reference
my $object = SOAP::Object->new();</PRE>
<PRE>
# on a given packager, register() always returns the same id for a given object
my $id = $packager->register($env, $object);
unless($id == $packager->register($env, $object)) { die "internal error" }</PRE>
<PRE>
# this serializes objectA
$packager->seal($envelope);</PRE>
<PRE>
# note that the package is still valid
unless($id == $packager->register($env, $object)) { die "internal error" }</PRE>
<PRE>
my $objectB = SOAP::Object->new();
my $idB = $packager->register($env, $objectB);
unless($idB == $packager->register($env, $objectB)) { die "internal error" }</PRE>
<PRE>
# this just serializes objectB - objectA was already serialized before
$packager->seal($env);</PRE>
<PRE>
# this does nothing except waste some cycles enumerating a hash table
$packager->seal($env=);</PRE>
<PRE>
# hash tables shut down at destruction of packager, releasing object references
$packager = undef;</PRE>
<P>
<HR>
<H1><A NAME="description">DESCRIPTION</A></H1>
<P>This is an internal class used by the SOAP/Perl implementation. It is designed to
manage a table of object references and XML ids used for serializing object graphs
that may contain multiref data (and perhaps even cycles). If you are extending
SOAP/Perl, the above synopsis will probably be all you need if you want to reuse this
class. Whatever you pass for the $env reference should implement a function called
_alloc_id that returns a unique string each time it is called. This is normally
implemented by SOAP::Envelope, so you can see a sample implementation there.</P>
<P>
<HR>
<H1><A NAME="author">AUTHOR</A></H1>
<P>Keith Brown</P>
<P>
<HR>
<H1><A NAME="see also">SEE ALSO</A></H1>
<P>SOAP::Envelope
SOAP::OutputStream</P>
<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
<TR><TD CLASS=block VALIGN=MIDDLE WIDTH=100% BGCOLOR="#cccccc">
<STRONG><P CLASS=block> SOAP::Packager - SOAP internal helper class</P></STRONG>
</TD></TR>
</TABLE>
</BODY>
</HTML>