diff options
| author | Pavel Moravec <pmoravec@apache.org> | 2014-07-29 10:22:17 +0000 |
|---|---|---|
| committer | Pavel Moravec <pmoravec@apache.org> | 2014-07-29 10:22:17 +0000 |
| commit | a4bb50062ae675bd03fa99c1ccb3b20c481e837d (patch) | |
| tree | c6ebe8b14f706f907dcbc3b64ef0bc9fe410f7ca /qpid/cpp/src | |
| parent | 135ca4526244a4d5b1a960122f3d00f2c07c5344 (diff) | |
| download | qpid-python-a4bb50062ae675bd03fa99c1ccb3b20c481e837d.tar.gz | |
[QPID-5929]: Mark deprecated QMF fields as Deprecated and do some relevant code cleanup
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1614301 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/src')
| -rw-r--r-- | qpid/cpp/src/qpid/broker/Queue.cpp | 33 | ||||
| -rw-r--r-- | qpid/cpp/src/qpid/broker/Queue.h | 2 | ||||
| -rw-r--r-- | qpid/cpp/src/qpid/broker/SemanticState.cpp | 2 | ||||
| -rw-r--r-- | qpid/cpp/src/qpid/broker/SessionState.cpp | 1 | ||||
| -rw-r--r-- | qpid/cpp/src/qpid/broker/amqp/ManagedConnection.cpp | 4 | ||||
| -rw-r--r-- | qpid/cpp/src/qpid/broker/amqp/ManagedSession.cpp | 1 | ||||
| -rw-r--r-- | qpid/cpp/src/qpid/broker/amqp_0_10/Connection.cpp | 8 | ||||
| -rw-r--r-- | qpid/cpp/src/qpid/broker/amqp_0_10/Connection.h | 3 | ||||
| -rw-r--r-- | qpid/cpp/src/qpid/broker/management-schema.xml | 26 | ||||
| -rw-r--r-- | qpid/cpp/src/qpid/legacystore/management-schema.xml | 22 | ||||
| -rw-r--r-- | qpid/cpp/src/qpid/linearstore/management-schema.xml | 28 |
11 files changed, 40 insertions, 90 deletions
diff --git a/qpid/cpp/src/qpid/broker/Queue.cpp b/qpid/cpp/src/qpid/broker/Queue.cpp index bfc9059ad2..2f189da012 100644 --- a/qpid/cpp/src/qpid/broker/Queue.cpp +++ b/qpid/cpp/src/qpid/broker/Queue.cpp @@ -1387,39 +1387,6 @@ void Queue::countRejected() const } } -void Queue::countFlowedToDisk(uint64_t size) const -{ - if (mgmtObject) { - _qmf::Queue::PerThreadStats *qStats = mgmtObject->getStatistics(); - qStats->msgFtdEnqueues += 1; - qStats->byteFtdEnqueues += size; - mgmtObject->statisticsUpdated(); - if (brokerMgmtObject) { - _qmf::Broker::PerThreadStats *bStats = brokerMgmtObject->getStatistics(); - bStats->msgFtdEnqueues += 1; - bStats->byteFtdEnqueues += size; - brokerMgmtObject->statisticsUpdated(); - } - } -} - -void Queue::countLoadedFromDisk(uint64_t size) const -{ - if (mgmtObject) { - _qmf::Queue::PerThreadStats *qStats = mgmtObject->getStatistics(); - qStats->msgFtdDequeues += 1; - qStats->byteFtdDequeues += size; - mgmtObject->statisticsUpdated(); - if (brokerMgmtObject) { - _qmf::Broker::PerThreadStats *bStats = brokerMgmtObject->getStatistics(); - bStats->msgFtdDequeues += 1; - bStats->byteFtdDequeues += size; - brokerMgmtObject->statisticsUpdated(); - } - } -} - - ManagementObject::shared_ptr Queue::GetManagementObject(void) const { return mgmtObject; diff --git a/qpid/cpp/src/qpid/broker/Queue.h b/qpid/cpp/src/qpid/broker/Queue.h index c5996dd8be..255d32e0fb 100644 --- a/qpid/cpp/src/qpid/broker/Queue.h +++ b/qpid/cpp/src/qpid/broker/Queue.h @@ -431,8 +431,6 @@ class Queue : public boost::enable_shared_from_this<Queue>, // Increment the rejected-by-consumer counter. QPID_BROKER_EXTERN void countRejected() const; - QPID_BROKER_EXTERN void countFlowedToDisk(uint64_t size) const; - QPID_BROKER_EXTERN void countLoadedFromDisk(uint64_t size) const; // Manageable entry points QPID_BROKER_EXTERN management::ManagementObject::shared_ptr GetManagementObject(void) const; diff --git a/qpid/cpp/src/qpid/broker/SemanticState.cpp b/qpid/cpp/src/qpid/broker/SemanticState.cpp index 211dc2aeed..bd226ccca4 100644 --- a/qpid/cpp/src/qpid/broker/SemanticState.cpp +++ b/qpid/cpp/src/qpid/broker/SemanticState.cpp @@ -83,7 +83,7 @@ SemanticState::SemanticState(SessionState& ss) : session(ss), tagGenerator("sgen"), dtxSelected(false), - authMsg(getSession().getBroker().isAuthenticating() && !getSession().getConnection().isUserProxyAuth()), + authMsg(getSession().getBroker().isAuthenticating() && !getSession().getConnection().isFederationLink()), userID(getSession().getConnection().getUserId()), closeComplete(false), connectionId(getSession().getConnection().getMgmtId()) diff --git a/qpid/cpp/src/qpid/broker/SessionState.cpp b/qpid/cpp/src/qpid/broker/SessionState.cpp index c4f2d3f3d3..186bf77c64 100644 --- a/qpid/cpp/src/qpid/broker/SessionState.cpp +++ b/qpid/cpp/src/qpid/broker/SessionState.cpp @@ -76,7 +76,6 @@ void SessionState::addManagementObject() { mgmtObject = _qmf::Session::shared_ptr(new _qmf::Session (agent, this, parent, name)); mgmtObject->set_fullName (fullName); mgmtObject->set_attached (0); - mgmtObject->set_detachedLifespan (0); mgmtObject->clr_expireTime(); agent->addObject(mgmtObject); } diff --git a/qpid/cpp/src/qpid/broker/amqp/ManagedConnection.cpp b/qpid/cpp/src/qpid/broker/amqp/ManagedConnection.cpp index 1ce0ed23c2..2c4824bc51 100644 --- a/qpid/cpp/src/qpid/broker/amqp/ManagedConnection.cpp +++ b/qpid/cpp/src/qpid/broker/amqp/ManagedConnection.cpp @@ -53,9 +53,7 @@ ManagedConnection::ManagedConnection(Broker& broker, const std::string i, bool b agent = broker.getManagementAgent(); if (agent != 0) { qpid::management::Manageable* parent = broker.GetVhostObject(); - // TODO set last bool true if system connection - connection = _qmf::Connection::shared_ptr(new _qmf::Connection(agent, this, parent, id, !brokerInitiated, brokerInitiated, "AMQP 1.0")); - connection->set_shadow(false); + connection = _qmf::Connection::shared_ptr(new _qmf::Connection(agent, this, parent, id, !brokerInitiated, false, "AMQP 1.0")); agent->addObject(connection); } } diff --git a/qpid/cpp/src/qpid/broker/amqp/ManagedSession.cpp b/qpid/cpp/src/qpid/broker/amqp/ManagedSession.cpp index fcccfaea8f..19fa5a6a4d 100644 --- a/qpid/cpp/src/qpid/broker/amqp/ManagedSession.cpp +++ b/qpid/cpp/src/qpid/broker/amqp/ManagedSession.cpp @@ -43,7 +43,6 @@ ManagedSession::ManagedSession(Broker& broker, ManagedConnection& p, const std:: session = _qmf::Session::shared_ptr(new _qmf::Session(agent, this, broker.GetVhostObject(), name)); session->set_fullName(fullName); session->set_attached(true); - session->set_detachedLifespan(0); session->clr_expireTime(); session->set_connectionRef(parent.GetManagementObject()->getObjectId()); agent->addObject(session); diff --git a/qpid/cpp/src/qpid/broker/amqp_0_10/Connection.cpp b/qpid/cpp/src/qpid/broker/amqp_0_10/Connection.cpp index 56321e690e..518c2fa9d0 100644 --- a/qpid/cpp/src/qpid/broker/amqp_0_10/Connection.cpp +++ b/qpid/cpp/src/qpid/broker/amqp_0_10/Connection.cpp @@ -138,7 +138,6 @@ Connection::Connection(ConnectionOutputHandler* out_, framemax(65535), heartbeat(0), heartbeatmax(120), - userProxyAuth(false), // Can proxy msgs with non-matching auth ids when true (used by federation links) isDefaultRealm(false), securitySettings(external), link(link_), @@ -330,13 +329,6 @@ void Connection::raiseConnectEvent() { << " rhost:" << mgmtId ); } -void Connection::setUserProxyAuth(bool b) -{ - userProxyAuth = b; - if (mgmtObject != 0) - mgmtObject->set_userProxyAuth(b); -} - void Connection::close(connection::CloseCode code, const string& text) { QPID_LOG_IF(error, code != connection::CLOSE_CODE_NORMAL, "Connection " << mgmtId << " closed by error: " << text << "(" << code << ")"); diff --git a/qpid/cpp/src/qpid/broker/amqp_0_10/Connection.h b/qpid/cpp/src/qpid/broker/amqp_0_10/Connection.h index 0b572449a4..1bf6b2cee3 100644 --- a/qpid/cpp/src/qpid/broker/amqp_0_10/Connection.h +++ b/qpid/cpp/src/qpid/broker/amqp_0_10/Connection.h @@ -83,8 +83,6 @@ class Connection : public sys::ConnectionInputHandler, public qpid::broker::Conn const management::ObjectId getObjectId() const { return GetManagementObject()->getObjectId(); }; const std::string& getUserId() const { return userId; } - void setUserProxyAuth(const bool b); - bool isUserProxyAuth() const { return userProxyAuth || federationPeerTag.size() > 0; } // links can proxy msgs with non-matching auth ids bool isFederationLink() const { return federationPeerTag.size() > 0; } void setFederationPeerTag(const std::string& tag) { federationPeerTag = std::string(tag); } const std::string& getFederationPeerTag() const { return federationPeerTag; } @@ -194,7 +192,6 @@ class Connection : public sys::ConnectionInputHandler, public qpid::broker::Conn uint16_t heartbeat; uint16_t heartbeatmax; std::string userId; - bool userProxyAuth; std::string federationPeerTag; std::vector<Url> knownHosts; std::string userName; diff --git a/qpid/cpp/src/qpid/broker/management-schema.xml b/qpid/cpp/src/qpid/broker/management-schema.xml index e2690c8f30..d6bbd01a09 100644 --- a/qpid/cpp/src/qpid/broker/management-schema.xml +++ b/qpid/cpp/src/qpid/broker/management-schema.xml @@ -83,7 +83,7 @@ <property name="workerThreads" type="uint16" access="RO" desc="Thread pool size"/> <property name="maxConns" type="uint16" access="RO" desc="Maximum allowed connections"/> <property name="connBacklog" type="uint16" access="RO" desc="Connection backlog limit for listening socket"/> - <property name="stagingThreshold" type="uint32" access="RO" desc="Broker stages messages over this size to disk"/> + <property name="stagingThreshold" type="uint32" access="RO" desc="Deprecated"/> <property name="mgmtPublish" type="bool" access="RO" desc="Broker's management agent sends unsolicited data on the publish interval"/> <property name="mgmtPubInterval" type="uint16" access="RW" unit="second" min="1" desc="Interval for management broadcasts"/> <property name="version" type="sstr" access="RO" desc="Running software version"/> @@ -277,8 +277,8 @@ <statistic name="consumerCount" type="hilo32" unit="consumer" desc="Current consumers on queue"/> <statistic name="bindingCount" type="hilo32" unit="binding" desc="Current bindings"/> - <statistic name="unackedMessages" type="hilo32" unit="message" desc="Messages consumed but not yet acked"/> - <statistic name="messageLatency" type="mmaTime" unit="nanosecond" desc="Broker latency through this queue"/> + <statistic name="unackedMessages" type="hilo32" unit="message" desc="Deprecated"/> + <statistic name="messageLatency" type="mmaTime" unit="nanosecond" desc="Deprecated"/> <statistic name="flowStopped" type="bool" desc="Flow control active."/> <statistic name="flowStoppedCount" type="count32" desc="Number of times flow control was activated for this queue"/> @@ -313,7 +313,7 @@ <property name="altExchange" type="objId" references="Exchange" access="RO" optional="y"/> <property name="arguments" type="map" access="RO" desc="Arguments supplied in exchange.declare"/> - <statistic name="producerCount" type="hilo32" desc="Current producers on exchange"/> + <statistic name="producerCount" type="hilo32" desc="Unused"/> <statistic name="bindingCount" type="hilo32" desc="Current bindings"/> <statistic name="msgReceives" type="count64" desc="Total messages received"/> <statistic name="msgDrops" type="count64" desc="Total messages dropped (no matching key)"/> @@ -364,14 +364,14 @@ <property name="vhostRef" type="objId" references="Vhost" access="RC" index="y" parentRef="y"/> <property name="address" type="sstr" access="RC" index="y"/> <property name="incoming" type="bool" access="RC"/> - <property name="SystemConnection" type="bool" access="RC" desc="Infrastructure/ Inter-system connection (Cluster, Federation, ...)"/> - <property name="userProxyAuth" type="bool" access="RO" desc="Authorization to proxy for users not on broker"/> - <property name="federationLink" type="bool" access="RO" desc="Is this a federation link"/> + <property name="SystemConnection" type="bool" access="RC" desc="Deprecated"/> + <property name="userProxyAuth" type="bool" access="RO" desc="Deprecated"/> + <property name="federationLink" type="bool" access="RO" desc="Deprecated"/> <property name="authIdentity" type="sstr" access="RO" desc="authId of connection if authentication enabled"/> <property name="remoteProcessName" type="lstr" access="RO" optional="y" desc="Name of executable running as remote client"/> <property name="remotePid" type="uint32" access="RO" optional="y" desc="Process ID of remote client"/> <property name="remoteParentPid" type="uint32" access="RO" optional="y" desc="Parent Process ID of remote client"/> - <property name="shadow" type="bool" access="RO" desc="True for shadow connections"/> + <property name="shadow" type="bool" access="RO" desc="Deprecated"/> <property name="saslMechanism" type="sstr" access="RO" desc="SASL mechanism"/> <property name="saslSsf" type="uint16" access="RO" desc="SASL security strength factor"/> <property name="remoteProperties" type="map" access="RO" desc="optional map of identifying information sent by the remote"/> @@ -533,10 +533,10 @@ <property name="fullName" type="lstr" access="RO" optional="y"/> <property name="channelId" type="uint16" access="RO"/> <property name="connectionRef" type="objId" references="Connection" access="RO"/> - <property name="detachedLifespan" type="uint32" access="RO" unit="second"/> + <property name="detachedLifespan" type="uint32" access="RO" unit="second" desc="Deprecated"/> <property name="attached" type="bool" access="RO"/> <property name="expireTime" type="absTime" access="RO" optional="y"/> - <property name="maxClientRate" type="uint32" access="RO" unit="msgs/sec" optional="y"/> + <property name="maxClientRate" type="uint32" access="RO" unit="msgs/sec" optional="y" desc="Deprecated"/> <statistic name="unackedMessages" type="uint64" unit="message" desc="Unacknowledged messages in the session"/> @@ -545,7 +545,7 @@ <statistic name="TxnRejects" type="count64" unit="transaction" desc="Total transactions rejected"/> <statistic name="TxnCount" type="count32" unit="transaction" desc="Current pending transactions"/> - <statistic name="clientCredit" type="count32" unit="message" desc="Client message credit"/> + <statistic name="clientCredit" type="count32" unit="message" desc="Deprecated"/> <statistic name="framesOutstanding" type="count32" desc="Deprecated"/> @@ -572,8 +572,8 @@ access="RO" to get accessor methods defined. RC or RW don't do it. Probably this is documented someplace, but I couldn't find it. -jrd --> - <property name="objectNum" type="uint64" access="RO"/> - <property name="bootSequence" type="uint16" access="RO"/> + <property name="objectNum" type="uint64" access="RO" desc="Deprecated"/> + <property name="bootSequence" type="uint16" access="RO" desc="Deprecated"/> </class> <eventArguments> diff --git a/qpid/cpp/src/qpid/legacystore/management-schema.xml b/qpid/cpp/src/qpid/legacystore/management-schema.xml index 65969f0fb2..71497cc0f9 100644 --- a/qpid/cpp/src/qpid/legacystore/management-schema.xml +++ b/qpid/cpp/src/qpid/legacystore/management-schema.xml @@ -36,7 +36,7 @@ <statistic name="tplTxnPrepares" type="count64" unit="record" desc="Total transaction prepares on transaction prepared list"/> <statistic name="tplTxnCommits" type="count64" unit="record" desc="Total transaction commits on transaction prepared list"/> <statistic name="tplTxnAborts" type="count64" unit="record" desc="Total transaction aborts on transaction prepared list"/> - <statistic name="tplOutstandingAIOs" type="hilo32" unit="aio_op" desc="Number of currently outstanding AIO requests in Async IO system"/> + <statistic name="tplOutstandingAIOs" type="hilo32" unit="aio_op" desc="Deprecated"/> </class> <class name="Journal"> @@ -49,9 +49,9 @@ <property name="readPageSize" type="uint32" access="RO" unit="byte" desc="Page size in read-page-cache"/> <property name="readPages" type="uint32" access="RO" unit="rpage" desc="Number of pages in read-page-cache"/> <property name="initialFileCount" type="uint16" access="RO" unit="file" desc="Number of files initially allocated to this journal"/> - <property name="autoExpand" type="bool" access="RO" desc="Auto-expand enabled"/> + <property name="autoExpand" type="bool" access="RO" desc="Deprecated"/> <property name="currentFileCount" type="uint16" access="RO" unit="file" desc="Number of files currently allocated to this journal"/> - <property name="maxFileCount" type="uint16" access="RO" unit="file" desc="Max number of files allowed for this journal"/> + <property name="maxFileCount" type="uint16" access="RO" unit="file" desc="Deprecated"/> <property name="dataFileSize" type="uint32" access="RO" unit="byte" desc="Size of each journal data file"/> <statistic name="recordDepth" type="hilo32" unit="record" desc="Number of currently enqueued records (durable messages)"/> @@ -67,14 +67,14 @@ <!-- The following are not yet "wired up" in JournalImpl.cpp --> - <statistic name="freeFileCount" type="hilo32" unit="file" desc="Number of files free on this journal. Includes free files trapped in holes."/> - <statistic name="availableFileCount" type="hilo32" unit="file" desc="Number of files available to be written. Excluding holes"/> - <statistic name="writeWaitFailures" type="count64" unit="record" desc="AIO Wait failures on write"/> - <statistic name="writeBusyFailures" type="count64" unit="record" desc="AIO Busy failures on write"/> - <statistic name="readRecordCount" type="count64" unit="record" desc="Records read from the journal"/> - <statistic name="readBusyFailures" type="count64" unit="record" desc="AIO Busy failures on read"/> - <statistic name="writePageCacheDepth" type="hilo32" unit="wpage" desc="Current depth of write-page-cache"/> - <statistic name="readPageCacheDepth" type="hilo32" unit="rpage" desc="Current depth of read-page-cache"/> + <statistic name="freeFileCount" type="hilo32" unit="file" desc="Deprecated"/> + <statistic name="availableFileCount" type="hilo32" unit="file" desc="Deprecated"/> + <statistic name="writeWaitFailures" type="count64" unit="record" desc="Deprecated"/> + <statistic name="writeBusyFailures" type="count64" unit="record" desc="Deprecated"/> + <statistic name="readRecordCount" type="count64" unit="record" desc="Deprecated"/> + <statistic name="readBusyFailures" type="count64" unit="record" desc="Deprecated"/> + <statistic name="writePageCacheDepth" type="hilo32" unit="wpage" desc="Deprecated"/> + <statistic name="readPageCacheDepth" type="hilo32" unit="rpage" desc="Deprecated"/> <method name="expand" desc="Increase number of files allocated for this journal"> <arg name="by" type="uint32" dir="I" desc="Number of files to increase journal size by"/> diff --git a/qpid/cpp/src/qpid/linearstore/management-schema.xml b/qpid/cpp/src/qpid/linearstore/management-schema.xml index dce8f7988a..d1cccc2286 100644 --- a/qpid/cpp/src/qpid/linearstore/management-schema.xml +++ b/qpid/cpp/src/qpid/linearstore/management-schema.xml @@ -36,18 +36,18 @@ <statistic name="tplTxnPrepares" type="count64" unit="record" desc="Total transaction prepares on transaction prepared list"/> <statistic name="tplTxnCommits" type="count64" unit="record" desc="Total transaction commits on transaction prepared list"/> <statistic name="tplTxnAborts" type="count64" unit="record" desc="Total transaction aborts on transaction prepared list"/> - <statistic name="tplOutstandingAIOs" type="hilo32" unit="aio_op" desc="Number of currently outstanding AIO requests in Async IO system"/> + <statistic name="tplOutstandingAIOs" type="hilo32" unit="aio_op" desc="Deprecated"/> </class> <class name="Journal"> <property name="queueRef" type="objId" access="RO" references="qpid.Queue" isGeneralReference="y"/> <property name="name" type="sstr" access="RO" index="y"/> <property name="directory" type="sstr" access="RO" desc="Directory containing journal files"/> - <property name="baseFileName" type="sstr" access="RO" desc="Base filename prefix for journal"/> - <property name="writePageSize" type="uint32" access="RO" unit="byte" desc="Page size in write-page-cache"/> - <property name="writePages" type="uint32" access="RO" unit="wpage" desc="Number of pages in write-page-cache"/> - <property name="readPageSize" type="uint32" access="RO" unit="byte" desc="Page size in read-page-cache"/> - <property name="readPages" type="uint32" access="RO" unit="rpage" desc="Number of pages in read-page-cache"/> + <property name="baseFileName" type="sstr" access="RO" desc="Deprecated"/> + <property name="writePageSize" type="uint32" access="RO" unit="byte" desc="Deprecated"/> + <property name="writePages" type="uint32" access="RO" unit="wpage" desc="Deprecated"/> + <property name="readPageSize" type="uint32" access="RO" unit="byte" desc="Deprecated"/> + <property name="readPages" type="uint32" access="RO" unit="rpage" desc="Deprecated"/> <!--property name="initialFileCount" type="uint16" access="RO" unit="file" desc="Number of files initially allocated to this journal"/--> <!--property name="autoExpand" type="bool" access="RO" desc="Auto-expand enabled"/--> <!--property name="currentFileCount" type="uint16" access="RO" unit="file" desc="Number of files currently allocated to this journal"/--> @@ -67,14 +67,14 @@ <!-- The following are not yet "wired up" in JournalImpl.cpp --> - <statistic name="freeFileCount" type="hilo32" unit="file" desc="Number of files free on this journal. Includes free files trapped in holes."/> - <statistic name="availableFileCount" type="hilo32" unit="file" desc="Number of files available to be written. Excluding holes"/> - <statistic name="writeWaitFailures" type="count64" unit="record" desc="AIO Wait failures on write"/> - <statistic name="writeBusyFailures" type="count64" unit="record" desc="AIO Busy failures on write"/> - <statistic name="readRecordCount" type="count64" unit="record" desc="Records read from the journal"/> - <statistic name="readBusyFailures" type="count64" unit="record" desc="AIO Busy failures on read"/> - <statistic name="writePageCacheDepth" type="hilo32" unit="wpage" desc="Current depth of write-page-cache"/> - <statistic name="readPageCacheDepth" type="hilo32" unit="rpage" desc="Current depth of read-page-cache"/> + <statistic name="freeFileCount" type="hilo32" unit="file" desc="Deprecated"/> + <statistic name="availableFileCount" type="hilo32" unit="file" desc="Deprecated"/> + <statistic name="writeWaitFailures" type="count64" unit="record" desc="Deprecated"/> + <statistic name="writeBusyFailures" type="count64" unit="record" desc="Deprecated"/> + <statistic name="readRecordCount" type="count64" unit="record" desc="Deprecated"/> + <statistic name="readBusyFailures" type="count64" unit="record" desc="Deprecated"/> + <statistic name="writePageCacheDepth" type="hilo32" unit="wpage" desc="Deprecated"/> + <statistic name="readPageCacheDepth" type="hilo32" unit="rpage" desc="Deprecated"/> <!--method name="expand" desc="Increase number of files allocated for this journal"> <arg name="by" type="uint32" dir="I" desc="Number of files to increase journal size by"/> |
