Beispiel #1
0
 protected function assertHit($expected, Pool $pool, $key)
 {
     $this->assertEquals($expected, $pool->get($key));
     $this->assertEquals($expected, $pool->getItem($key)->get());
     $this->assertTrue($pool->getItem($key)->isHit());
     $this->assertTrue($pool->hasItem($key));
 }
Beispiel #2
0
 public static function wrap($coroutine)
 {
     if ($coroutine instanceof \Generator) {
         $coKey = $coroutine->key();
         $coValue = $coroutine->current();
         if ($coKey && in_array($coKey, self::$_ioQueue)) {
             try {
                 $client = \Pool::get($coKey, $coValue);
                 if ($client) {
                     $client->setCoroutine($coroutine);
                     $coroutine->send($client);
                 } else {
                     Queue::push($coKey, $coroutine);
                 }
             } catch (exception $e) {
                 $coroutine->throw($e);
             }
         } else {
             if ($coValue instanceof \Coroutine\Base) {
                 $coValue->setCoroutine($coroutine);
             }
         }
     }
     return $coroutine;
 }
Beispiel #3
0
 /**
  * Resolve a files extended attributes
  *
  * @access public
  *
  * @param $retval file extended attributes
  */
 public static function resolveAttributes(&$retval)
 {
     Log::in("query - resolveAtributes");
     /* For printing via modxfs-getfattr for instance we need to
      * resolve things like user number to a name, template id to
      * a name, dates into strings etc.
      * We are only using select statements here, if a query fails
      * just leave the attribute alone and move on.
      */
     $dbConn = Pool::get();
     $prefix = Pool::getTableprefix();
     foreach ($retval as $key => &$value) {
         switch ($key) {
             case 'editedon':
             case 'createdon':
             case 'pub_date':
             case 'unpub_date':
             case 'deletedon':
             case 'publishedon':
                 $value = strftime("%G-%m-%j %H:%M:%S", $value);
                 break;
             case 'parent':
                 $sql = "SELECT pagetitle";
                 $sql .= " FROM `{$prefix}" . "site_content`";
                 $sql .= " WHERE id = {$value}";
                 $result = mysql_query($sql, $dbConn);
                 if ($result !== false) {
                     $row = mysql_fetch_assoc($result);
                     if ($row['pagetitle'] != "") {
                         $value = $row['pagetitle'];
                     }
                 }
                 break;
             case 'template':
                 $sql = "SELECT templatename";
                 $sql .= " FROM `{$prefix}" . "site_templates`";
                 $sql .= " WHERE id = {$value}";
                 $result = mysql_query($sql, $dbConn);
                 if ($result !== false) {
                     $row = mysql_fetch_assoc($result);
                     if ($row['templatename'] != "") {
                         $value = $row['templatename'];
                     }
                 }
                 break;
             case 'editedby':
             case 'deletedby':
             case 'publishedby':
             case 'createdby':
                 /* Only manager users here */
                 $sql = "SELECT username";
                 $sql .= " FROM `{$prefix}" . "manager_users`";
                 $sql .= " WHERE id = {$value}";
                 $result = mysql_query($sql, $dbConn);
                 if ($result !== false) {
                     $row = mysql_fetch_assoc($result);
                     if ($row['username'] != "") {
                         $value = $row['username'];
                     }
                 }
                 break;
             default:
                 break;
         }
     }
     Pool::release($dbConn);
     Log::out("query - resolveAtributes");
 }