| 
<?php// have to put this into a php block or the <?xml will be put as a PHP syntax error on extended code escape
 echo '<?xml version="1.0" encoding="UTF-8"?>';
 ?>
 <!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" xml:lang="en" lang="en">
 <head>
 <!-- Generic browser family -->
 <title>DomCore Demos, a WebAbility® Network Project</title>
 <meta http-equiv="PRAGMA" content="NO-CACHE" />
 <meta http-equiv="Expires" content="-1" />
 
 <meta name="Keywords" content="WAJAF, WebAbility" />
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 <meta name="Charset" content="UTF-8" />
 <meta name="Language" content="en" />
 <link rel="stylesheet" href="/skins/css/domcore.css" type="text/css" />
 
 </head>
 <body>
 
 <div class="container">
 
 <a href="../index.html" class="back">« Back to the index</a><br />
 <br />
 
 <h1>\core\WASHM example</h1>
 
 <?php
 
 // We assure any DomCore library we call will be automatically loaded
 include_once '../include/__autoload.lib';
 
 define('WADEBUG', false);
 setlocale(LC_ALL, 'es_MX.UTF8', 'es_MX', '');
 date_default_timezone_set('America/Mexico_City');
 
 echo "We are testing this on:<br />";
 echo "DomCore version ".\core\WADebug::VERSION."<br />";
 echo "HTML API ? ".(\core\WADebug::getHTMLAPI()?'Yes':'No')."<br />";
 echo "OS Type ? ".(\core\WADebug::getOSType()==\core\WADebug::WINDOWS?'Windows':(\core\WADebug::getOSType()==\core\WADebug::UNIX?'Unix':'Mac'))."<br />";
 echo "<br />";
 
 // Start the SHM with 20Mb default size and default ID
 $SHM = new \core\WASHM();
 
 echo <<<EOF
 Menu: <br />
 <a href="shm.php?option=1">Add or modify a shared memory variable</a><br />
 <a href="shm.php?option=4">Empty the shared memory</a><br />
 <br />
 <hr />
 <br />
 EOF;
 
 $option = isset($_GET['option'])?$_GET['option']:null;
 
 switch($option)
 {
 case 1:
 $name = isset($_GET['name'])?$_GET['name']:null;
 $value = null;
 if ($name)
 $value = htmlentities($SHM->read(rawurldecode($name)), ENT_COMPAT, 'UTF-8');
 $vname = htmlentities($name, ENT_COMPAT, 'UTF-8');
 echo <<<EOF
 <form method="GET" action="shm.php">
 Name: <input type="text" name="name" value="$vname"/><br />
 Value: <input type="text" name="value" value="$value" /><br />
 <input type="hidden" name="option" value="2" /><br />
 <input type="submit" value="Add or modify the variable" /><br />
 </form>
 <br /><hr /><br />
 EOF;
 break;
 case 2:
 $name = isset($_GET['name'])?$_GET['name']:null;
 $value = isset($_GET['value'])?$_GET['value']:null;
 if ($name)
 {
 $SHM->write($name, $value);
 }
 break;
 case 3:
 $name = isset($_GET['name'])?$_GET['name']:null;
 $SHM->delete($name);
 break;
 case 4:
 $SHM->flush();
 break;
 }
 
 $m = $SHM->size();
 echo "Used: {$m['used']}, free: {$m['free']}<br />";
 $c = $SHM->content();
 foreach($c as $name => $link)
 {
 echo 'Variable: <b>' . htmlentities($name, ENT_COMPAT, 'UTF-8') . "</b>: pointer: {$link['p']}, last read: ". date('Y/m/d H:i:s', $link['r']) . ", last write: " . date('Y/m/d H:i:s', $link['w']) . ' [<a href="?option=1&name='.rawurlencode($name).'">Modify</a>] [<a href="?option=3&name='.rawurlencode($name).'">Delete</a>]<br />' .
 'Value: ' . htmlentities(print_r($SHM->read($name), true), ENT_COMPAT, 'UTF-8') . '<br /><hr />';
 
 }
 
 ?>
 
 <br />
 <br />
 <br />
 <br />
 
 <a href="../index.html" class="back">« Back to the index</a><br />
 
 </div>
 
 </body>
 </html>
 
 |