You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
wkcrm/extend/alimsg/msg_sdk/lib/MNS/Model/TopicAttributes.php

180 lines
5.1 KiB

4 years ago
<?php
namespace AliyunMNS\Model;
use AliyunMNS\Constants;
/**
* Please refer to
* https://docs.aliyun.com/?spm=#/pub/mns/api_reference/intro&intro
* for more details
*/
class TopicAttributes
{
private $maximumMessageSize;
private $messageRetentionPeriod;
private $LoggingEnabled;
# the following attributes cannot be changed
private $topicName;
private $createTime;
private $lastModifyTime;
public function __construct(
$maximumMessageSize = NULL,
$messageRetentionPeriod = NULL,
$topicName = NULL,
$createTime = NULL,
$lastModifyTime = NULL,
$LoggingEnabled = NULL)
{
$this->maximumMessageSize = $maximumMessageSize;
$this->messageRetentionPeriod = $messageRetentionPeriod;
$this->loggingEnabled = $LoggingEnabled;
$this->topicName = $topicName;
$this->createTime = $createTime;
$this->lastModifyTime = $lastModifyTime;
}
public function setMaximumMessageSize($maximumMessageSize)
{
$this->maximumMessageSize = $maximumMessageSize;
}
public function getMaximumMessageSize()
{
return $this->maximumMessageSize;
}
public function setLoggingEnabled($loggingEnabled)
{
$this->loggingEnabled = $loggingEnabled;
}
public function getLoggingEnabled()
{
return $this->loggingEnabled;
}
public function setMessageRetentionPeriod($messageRetentionPeriod)
{
$this->messageRetentionPeriod = $messageRetentionPeriod;
}
public function getMessageRetentionPeriod()
{
return $this->messageRetentionPeriod;
}
public function getTopicName()
{
return $this->topicName;
}
public function getCreateTime()
{
return $this->createTime;
}
public function getLastModifyTime()
{
return $this->lastModifyTime;
}
public function writeXML(\XMLWriter $xmlWriter)
{
if ($this->maximumMessageSize != NULL)
{
$xmlWriter->writeElement(Constants::MAXIMUM_MESSAGE_SIZE, $this->maximumMessageSize);
}
if ($this->messageRetentionPeriod != NULL)
{
$xmlWriter->writeElement(Constants::MESSAGE_RETENTION_PERIOD, $this->messageRetentionPeriod);
}
if ($this->loggingEnabled !== NULL)
{
$xmlWriter->writeElement(Constants::LOGGING_ENABLED, $this->loggingEnabled ? "True" : "False");
}
}
static public function fromXML(\XMLReader $xmlReader)
{
$maximumMessageSize = NULL;
$messageRetentionPeriod = NULL;
$topicName = NULL;
$createTime = NULL;
$lastModifyTime = NULL;
$loggingEnabled = NULL;
while ($xmlReader->read())
{
if ($xmlReader->nodeType == \XMLReader::ELEMENT)
{
switch ($xmlReader->name) {
case 'MaximumMessageSize':
$xmlReader->read();
if ($xmlReader->nodeType == \XMLReader::TEXT)
{
$maximumMessageSize = $xmlReader->value;
}
break;
case 'MessageRetentionPeriod':
$xmlReader->read();
if ($xmlReader->nodeType == \XMLReader::TEXT)
{
$messageRetentionPeriod = $xmlReader->value;
}
break;
case 'TopicName':
$xmlReader->read();
if ($xmlReader->nodeType == \XMLReader::TEXT)
{
$topicName = $xmlReader->value;
}
break;
case 'CreateTime':
$xmlReader->read();
if ($xmlReader->nodeType == \XMLReader::TEXT)
{
$createTime = $xmlReader->value;
}
break;
case 'LastModifyTime':
$xmlReader->read();
if ($xmlReader->nodeType == \XMLReader::TEXT)
{
$lastModifyTime = $xmlReader->value;
}
break;
case 'LoggingEnabled':
$xmlReader->read();
if ($xmlReader->nodeType == \XMLReader::TEXT)
{
$loggingEnabled = $xmlReader->value;
if ($loggingEnabled == "True")
{
$loggingEnabled = True;
}
else
{
$loggingEnabled = False;
}
}
break;
}
}
}
$attributes = new TopicAttributes(
$maximumMessageSize,
$messageRetentionPeriod,
$topicName,
$createTime,
$lastModifyTime,
$loggingEnabled);
return $attributes;
}
}
?>