home *** CD-ROM | disk | FTP | other *** search
-
- <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>
-