Mirocow/yii2-queue

View on GitHub
interfaces/ChannelInterface.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

namespace mirocow\queue\interfaces;
use mirocow\queue\models\MessageModel;

/**
 * Channel inteface
 *
 * @author Anton Ermolovich <anton.ermolovich@gmail.com>
 */
interface ChannelInterface
{

    /**
     * Create channel
     *
     * @param array $options
     */
    public function create(array $options);

    /**
     * Open channel connection
     */
    public function open();

    /**
     * Close channel connection
     */
    public function close();

    /**
     * Send data to channel connection
     *
     * @param string $name
     * @param mixed $data
     */
    public function send($name, $data);

    /**
     * Push message to the queue.
     *
     * @param mixed $message
     * @param integer $delay
     * @return string
     */
    public function push(MessageModel $message, $delay = 0);

    /**
     * Pops message from the queue.
     *
     * @return array|false
     */
    public function pop();

    /**
     * Purge the queue.
     *
     */
    public function purge();

    /**
     * Release the message.
     *
     * @param array $message
     * @param integer $delay
     */
    public function release(array $message, $delay = 0);

    /**
     * Delete the message.
     *
     * @param integer $id
     */
    public function delete(int $id = null);

    /**
     * @return mixed
     */
    public function status();
}