%PDF- %PDF-
| Direktori : /www/varak.net/wiki.varak.net/vendor/nmred/kafka-php/src/Kafka/Protocol/Fetch/Helper/ |
| Current File : /www/varak.net/wiki.varak.net/vendor/nmred/kafka-php/src/Kafka/Protocol/Fetch/Helper/Helper.php |
<?php
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4 foldmethod=marker: */
// +---------------------------------------------------------------------------
// | SWAN [ $_SWANBR_SLOGAN_$ ]
// +---------------------------------------------------------------------------
// | Copyright $_SWANBR_COPYRIGHT_$
// +---------------------------------------------------------------------------
// | Version $_SWANBR_VERSION_$
// +---------------------------------------------------------------------------
// | Licensed ( $_SWANBR_LICENSED_URL_$ )
// +---------------------------------------------------------------------------
// | $_SWANBR_WEB_DOMAIN_$
// +---------------------------------------------------------------------------
namespace Kafka\Protocol\Fetch\Helper;
/**
+------------------------------------------------------------------------------
* Kafka protocol since Kafka v0.8
+------------------------------------------------------------------------------
*
* @package
* @version $_SWANBR_VERSION_$
* @copyright Copyleft
* @author $_SWANBR_AUTHOR_$
+------------------------------------------------------------------------------
*/
class Helper
{
// {{{ members
/**
* helper object
*/
private static $helpers = array();
// }}}
// {{{ functions
// {{{ public staitc function registerHelper()
/**
* register helper
*
* @param string $key
* @param \Kafka\Protocol\Fetch\Helper\HelperAbstract $helper
* @static
* @access public
* @return void
*/
public static function registerHelper($key, $helper = null)
{
if (is_null($helper)) {
$className = '\\Kafka\\Protocol\\Fetch\\Helper\\' . $key;
if (!class_exists($className)) {
throw new \Kafka\Exception('helper is not exists.');
}
$helper = new $className();
}
if ($helper instanceof \Kafka\Protocol\Fetch\Helper\HelperAbstract) {
self::$helpers[$key] = $helper;
} else {
throw new \Kafka\Exception('this helper not instance of `\Kafka\Protocol\Fetch\Helper\HelperAbstract`');
}
}
// }}}
// {{{ public staitc function unRegisterHelper()
/**
* unregister helper
*
* @param string $key
* @static
* @access public
* @return void
*/
public static function unRegisterHelper($key)
{
if (isset(self::$helpers[$key])) {
unset(self::$helpers[$key]);
}
}
// }}}
// {{{ public static function onStreamEof()
/**
* on stream eof call
*
* @param string $streamKey
* @static
* @access public
* @return void
*/
public static function onStreamEof($streamKey)
{
if (empty(self::$helpers)) {
return;
}
foreach (self::$helpers as $key => $helper) {
if (method_exists($helper, 'onStreamEof')) {
$helper->onStreamEof($streamKey);
}
}
}
// }}}
// {{{ public static function onTopicEof()
/**
* on topic eof call
*
* @param string $topicName
* @static
* @access public
* @return void
*/
public static function onTopicEof($topicName)
{
if (empty(self::$helpers)) {
return;
}
foreach (self::$helpers as $key => $helper) {
if (method_exists($helper, 'onTopicEof')) {
$helper->onStreamEof($topicName);
}
}
}
// }}}
// {{{ public static function onPartitionEof()
/**
* on partition eof call
*
* @param \Kafka\Protocol\Fetch\Partition $partition
* @static
* @access public
* @return void
*/
public static function onPartitionEof($partition)
{
if (empty(self::$helpers)) {
return;
}
foreach (self::$helpers as $key => $helper) {
if (method_exists($helper, 'onPartitionEof')) {
$helper->onPartitionEof($partition);
}
}
}
// }}}
// }}}
}