<?php

/**

 * Copyright (c) 2009 - 2010, RealDolmen

 * All rights reserved.

 *

 * Redistribution and use in source and binary forms, with or without

 * modification, are permitted provided that the following conditions are met:

 *     * Redistributions of source code must retain the above copyright

 *       notice, this list of conditions and the following disclaimer.

 *     * Redistributions in binary form must reproduce the above copyright

 *       notice, this list of conditions and the following disclaimer in the

 *       documentation and/or other materials provided with the distribution.

 *     * Neither the name of RealDolmen nor the

 *       names of its contributors may be used to endorse or promote products

 *       derived from this software without specific prior written permission.

 *

 * THIS SOFTWARE IS PROVIDED BY RealDolmen ''AS IS'' AND ANY

 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE

 * DISCLAIMED. IN NO EVENT SHALL RealDolmen BE LIABLE FOR ANY

 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES

 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;

 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND

 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT

 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

 *

 * @category   Microsoft

 * @package    Microsoft_WindowsAzure

 * @subpackage Storage

 * @copyright  Copyright (c) 2009 - 2010, RealDolmen (http://www.realdolmen.com)

 * @license    http://phpazure.codeplex.com/license

 * @version    $Id: BlobContainer.php 17553 2009-05-15 10:40:55Z unknown $

 */

if (!defined('W3TC')) {

    die();

}



/**

 * @see Microsoft_WindowsAzure_Exception

 */

require_once 'Microsoft/WindowsAzure/Exception.php';



/**

 * @see Microsoft_WindowsAzure_Storage_StorageEntityAbstract

 */

require_once 'Microsoft/WindowsAzure/Storage/StorageEntityAbstract.php';



/**

 * @category   Microsoft

 * @package    Microsoft_WindowsAzure

 * @subpackage Storage

 * @copyright  Copyright (c) 2009 - 2010, RealDolmen (http://www.realdolmen.com)

 * @license    http://phpazure.codeplex.com/license

 *

 * @property string $MessageId         Message ID

 * @property string $InsertionTime     Insertion time

 * @property string $ExpirationTime    Expiration time

 * @property string $PopReceipt  	   Receipt verification for deleting the message from queue.

 * @property string $TimeNextVisible   Next time the message is visible in the queue

 * @property int    $DequeueCount      Number of times the message has been dequeued. This value is incremented each time the message is subsequently dequeued.

 * @property string $MessageText       Message text

 */

class Microsoft_WindowsAzure_Storage_QueueMessage

	extends Microsoft_WindowsAzure_Storage_StorageEntityAbstract

{

    /**

     * Constructor

     *

     * @param string $messageId         Message ID

     * @param string $insertionTime     Insertion time

     * @param string $expirationTime    Expiration time

     * @param string $popReceipt  	    Receipt verification for deleting the message from queue.

     * @param string $timeNextVisible   Next time the message is visible in the queue

     * @param int    $dequeueCount      Number of times the message has been dequeued. This value is incremented each time the message is subsequently dequeued.

     * @param string $messageText       Message text

     */

    public function __construct($messageId, $insertionTime, $expirationTime, $popReceipt, $timeNextVisible, $dequeueCount, $messageText)

    {

        $this->_data = array(

            'messageid'       => $messageId,

            'insertiontime'   => $insertionTime,

            'expirationtime'  => $expirationTime,

            'popreceipt'      => $popReceipt,

            'timenextvisible' => $timeNextVisible,

        	'dequeuecount'    => $dequeueCount,

            'messagetext'     => $messageText

        );

    }

}

