Location: PHPKode > scripts > Fantastic ElasticSearch > wordpress-fantastic-elasticsearch-1.1.2/lib/Elastica/Node.php
<?php
/**
 * Elastica cluster node object
 *
 * @category Xodoa
 * @package Elastica
 * @author Nicolas Ruflin <hide@address.com>
 * @link http://www.elasticsearch.org/guide/reference/api/admin-indices-status.html
 */
class Elastica_Node
{
    /**
     * Node name
     *
     * @var string Node name
     */
    protected $_name = '';

    /**
     * Node stats
     *
     * @var Elastica_Node_Stats Node Stats
     */
    protected $_stats = null;

    /**
     * Node info
     *
     * @var Elastica_Node_Info Node info
     */
    protected $_info = null;

    /**
     * Create a new node object
     *
     * @param string          $name   Node name
     * @param Elastica_Client $client Node object
     */
    public function __construct($name, Elastica_Client $client)
    {
        $this->_name = $name;
        $this->_client = $client;
        $this->refresh();
    }

    /**
     * Get the name of the node
     *
     * @return string Node name
     */
    public function getName()
    {
        return $this->_name;
    }

    /**
     * Returns the current client object
     *
     * @return Elastica_Client Client
     */
    public function getClient()
    {
        return $this->_client;
    }

    /**
     * Return stats object of the current node
     *
     * @return Elastica_Node_Stats Node stats
     */
    public function getStats()
    {
        if (!$this->_stats) {
            $this->_stats = new Elastica_Node_Stats($this);
        }

        return $this->_stats;
    }

    /**
     * Return info object of the current node
     *
     * @return Elastica_Node_Info Node info object
     */
    public function getInfo()
    {
        if (!$this->_info) {
            $this->_info = new Elastica_Node_Info($this);
        }

        return $this->_info;
    }

    /**
     * Refreshs all node information
     *
     * This should be called after upating a node to refresh all information
     */
    public function refresh()
    {
        $this->_stats = null;
        $this->_info = null;
    }

    /**
     * Shuts this node down
     *
     * @param  string            $delay OPTIONAL Delay after which node is shut down (defualt = 1s)
     * @return Elastica_Response
     * @link http://www.elasticsearch.org/guide/reference/api/admin-cluster-nodes-shutdown.html
     */
    public function shutdown($delay = '1s')
    {
        $path = '_cluster/nodes/' . $this->getName() . '/_shutdown?delay=' . $delay;

        return $this->_client->request($path, Elastica_Request::POST);
    }
}
Return current item: Fantastic ElasticSearch