| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| <html xmlns="http://www.w3.org/1999/xhtml"> |
| <head> |
| <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> |
| <meta http-equiv="X-UA-Compatible" content="IE=9"/> |
| <meta name="generator" content="Doxygen 1.8.5"/> |
| <title>VCL XML RPC: xmlrpc_example.php</title> |
| <link href="xmlrpcdocs.css" rel="stylesheet" type="text/css" /> |
| </head> |
| <body> |
| <div id="top"><!-- do not remove this div, it is closed by doxygen! --> |
| <div id="titlearea"> |
| <table cellspacing="0" cellpadding="0"> |
| <tbody> |
| <tr style="height: 56px;"> |
| <td style="padding-left: 0.5em;"> |
| <div id="projectname">VCL XML RPC |
| </div> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| <!-- end header part --> |
| <!-- Generated by Doxygen 1.8.5 --> |
| </div><!-- top --> |
| <div class="header"> |
| <div class="headertitle"> |
| <div class="title">xmlrpc_example.php</div> </div> |
| </div><!--header--> |
| <div class="contents"> |
| <div class="fragment"><div class="line"><?php</div> |
| <div class="line"><span class="comment">/*</span></div> |
| <div class="line"><span class="comment"> Licensed to the Apache Software Foundation (ASF) under one or more</span></div> |
| <div class="line"><span class="comment"> contributor license agreements. See the NOTICE file distributed with</span></div> |
| <div class="line"><span class="comment"> this work for additional information regarding copyright ownership.</span></div> |
| <div class="line"><span class="comment"> The ASF licenses this file to You under the Apache License, Version 2.0</span></div> |
| <div class="line"><span class="comment"> (the "License"); you may not use this file except in compliance with</span></div> |
| <div class="line"><span class="comment"> the License. You may obtain a copy of the License at</span></div> |
| <div class="line"><span class="comment"></span></div> |
| <div class="line"><span class="comment"> http://www.apache.org/licenses/LICENSE-2.0</span></div> |
| <div class="line"><span class="comment"></span></div> |
| <div class="line"><span class="comment"> Unless required by applicable law or agreed to in writing, software</span></div> |
| <div class="line"><span class="comment"> distributed under the License is distributed on an "AS IS" BASIS,</span></div> |
| <div class="line"><span class="comment"> WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div> |
| <div class="line"><span class="comment"> See the License for the specific language governing permissions and</span></div> |
| <div class="line"><span class="comment"> limitations under the License.</span></div> |
| <div class="line"><span class="comment">*/</span></div> |
| <div class="line"></div> |
| <div class="line">session_start();</div> |
| <div class="line"></div> |
| <div class="line">$url = <span class="stringliteral">"http://{$_SERVER['HTTP_HOST']}{$_SERVER['PHP_SELF']}"</span>;</div> |
| <div class="line">print <span class="stringliteral">"<a href=\"$url?state=test\">Test</a><br>\n"</span>;</div> |
| <div class="line">print <span class="stringliteral">"<a href=\"$url?state=listimages\">List Available Images</a><br>\n"</span>;</div> |
| <div class="line">print <span class="stringliteral">"<a href=\"$url?state=addrequest\">Add request for Test Image 1</a><br>\n"</span>;</div> |
| <div class="line">print <span class="stringliteral">"<a href=\"$url?state=requeststatus\">Get status of request</a><br>\n"</span>;</div> |
| <div class="line">print <span class="stringliteral">"<a href=\"$url?state=connectdata\">Get connection data</a><br>\n"</span>;</div> |
| <div class="line">print <span class="stringliteral">"<a href=\"$url?state=endrequest\">End request</a><br>\n"</span>;</div> |
| <div class="line"></div> |
| <div class="line">print <span class="stringliteral">"<pre>\n"</span>;</div> |
| <div class="line"></div> |
| <div class="line"><span class="comment">// test</span></div> |
| <div class="line"><span class="keywordflow">if</span>($_GET[<span class="stringliteral">'state'</span>] == <span class="stringliteral">'test'</span>) {</div> |
| <div class="line"> $rc = remoteVCLCall(<span class="stringliteral">'XMLRPCtest'</span>, array(<span class="stringliteral">'foo'</span>));</div> |
| <div class="line"> print_r($rc);</div> |
| <div class="line">}</div> |
| <div class="line"><span class="comment">// list images</span></div> |
| <div class="line">elseif($_GET[<span class="stringliteral">'state'</span>] == <span class="stringliteral">'listimages'</span>) {</div> |
| <div class="line"> $rc = remoteVCLCall(<span class="stringliteral">'XMLRPCgetImages'</span>, array());</div> |
| <div class="line"> print_r($rc);</div> |
| <div class="line">}</div> |
| <div class="line"><span class="comment">// add request</span></div> |
| <div class="line">elseif($_GET[<span class="stringliteral">'state'</span>] == <span class="stringliteral">'addrequest'</span>) {</div> |
| <div class="line"> $rc = remoteVCLCall(<span class="stringliteral">'XMLRPCaddRequest'</span>, array(98, <span class="stringliteral">'now'</span>, 60));</div> |
| <div class="line"> <span class="keywordflow">if</span>($rc[<span class="stringliteral">'status'</span>] == <span class="stringliteral">'success'</span>) {</div> |
| <div class="line"> print <span class="stringliteral">"request id is {$rc['requestid']}<br>\n"</span>;</div> |
| <div class="line"> $_SESSION[<span class="stringliteral">'requestid'</span>] = $rc[<span class="stringliteral">'requestid'</span>];</div> |
| <div class="line"> }</div> |
| <div class="line"> <span class="keywordflow">else</span> {</div> |
| <div class="line"> print_r($rc);</div> |
| <div class="line"> }</div> |
| <div class="line">}</div> |
| <div class="line"><span class="comment">// get request status</span></div> |
| <div class="line">elseif($_GET[<span class="stringliteral">'state'</span>] == <span class="stringliteral">'requeststatus'</span>) {</div> |
| <div class="line"> <span class="keywordflow">if</span>(! array_key_exists(<span class="stringliteral">'requestid'</span>, $_SESSION)) {</div> |
| <div class="line"> print <span class="stringliteral">"no request created<br>\n"</span>;</div> |
| <div class="line"> exit;</div> |
| <div class="line"> }</div> |
| <div class="line"> $rc = remoteVCLCall(<span class="stringliteral">'XMLRPCgetRequestStatus'</span>, array($_SESSION[<span class="stringliteral">'requestid'</span>]));</div> |
| <div class="line"> print <span class="stringliteral">"current status of request {$_SESSION['requestid']} is {$rc['status']}"</span>;</div> |
| <div class="line">}</div> |
| <div class="line"><span class="comment">// get connection data</span></div> |
| <div class="line">elseif($_GET[<span class="stringliteral">'state'</span>] == <span class="stringliteral">'connectdata'</span>) {</div> |
| <div class="line"> <span class="keywordflow">if</span>(! array_key_exists(<span class="stringliteral">'requestid'</span>, $_SESSION)) {</div> |
| <div class="line"> print <span class="stringliteral">"no request created<br>\n"</span>;</div> |
| <div class="line"> exit;</div> |
| <div class="line"> }</div> |
| <div class="line"> $rc = remoteVCLCall(<span class="stringliteral">'XMLRPCgetRequestConnectData'</span>, array($_SESSION[<span class="stringliteral">'requestid'</span>], $_SERVER[<span class="stringliteral">"REMOTE_ADDR"</span>]));</div> |
| <div class="line"> <span class="keywordflow">if</span>($rc[<span class="stringliteral">'status'</span>] == <span class="stringliteral">'ready'</span>)</div> |
| <div class="line"> print_r($rc);</div> |
| <div class="line"> <span class="keywordflow">else</span></div> |
| <div class="line"> print <span class="stringliteral">"status of request is {$rc['status']}"</span>;</div> |
| <div class="line">}</div> |
| <div class="line"><span class="comment">// end request</span></div> |
| <div class="line">elseif($_GET[<span class="stringliteral">'state'</span>] == <span class="stringliteral">'endrequest'</span>) {</div> |
| <div class="line"> <span class="keywordflow">if</span>(! array_key_exists(<span class="stringliteral">'requestid'</span>, $_SESSION)) {</div> |
| <div class="line"> print <span class="stringliteral">"no request created<br>\n"</span>;</div> |
| <div class="line"> exit;</div> |
| <div class="line"> }</div> |
| <div class="line"> $rc = remoteVCLCall(<span class="stringliteral">'XMLRPCendRequest'</span>, array($_SESSION[<span class="stringliteral">'requestid'</span>]));</div> |
| <div class="line"> <span class="keywordflow">if</span>($rc[<span class="stringliteral">'status'</span>] == <span class="stringliteral">'error'</span>)</div> |
| <div class="line"> print_r($rc);</div> |
| <div class="line"> <span class="keywordflow">else</span> {</div> |
| <div class="line"> print <span class="stringliteral">"request ended<br>\n"</span>;</div> |
| <div class="line"> unset($_SESSION[<span class="stringliteral">'requestid'</span>]);</div> |
| <div class="line"> }</div> |
| <div class="line">}</div> |
| <div class="line">print <span class="stringliteral">"</pre>\n"</span>;</div> |
| <div class="line"></div> |
| <div class="line"><span class="keyword">function</span> remoteVCLCall($method, $args) {</div> |
| <div class="line"> $request = xmlrpc_encode_request($method, $args);</div> |
| <div class="line"> $header = <span class="stringliteral">"Content-Type: text/xml\r\n"</span>;</div> |
| <div class="line"> $header .= <span class="stringliteral">"X-User: userid\r\n"</span>; <span class="comment">// user your userid here</span></div> |
| <div class="line"> $header .= <span class="stringliteral">"X-Pass: password\r\n"</span>; <span class="comment">// user your password here</span></div> |
| <div class="line"> $header .= <span class="stringliteral">"X-APIVERSION: 2"</span>; <span class="comment">// this is to allow for future changes to the api</span></div> |
| <div class="line"> $context = stream_context_create(</div> |
| <div class="line"> array(</div> |
| <div class="line"> <span class="stringliteral">'http'</span> => array(</div> |
| <div class="line"> <span class="stringliteral">'method'</span> => <span class="stringliteral">"POST"</span>,</div> |
| <div class="line"> <span class="stringliteral">'header'</span> => $header,</div> |
| <div class="line"> <span class="stringliteral">'content'</span> => $request</div> |
| <div class="line"> )</div> |
| <div class="line"> )</div> |
| <div class="line"> );</div> |
| <div class="line"> $file = file_get_contents(<span class="stringliteral">"https://vcl.ncsu.edu/scheduling/index.php?mode=xmlrpccall"</span>, <span class="keyword">false</span>, $context);</div> |
| <div class="line"> $response = xmlrpc_decode($file);</div> |
| <div class="line"> <span class="keywordflow">if</span>(xmlrpc_is_fault($response)) {</div> |
| <div class="line"> trigger_error(<span class="stringliteral">"xmlrpc: {$response['faultString']} ({$response['faultCode']})"</span>);</div> |
| <div class="line"> exit;</div> |
| <div class="line"> }</div> |
| <div class="line"> <span class="keywordflow">return</span> $response;</div> |
| <div class="line">}</div> |
| <div class="line">?></div> |
| </div><!-- fragment --> </div><!-- contents --> |
| <!-- start footer part --> |
| <hr class="footer"/><address class="footer"><small> |
| Generated on Fri Feb 13 2015 13:43:55 for VCL XML RPC by  <a href="http://www.doxygen.org/index.html"> |
| <img class="footer" src="doxygen.png" alt="doxygen"/> |
| </a> 1.8.5 |
| </small></address> |
| </body> |
| </html> |