home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 May / Chip_2000-05_cd1.bin / zkuste / Perl / ActivePerl-5.6.0.613.msi / 䆊䌷䈹䈙䏵-䞅䞆䞀㡆䞃䄦䠥 / _398e5242e5b63fc07bcbb37f5e29e3e8 < prev    next >
Text File  |  2000-03-23  |  11KB  |  230 lines

  1.  
  2. <HTML>
  3. <HEAD>
  4. <TITLE>PPM::SOAPServer - SOAP server for PPM repository</TITLE>
  5. <LINK REL="stylesheet" HREF="../../../Active.css" TYPE="text/css">
  6. <LINK REV="made" HREF="mailto:">
  7. </HEAD>
  8.  
  9. <BODY>
  10. <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
  11. <TR><TD CLASS=block VALIGN=MIDDLE WIDTH=100% BGCOLOR="#cccccc">
  12. <STRONG><P CLASS=block> PPM::SOAPServer - SOAP server for PPM repository</P></STRONG>
  13. </TD></TR>
  14. </TABLE>
  15.  
  16. <A NAME="__index__"></A>
  17. <!-- INDEX BEGIN -->
  18.  
  19. <UL>
  20.  
  21.     <LI><A HREF="#name">NAME</A></LI><LI><A HREF="#supportedplatforms">SUPPORTED PLATFORMS</A></LI>
  22.  
  23.     <LI><A HREF="#synopsis">SYNOPSIS</A></LI>
  24.     <LI><A HREF="#description">DESCRIPTION</A></LI>
  25.     <LI><A HREF="#methods">METHODS</A></LI>
  26.     <LI><A HREF="#author">AUTHOR</A></LI>
  27.     <LI><A HREF="#see also">SEE ALSO</A></LI>
  28. </UL>
  29. <!-- INDEX END -->
  30.  
  31. <HR>
  32. <P>
  33. <H1><A NAME="name">NAME</A></H1>
  34. <P>PPM::SOAPServer - SOAP server for PPM repository</P>
  35. <P>
  36. <HR>
  37. <H1><A NAME="supportedplatforms">SUPPORTED PLATFORMS</A></H1>
  38. <UL>
  39. <LI>Linux</LI>
  40. <LI>Solaris</LI>
  41. <LI>Windows</LI>
  42. </UL>
  43. <HR>
  44. <H1><A NAME="synopsis">SYNOPSIS</A></H1>
  45. <PRE>
  46.   use SOAP::Transport::HTTP::CGI;
  47.   my $safe_classes = {
  48.     'PPM::SOAPServer' => undef,
  49.     };
  50.   SOAP::Transport::HTTP::CGI->handler( $safe_classes );</PRE>
  51. <P>
  52. <HR>
  53. <H1><A NAME="description">DESCRIPTION</A></H1>
  54. <P><CODE>PPM::SOAPServer</CODE> is a module that provides an implementation of a SOAP
  55. server to hold the PPM repository.  Note that it is not required that you
  56. actually instantiate a copy of the server object yourself; the SOAP modules
  57. will take care of this for you when they instantiate the SOAP server.  All of
  58. the 'search*' methods that are provided by this module are made available
  59. through the SOAP interface and can be accessed through a SOAP client.</P>
  60. <P>
  61. <HR>
  62. <H1><A NAME="methods">METHODS</A></H1>
  63. <DL>
  64. <DT><STRONG><A NAME="item_new">new ()</A></STRONG><BR>
  65. <DD>
  66. Instantiates a new PPM::SOAPServer object, returning a reference to the
  67. newly created object to the caller. During instantiation, we also read in a
  68. full copy of the information held within the repository so that we can run
  69. queries against it later.
  70. <P></P>
  71. <DT><STRONG><A NAME="item_handle_request">handle_request ($hdrs, $body, $envelope)</A></STRONG><BR>
  72. <DD>
  73. Handles the complete request provided through the SOAP interface. This
  74. method determines which method is to be invoked and calls off to that
  75. method to generate the response which is to be returned to the caller. Once
  76. the response has been generated, we stuff this back into the envelope so
  77. that it can be returned via the SOAP server.
  78. <P></P>
  79. <DT><STRONG><A NAME="item_version">version ()</A></STRONG><BR>
  80. <DD>
  81. Returns to the caller the version number of the SOAP server that is
  82. running.
  83. <P></P>
  84. <DT><STRONG><A NAME="item_searchAbstract">searchAbstract ($params)</A></STRONG><BR>
  85. <DD>
  86. Searches against the '<CODE>ABSTRACT</CODE>' field within the packages held in the
  87. repository. Within the given parameters, a key of ``search'' should be
  88. provided containing the term to search for (which can be a regex). If no
  89. ``search'' key is provided, a complete list of all of the packages are
  90. returned to the caller.
  91. <P>The return value provided from this method will be a reference to a hash
  92. containing the result set. A key named ``num_results'' will be provided,
  93. stating the number of results to be found in the result set. Each item in
  94. the result set will be named ``result_???'' where '<CODE>???</CODE>' is the number of
  95. that item in the result set. For example, a search returning two results
  96. would return a reference to a hash with keys of '<CODE>num_results</CODE>',
  97. '<CODE>result_1</CODE>', and '<CODE>result_2</CODE>'.</P>
  98. <P></P>
  99. <DT><STRONG><A NAME="item_searchAuthor">searchAuthor ($params)</A></STRONG><BR>
  100. <DD>
  101. Searches against the '<CODE>AUTHOR</CODE>' field within the packages held in the
  102. repository. Within the given parameters, a key of ``search'' should be
  103. provided containing the term to search for (which can be a regex). If no
  104. ``search'' key is provided, a complete list of all of the packages are
  105. returned to the caller.
  106. <P>The return value provided from this method will be a reference to a hash
  107. containing the result set. A key named ``num_results'' will be provided,
  108. stating the number of results to be found in the result set. Each item in
  109. the result set will be named ``result_???'' where '<CODE>???</CODE>' is the number of
  110. that item in the result set. For example, a search returning two results
  111. would returns a reference to a hash with keys of '<CODE>num_results</CODE>',
  112. '<CODE>result_1</CODE>', and '<CODE>result_2</CODE>'.</P>
  113. <P></P>
  114. <DT><STRONG><A NAME="item_searchTitle">searchTitle ($params)</A></STRONG><BR>
  115. <DD>
  116. Searches against the '<CODE>TITLE</CODE>' field within the packages held in the
  117. repository. Within the given parameters, a key of ``search'' should be
  118. provided containing the term to search for (which can be a regex). If no
  119. ``search'' key is provided, a complete list of all of the packages are
  120. returned to the caller.
  121. <P>The return value provided from this method will be a reference to a hash
  122. containing the result set. A key named ``num_results'' will be provided,
  123. stating the number of results to be found in the result set. Each item in
  124. the result set will be named ``result_???'' where '<CODE>???</CODE>' is the number of
  125. that item in the result set. For example, a search returning two results
  126. would returns a reference to a hash with keys of '<CODE>num_results</CODE>',
  127. '<CODE>result_1</CODE>', and '<CODE>result_2</CODE>'.</P>
  128. <P></P>
  129. <DT><STRONG><A NAME="item_search">search ($params)</A></STRONG><BR>
  130. <DD>
  131. Searches against _all_ of the fields within the packages held in the
  132. repository. Within the given parameters, a key of ``search'' should be
  133. provided containing the term to search for (which can be a regex). If no
  134. ``search'' key is provided, a complete list of all of the packages are
  135. returned to the caller.
  136. <P>The return value provided from this method will be a reference to a hash
  137. containing the result set. A key named ``num_results'' will be provided,
  138. stating the number of results to be found in the result set. Each item in
  139. the result set will be named ``result_???'' where '<CODE>???</CODE>' is the number of
  140. that item in the result set. For example, a search returning two results
  141. would returns a reference to a hash with keys of '<CODE>num_results</CODE>',
  142. '<CODE>result_1</CODE>', and '<CODE>result_2</CODE>'.</P>
  143. <P></P>
  144. <DT><STRONG><A NAME="item_packages">packages ()</A></STRONG><BR>
  145. <DD>
  146. Generates a list of all of the packages currently available in the
  147. repository.
  148. <P>The return value provided from this method will be a reference to a hash
  149. containing the result set. A key named ``num_results'' will be provided,
  150. stating the number of results to be found in the result set. Each item in
  151. the result set will be named ``result_???'' where '<CODE>???</CODE>' is the number of
  152. that item in the result set. For example, a repository with two packages in
  153. it would return a reference to a hash with keys of '<CODE>num_results</CODE>',
  154. '<CODE>result_1</CODE>', and '<CODE>result_2</CODE>'.</P>
  155. <P></P>
  156. <DT><STRONG><A NAME="item_fetch_ppd">fetch_ppd ($params)</A></STRONG><BR>
  157. <DD>
  158. Fetches the PPD from our package list for a specific package. The
  159. parameters provided should include a key named '<A HREF="../../../lib/Pod/perlfunc.html#item_package"><CODE>package</CODE></A>', which is the
  160. name of the package for which we wish to fetch the PPD for. This method
  161. returns to the caller a hash reference containing the matching results. A
  162. key named ``num_results'' will be present stating the number of matching
  163. results (either 0 or 1). If a PPD has been found for the requested package,
  164. a key of ``result_1'' will also be present, whose value will be the full
  165. contents of the PPD file (in XML format) as a scalar value.
  166. <P></P>
  167. <DT><STRONG><A NAME="item_fetch_summary">fetch_summary ()</A></STRONG><BR>
  168. <DD>
  169. Fetches a summary of the entire contents of the repository. This method
  170. returns to the caller a reference to a hash containing the following keys:
  171. '<CODE>num_results</CODE>', '<CODE>result_1</CODE>'. The value of the '<CODE>result_1</CODE>' key is the
  172. full contents of the repository summary file (in XML format) as a scalar
  173. value.
  174. <P></P>
  175. <DT><STRONG><A NAME="item__xml_escape">_xml_escape ($val)</A></STRONG><BR>
  176. <DD>
  177. <STRONG>INTERNAL METHOD.</STRONG> Cheap little function to escape out most of the things
  178. in the value we're passing back so that its at least ``clean''. This should
  179. really be using some sort of XML::Entities module to do the conversion,
  180. though; I've just hacked this together because these are the things that I
  181. encountered.
  182. <P></P>
  183. <DT><STRONG><A NAME="item__search">_search ($field, $search)</A></STRONG><BR>
  184. <DD>
  185. <STRONG>INTERNAL METHOD.</STRONG> Does a general search against the fields present for a
  186. package within the repository, searching for a specific term (which could
  187. be a regex). If no '<CODE>$field</CODE>' value is provided, this method searches
  188. through _all_ of the fields present for a given package. If no '<CODE>$search</CODE>'
  189. value is provided, '<CODE>.*</CODE>' is deemed to be the matching regex (everything).
  190. <P>The return value provided from this method will be a reference to a hash
  191. containing the result set. A key named ``num_results'' will be provided,
  192. stating the number of results to be found in the result set. Each item in
  193. the result set will be named ``result_???'' where '<CODE>???</CODE>' is the number of
  194. that item in the result set. For example, a search returning two results
  195. would returns a reference to a hash with keys of '<CODE>num_results</CODE>',
  196. '<CODE>result_1</CODE>', and '<CODE>result_2</CODE>'.</P>
  197. <P></P>
  198. <DT><STRONG><A NAME="item__pkginfo">_pkginfo ($package)</A></STRONG><BR>
  199. <DD>
  200. <STRONG>INTERNAL METHOD.</STRONG> Takes the XML object representation of a package and
  201. turns it into a single hash reference containing only select portions of
  202. the package information. This hash reference is then returned to the
  203. caller.
  204. <P></P>
  205. <DT><STRONG><A NAME="item__loadRepository">_loadRepository ()</A></STRONG><BR>
  206. <DD>
  207. <STRONG>INTERNAL METHOD.</STRONG> Loads up information about the contents of the
  208. repository, stuffing them into the global namespace. If the repository has
  209. already been loaded, this method simply returns without doing anything.
  210. NOTE, that this method is _NOT_ an instance method; it's a package method.
  211. <P></P></DL>
  212. <P>
  213. <HR>
  214. <H1><A NAME="author">AUTHOR</A></H1>
  215. <P>Graham TerMarsch (<A HREF="mailto:gtermars@home.com">gtermars@home.com</A>)</P>
  216. <P>
  217. <HR>
  218. <H1><A NAME="see also">SEE ALSO</A></H1>
  219. <P><A HREF="../../../site/lib/PPM/SOAPClient.html">the PPM::SOAPClient manpage</A>,
  220. <A HREF="../../../site/lib/SOAP.html">the SOAP manpage</A>.</P>
  221. <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
  222. <TR><TD CLASS=block VALIGN=MIDDLE WIDTH=100% BGCOLOR="#cccccc">
  223. <STRONG><P CLASS=block> PPM::SOAPServer - SOAP server for PPM repository</P></STRONG>
  224. </TD></TR>
  225. </TABLE>
  226.  
  227. </BODY>
  228.  
  229. </HTML>
  230.