You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by as...@apache.org on 2013/06/19 16:26:11 UTC

svn commit: r1494640 - in /qpid/trunk/qpid/cpp/src: ./ qpid/broker/ qpid/broker/amqp/ qpid/management/

Author: astitcher
Date: Wed Jun 19 14:26:11 2013
New Revision: 1494640

URL: http://svn.apache.org/r1494640
Log:
QPID-4905: Stopped broker::Broker needing to refer to broker::Connection
- Also removed ConnectionToken which didn't add anything over OwnershipToken

Added:
    qpid/trunk/qpid/cpp/src/qpid/broker/ConnectionIdentity.h
      - copied, changed from r1494639, qpid/trunk/qpid/cpp/src/qpid/broker/ConnectionToken.h
Removed:
    qpid/trunk/qpid/cpp/src/qpid/broker/ConnectionToken.h
Modified:
    qpid/trunk/qpid/cpp/src/Makefile.am
    qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp
    qpid/trunk/qpid/cpp/src/qpid/broker/Broker.h
    qpid/trunk/qpid/cpp/src/qpid/broker/Connection.h
    qpid/trunk/qpid/cpp/src/qpid/broker/Message.cpp
    qpid/trunk/qpid/cpp/src/qpid/broker/Message.h
    qpid/trunk/qpid/cpp/src/qpid/broker/OwnershipToken.h
    qpid/trunk/qpid/cpp/src/qpid/broker/Queue.cpp
    qpid/trunk/qpid/cpp/src/qpid/broker/SessionAdapter.cpp
    qpid/trunk/qpid/cpp/src/qpid/broker/SessionAdapter.h
    qpid/trunk/qpid/cpp/src/qpid/broker/SessionContext.h
    qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.cpp
    qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.h
    qpid/trunk/qpid/cpp/src/qpid/broker/amqp/ManagedConnection.cpp
    qpid/trunk/qpid/cpp/src/qpid/broker/amqp/ManagedConnection.h
    qpid/trunk/qpid/cpp/src/qpid/broker/amqp/ManagedSession.cpp
    qpid/trunk/qpid/cpp/src/qpid/broker/amqp/ManagedSession.h
    qpid/trunk/qpid/cpp/src/qpid/management/ManagementAgent.cpp
    qpid/trunk/qpid/cpp/src/qpid/management/ManagementAgent.h

Modified: qpid/trunk/qpid/cpp/src/Makefile.am
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/Makefile.am?rev=1494640&r1=1494639&r2=1494640&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/Makefile.am (original)
+++ qpid/trunk/qpid/cpp/src/Makefile.am Wed Jun 19 14:26:11 2013
@@ -591,11 +591,11 @@ libqpidbroker_la_SOURCES = \
   qpid/broker/Connection.h \
   qpid/broker/ConnectionHandler.cpp \
   qpid/broker/ConnectionHandler.h \
-  qpid/broker/ConnectionToken.h \
   qpid/broker/Consumer.h \
   qpid/broker/Credit.h \
   qpid/broker/Credit.cpp \
   qpid/broker/ConsumerFactory.h \
+  qpid/broker/ConnectionIdentity.h \
   qpid/broker/ConnectionObserver.h \
   qpid/broker/ConnectionObservers.h \
   qpid/broker/ConfigurationObserver.h \

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp?rev=1494640&r1=1494639&r2=1494640&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp Wed Jun 19 14:26:11 2013
@@ -22,7 +22,7 @@
 #include "qpid/broker/Broker.h"
 
 #include "qpid/broker/AclModule.h"
-#include "qpid/broker/Connection.h"
+#include "qpid/broker/ConnectionIdentity.h"
 #include "qpid/broker/DirectExchange.h"
 #include "qpid/broker/FanOutExchange.h"
 #include "qpid/broker/HeadersExchange.h"
@@ -101,7 +101,7 @@ using qpid::management::ManagementAgent;
 using qpid::management::ManagementObject;
 using qpid::management::Manageable;
 using qpid::management::Args;
-using qpid::management::getManagementExecutionContext;
+using qpid::management::getCurrentPublisher;
 using qpid::types::Variant;
 using std::string;
 using std::make_pair;
@@ -533,33 +533,33 @@ Manageable::status_t Broker::ManagementM
     case _qmf::Broker::METHOD_CREATE :
       {
           _qmf::ArgsBrokerCreate& a = dynamic_cast<_qmf::ArgsBrokerCreate&>(args);
-          createObject(a.i_type, a.i_name, a.i_properties, a.i_strict, getManagementExecutionContext());
+          createObject(a.i_type, a.i_name, a.i_properties, a.i_strict, getCurrentPublisher());
           status = Manageable::STATUS_OK;
           break;
       }
     case _qmf::Broker::METHOD_DELETE :
       {
           _qmf::ArgsBrokerDelete& a = dynamic_cast<_qmf::ArgsBrokerDelete&>(args);
-          deleteObject(a.i_type, a.i_name, a.i_options, getManagementExecutionContext());
+          deleteObject(a.i_type, a.i_name, a.i_options, getCurrentPublisher());
           status = Manageable::STATUS_OK;
           break;
       }
     case _qmf::Broker::METHOD_QUERY :
       {
           _qmf::ArgsBrokerQuery& a = dynamic_cast<_qmf::ArgsBrokerQuery&>(args);
-          status = queryObject(a.i_type, a.i_name, a.o_results, getManagementExecutionContext());
+          status = queryObject(a.i_type, a.i_name, a.o_results, getCurrentPublisher());
           break;
       }
     case _qmf::Broker::METHOD_GETTIMESTAMPCONFIG:
         {
           _qmf::ArgsBrokerGetTimestampConfig& a = dynamic_cast<_qmf::ArgsBrokerGetTimestampConfig&>(args);
-          status = getTimestampConfig(a.o_receive, getManagementExecutionContext());
+          status = getTimestampConfig(a.o_receive, getCurrentPublisher());
           break;
         }
     case _qmf::Broker::METHOD_SETTIMESTAMPCONFIG:
         {
           _qmf::ArgsBrokerSetTimestampConfig& a = dynamic_cast<_qmf::ArgsBrokerSetTimestampConfig&>(args);
-          status = setTimestampConfig(a.i_receive, getManagementExecutionContext());
+          status = setTimestampConfig(a.i_receive, getCurrentPublisher());
           break;
         }
 
@@ -707,7 +707,7 @@ struct InvalidParameter : public qpid::E
 };
 
 void Broker::createObject(const std::string& type, const std::string& name,
-                          const Variant::Map& properties, bool /*strict*/, const Connection* context)
+                          const Variant::Map& properties, bool /*strict*/, const ConnectionIdentity* context)
 {
     std::string userId;
     std::string connectionId;
@@ -898,7 +898,7 @@ void Broker::createObject(const std::str
 }
 
 void Broker::deleteObject(const std::string& type, const std::string& name,
-                          const Variant::Map& options, const Connection* context)
+                          const Variant::Map& options, const ConnectionIdentity* context)
 {
     std::string userId;
     std::string connectionId;
@@ -952,7 +952,7 @@ void Broker::checkDeleteQueue(Queue::sha
 Manageable::status_t Broker::queryObject(const std::string& type,
                                          const std::string& name,
                                          Variant::Map& results,
-                                         const Connection* context)
+                                         const ConnectionIdentity* context)
 {
     std::string userId;
     std::string connectionId;
@@ -994,7 +994,7 @@ Manageable::status_t Broker::queryQueue(
 }
 
 Manageable::status_t Broker::getTimestampConfig(bool& receive,
-                                                const Connection* context)
+                                                const ConnectionIdentity* context)
 {
     std::string name;   // none needed for broker
     std::string userId = context->getUserId();
@@ -1006,7 +1006,7 @@ Manageable::status_t Broker::getTimestam
 }
 
 Manageable::status_t Broker::setTimestampConfig(const bool receive,
-                                                const Connection* context)
+                                                const ConnectionIdentity* context)
 {
     std::string name;   // none needed for broker
     std::string userId = context->getUserId();

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/Broker.h
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/Broker.h?rev=1494640&r1=1494639&r2=1494640&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/Broker.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/Broker.h Wed Jun 19 14:26:11 2013
@@ -50,7 +50,6 @@
 #include <vector>
 
 namespace qpid {
-
 namespace sys {
 class TransportAcceptor;
 class TransportConnector;
@@ -63,7 +62,6 @@ struct Url;
 namespace broker {
 
 class AclModule;
-class Connection;
 class ExpiryPolicy;
 class Message;
 struct QueueSettings;
@@ -143,7 +141,7 @@ class Broker : public sys::Runnable, pub
         {}
     };
     typedef std::map<std::string, TransportInfo > TransportMap;
-    
+
     void declareStandardExchange(const std::string& name, const std::string& type);
     void setStore ();
     void setLogLevel(const std::string& level);
@@ -151,20 +149,20 @@ class Broker : public sys::Runnable, pub
     void setLogHiresTimestamp(bool enabled);
     bool getLogHiresTimestamp();
     void createObject(const std::string& type, const std::string& name,
-                      const qpid::types::Variant::Map& properties, bool strict, const Connection* context);
+                      const qpid::types::Variant::Map& properties, bool strict, const ConnectionIdentity* context);
     void deleteObject(const std::string& type, const std::string& name,
-                      const qpid::types::Variant::Map& options, const Connection* context);
+                      const qpid::types::Variant::Map& options, const ConnectionIdentity* context);
     void checkDeleteQueue(boost::shared_ptr<Queue> queue, bool ifUnused, bool ifEmpty);
     Manageable::status_t queryObject(const std::string& type, const std::string& name,
-                                     qpid::types::Variant::Map& results, const Connection* context);
+                                     qpid::types::Variant::Map& results, const ConnectionIdentity* context);
     Manageable::status_t queryQueue( const std::string& name,
                                      const std::string& userId,
                                      const std::string& connectionId,
                                      qpid::types::Variant::Map& results);
     Manageable::status_t getTimestampConfig(bool& receive,
-                                            const Connection* context);
+                                            const ConnectionIdentity* context);
     Manageable::status_t setTimestampConfig(const bool receive,
-                                            const Connection* context);
+                                            const ConnectionIdentity* context);
     Manageable::status_t queueRedirect(const std::string& srcQueue, const std::string& tgtQueue);
     void queueRedirectDestroy(boost::shared_ptr<Queue> srcQ, boost::shared_ptr<Queue> tgtQ, bool moveMsgs);
     boost::shared_ptr<sys::Poller> poller;

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/Connection.h
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/Connection.h?rev=1494640&r1=1494639&r2=1494640&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/Connection.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/Connection.h Wed Jun 19 14:26:11 2013
@@ -30,7 +30,8 @@
 #include "qpid/broker/BrokerImportExport.h"
 
 #include "qpid/broker/ConnectionHandler.h"
-#include "qpid/broker/ConnectionToken.h"
+#include "qpid/broker/ConnectionIdentity.h"
+#include "qpid/broker/OwnershipToken.h"
 #include "qpid/management/Manageable.h"
 #include "qpid/sys/AggregateOutput.h"
 #include "qpid/sys/ConnectionInputHandler.h"
@@ -63,8 +64,8 @@ class SecureConnection;
 class SessionHandler;
 struct ConnectionTimeoutTask;
 
-class Connection : public sys::ConnectionInputHandler,
-                   public ConnectionToken, public management::Manageable,
+class Connection : public sys::ConnectionInputHandler, public ConnectionIdentity,
+                   public OwnershipToken, public management::Manageable,
                    public RefCounted
 {
   public:
@@ -76,9 +77,11 @@ class Connection : public sys::Connectio
     void setHeartbeat(uint16_t hb) { heartbeat = hb; }
     void setHeartbeatMax(uint16_t hbm) { heartbeatmax = hbm; }
 
-    const std::string& getUserId() const { return userId; }
-
     void setUrl(const std::string& _url) { url = _url; }
+
+    const OwnershipToken* getOwnership() const { return this; };
+    const management::ObjectId getObjectId() const { return GetManagementObject()->getObjectId(); };
+    const std::string& getUserId() const { return userId; }
     const std::string& getUrl() const { return url; }
 
     void setUserProxyAuth(const bool b);

Copied: qpid/trunk/qpid/cpp/src/qpid/broker/ConnectionIdentity.h (from r1494639, qpid/trunk/qpid/cpp/src/qpid/broker/ConnectionToken.h)
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/ConnectionIdentity.h?p2=qpid/trunk/qpid/cpp/src/qpid/broker/ConnectionIdentity.h&p1=qpid/trunk/qpid/cpp/src/qpid/broker/ConnectionToken.h&r1=1494639&r2=1494640&rev=1494640&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/ConnectionToken.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/ConnectionIdentity.h Wed Jun 19 14:26:11 2013
@@ -1,3 +1,6 @@
+#ifndef QPID_BROKER_CONNECTIONIDENTITY_H
+#define QPID_BROKER_CONNECTIONIDENTITY_H
+
 /*
  *
  * Licensed to the Apache Software Foundation (ASF) under one
@@ -7,9 +10,9 @@
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- * 
+ *
  *   http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -18,23 +21,28 @@
  * under the License.
  *
  */
-#ifndef _ConnectionToken_
-#define _ConnectionToken_
 
-#include "qpid/broker/OwnershipToken.h"
+#include <string>
+
 namespace qpid {
-    namespace broker {
-        /**
-         * An empty interface allowing opaque implementations of some
-         * form of token to identify a connection.
-         */
-        class ConnectionToken : public OwnershipToken {
-        public:
-            virtual bool isLocal(const ConnectionToken* t) const { return this == t; }
-            virtual ~ConnectionToken(){}
-        };
-    }
+
+namespace management {
+class ObjectId;
 }
 
+namespace broker {
+
+class OwnershipToken;
+
+// Interface used to hold Connection authentication and object details for use when authenticating
+// publihed management requests.
+class ConnectionIdentity {
+public:
+    virtual const OwnershipToken* getOwnership() const = 0;
+    virtual const management::ObjectId getObjectId() const = 0;
+    virtual const std::string& getUserId() const = 0;
+    virtual const std::string& getUrl() const = 0;
+};
 
-#endif
+}}
+#endif // QPID_BROKER_CONNECTIONIDENTITY_H

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/Message.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/Message.cpp?rev=1494640&r1=1494639&r2=1494640&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/Message.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/Message.cpp Wed Jun 19 14:26:11 2013
@@ -23,6 +23,9 @@
 
 #include "qpid/amqp/CharSequence.h"
 #include "qpid/amqp/MapHandler.h"
+#include "qpid/broker/ConnectionIdentity.h"
+#include "qpid/management/ManagementObject.h"
+#include "qpid/management/Manageable.h"
 #include "qpid/StringUtils.h"
 #include "qpid/log/Statement.h"
 
@@ -199,6 +202,12 @@ uint8_t Message::getPriority() const
 
 bool Message::getIsManagementMessage() const { return isManagementMessage; }
 void Message::setIsManagementMessage(bool b) { isManagementMessage = b; }
+
+const OwnershipToken* Message::getPublisherOwnership() const {  return publisher->getOwnership(); }
+const management::ObjectId Message::getPublisherObjectId() const { return publisher->getObjectId(); }
+const std::string& Message::getPublisherUserId() const { return publisher->getUserId(); }
+const std::string& Message::getPublisherUrl() const { return publisher->getUrl(); }
+
 qpid::framing::SequenceNumber Message::getSequence() const
 {
     return sequence;

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/Message.h
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/Message.h?rev=1494640&r1=1494639&r2=1494640&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/Message.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/Message.h Wed Jun 19 14:26:11 2013
@@ -39,8 +39,15 @@ namespace qpid {
 namespace amqp {
 class MapHandler;
 }
+
+namespace management {
+class ObjectId;
+class Manageable;
+}
+
 namespace broker {
-class ConnectionToken;
+class OwnershipToken;
+class ConnectionIdentity;
 
 enum MessageState
 {
@@ -78,9 +85,12 @@ public:
     int getDeliveryCount() const { return deliveryCount; }
     void resetDeliveryCount() { deliveryCount = -1; }
 
-    const ConnectionToken* getPublisher() const {  return publisher; }
-    void setPublisher(ConnectionToken* p) {  publisher = p; }
-
+    void setPublisher(const ConnectionIdentity& p) { publisher = &p; }
+    const ConnectionIdentity& getPublisher() const { return *publisher; }
+    const OwnershipToken* getPublisherOwnership() const;
+    const management::ObjectId getPublisherObjectId() const;
+    const std::string& getPublisherUserId() const;
+    const std::string& getPublisherUrl() const;
 
     QPID_BROKER_EXTERN std::string getRoutingKey() const;
     QPID_BROKER_EXTERN bool isPersistent() const;
@@ -138,7 +148,7 @@ public:
     boost::intrusive_ptr<Encoding> encoding;
     boost::intrusive_ptr<PersistableMessage> persistentContext;
     int deliveryCount;
-    ConnectionToken* publisher;
+    const ConnectionIdentity* publisher;
     qpid::sys::AbsTime expiration;
     boost::intrusive_ptr<ExpiryPolicy> expiryPolicy;
     uint64_t timestamp;

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/OwnershipToken.h
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/OwnershipToken.h?rev=1494640&r1=1494639&r2=1494640&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/OwnershipToken.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/OwnershipToken.h Wed Jun 19 14:26:11 2013
@@ -24,11 +24,9 @@
 namespace qpid {
 namespace broker {
 
-class ConnectionToken;
-
 class OwnershipToken{
 public:
-    virtual bool isLocal(const ConnectionToken* t) const = 0;
+    virtual bool isLocal(const OwnershipToken* t) const { return this==t; };
     virtual ~OwnershipToken(){}
 };
 

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/Queue.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/Queue.cpp?rev=1494640&r1=1494639&r2=1494640&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/Queue.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/Queue.cpp Wed Jun 19 14:26:11 2013
@@ -224,7 +224,7 @@ Queue::~Queue()
 
 bool isLocalTo(const OwnershipToken* token, const Message& msg)
 {
-    return token && token->isLocal(msg.getPublisher());
+    return token && token->isLocal(msg.getPublisherOwnership());
 }
 
 bool Queue::isLocal(const Message& msg)

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/SessionAdapter.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/SessionAdapter.cpp?rev=1494640&r1=1494639&r2=1494640&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/SessionAdapter.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/SessionAdapter.cpp Wed Jun 19 14:26:11 2013
@@ -234,7 +234,7 @@ void SessionAdapter::QueueHandlerImpl::d
     }
 }
 
-bool SessionAdapter::QueueHandlerImpl::isLocal(const ConnectionToken* t) const
+bool SessionAdapter::QueueHandlerImpl::isLocal(const OwnershipToken* t) const
 {
     return session.isLocal(t);
 }

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/SessionAdapter.h
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/SessionAdapter.h?rev=1494640&r1=1494639&r2=1494640&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/SessionAdapter.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/SessionAdapter.h Wed Jun 19 14:26:11 2013
@@ -21,8 +21,6 @@
 
 #include "qpid/broker/HandlerImpl.h"
 
-#include "qpid/broker/ConnectionToken.h"
-#include "qpid/broker/OwnershipToken.h"
 #include "qpid/Exception.h"
 #include "qpid/framing/AMQP_ServerOperations.h"
 #include "qpid/framing/reply_exceptions.h"
@@ -128,7 +126,7 @@ class Queue;
       public:
         QueueHandlerImpl(SemanticState& session);
         ~QueueHandlerImpl();
-        
+
         void declare(const std::string& queue,
                      const std::string& alternateExchange, 
                      bool passive, bool durable, bool exclusive, 
@@ -138,7 +136,7 @@ class Queue;
                      bool ifUnused, bool ifEmpty);
         void purge(const std::string& queue); 
         framing::QueueQueryResult query(const std::string& queue);
-        bool isLocal(const ConnectionToken* t) const; 
+        bool isLocal(const OwnershipToken* t) const;
 
         void destroyExclusiveQueues();
         void checkDelete(boost::shared_ptr<Queue> queue, bool ifUnused, bool ifEmpty);

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/SessionContext.h
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/SessionContext.h?rev=1494640&r1=1494639&r2=1494640&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/SessionContext.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/SessionContext.h Wed Jun 19 14:26:11 2013
@@ -42,7 +42,6 @@ class SessionContext : public OwnershipT
 {
   public:
     virtual ~SessionContext(){}
-    virtual bool isLocal(const ConnectionToken* t) const = 0;
     virtual bool isAttached() const = 0;
     virtual Connection& getConnection() = 0;
     virtual framing::AMQP_ClientProxy& getProxy() = 0;

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.cpp?rev=1494640&r1=1494639&r2=1494640&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.cpp Wed Jun 19 14:26:11 2013
@@ -101,7 +101,7 @@ Connection& SessionState::getConnection(
     return handler->getConnection();
 }
 
-bool SessionState::isLocal(const ConnectionToken* t) const
+bool SessionState::isLocal(const OwnershipToken* t) const
 {
     return isAttached() && &(handler->getConnection()) == t;
 }
@@ -204,7 +204,7 @@ void SessionState::handleContent(AMQFram
         DeliverableMessage deliverable(Message(msg, msg), semanticState.getTxBuffer());
         if (broker.isTimestamping())
             deliverable.getMessage().setTimestamp();
-        deliverable.getMessage().setPublisher(&getConnection());
+        deliverable.getMessage().setPublisher(getConnection());
 
 
         IncompleteIngressMsgXfer xfer(this, msg);

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.h
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.h?rev=1494640&r1=1494639&r2=1494640&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.h Wed Jun 19 14:26:11 2013
@@ -90,7 +90,7 @@ class SessionState : public qpid::Sessio
 
     /** @pre isAttached() */
     Connection& getConnection();
-    bool isLocal(const ConnectionToken* t) const;
+    bool isLocal(const OwnershipToken* t) const;
 
     Broker& getBroker();
 

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/amqp/ManagedConnection.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/amqp/ManagedConnection.cpp?rev=1494640&r1=1494639&r2=1494640&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/amqp/ManagedConnection.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/amqp/ManagedConnection.cpp Wed Jun 19 14:26:11 2013
@@ -100,7 +100,7 @@ qpid::management::ManagementObject::shar
 std::string ManagedConnection::getId() const { return id; }
 std::string ManagedConnection::getUserid() const { return userid; }
 
-bool ManagedConnection::isLocal(const ConnectionToken* t) const
+bool ManagedConnection::isLocal(const OwnershipToken* t) const
 {
     return this == t;
 }

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/amqp/ManagedConnection.h
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/amqp/ManagedConnection.h?rev=1494640&r1=1494639&r2=1494640&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/amqp/ManagedConnection.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/amqp/ManagedConnection.h Wed Jun 19 14:26:11 2013
@@ -22,7 +22,7 @@
  *
  */
 #include "qpid/management/Manageable.h"
-#include "qpid/broker/ConnectionToken.h"
+#include "qpid/broker/OwnershipToken.h"
 #include "qmf/org/apache/qpid/broker/Connection.h"
 
 namespace qpid {
@@ -34,7 +34,7 @@ namespace broker {
 class Broker;
 namespace amqp {
 
-class ManagedConnection : public qpid::management::Manageable, public ConnectionToken
+class ManagedConnection : public qpid::management::Manageable, public OwnershipToken
 {
   public:
     ManagedConnection(Broker& broker, const std::string id);
@@ -47,7 +47,7 @@ class ManagedConnection : public qpid::m
     void setContainerId(const std::string&);
     const std::string& getContainerId() const;
     qpid::management::ManagementObject::shared_ptr GetManagementObject() const;
-    bool isLocal(const ConnectionToken* t) const;
+    bool isLocal(const OwnershipToken* t) const;
     void incomingMessageReceived();
     void outgoingMessageSent();
   private:

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/amqp/ManagedSession.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/amqp/ManagedSession.cpp?rev=1494640&r1=1494639&r2=1494640&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/amqp/ManagedSession.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/amqp/ManagedSession.cpp Wed Jun 19 14:26:11 2013
@@ -53,7 +53,7 @@ qpid::management::ManagementObject::shar
     return session;
 }
 
-bool ManagedSession::isLocal(const ConnectionToken* t) const
+bool ManagedSession::isLocal(const OwnershipToken* t) const
 {
     return &parent == t;
 }

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/amqp/ManagedSession.h
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/amqp/ManagedSession.h?rev=1494640&r1=1494639&r2=1494640&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/amqp/ManagedSession.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/amqp/ManagedSession.h Wed Jun 19 14:26:11 2013
@@ -23,7 +23,6 @@
  */
 #include "qpid/management/Manageable.h"
 #include "qmf/org/apache/qpid/broker/Session.h"
-#include "qpid/broker/ConnectionToken.h"
 #include "qpid/broker/OwnershipToken.h"
 
 namespace qpid {
@@ -41,7 +40,7 @@ class ManagedSession : public qpid::mana
     ManagedSession(Broker& broker, ManagedConnection& parent, const std::string id);
     virtual ~ManagedSession();
     qpid::management::ManagementObject::shared_ptr GetManagementObject() const;
-    bool isLocal(const ConnectionToken* t) const;
+    bool isLocal(const OwnershipToken* t) const;
     void incomingMessageReceived();
     void incomingMessageAccepted();
     void incomingMessageRejected();

Modified: qpid/trunk/qpid/cpp/src/qpid/management/ManagementAgent.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/management/ManagementAgent.cpp?rev=1494640&r1=1494639&r2=1494640&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/management/ManagementAgent.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/management/ManagementAgent.cpp Wed Jun 19 14:26:11 2013
@@ -88,13 +88,13 @@ const string keyifyNameStr(const string&
 
 struct ScopedManagementContext
 {
-    ScopedManagementContext(const qpid::broker::Connection* context)
+    ScopedManagementContext(const ConnectionIdentity& p)
     {
-        setManagementExecutionContext(context);
+        setManagementExecutionContext(p);
     }
     ~ScopedManagementContext()
     {
-        setManagementExecutionContext(0);
+        resetManagementExecutionContext();
     }
 };
 
@@ -1242,7 +1242,7 @@ bool ManagementAgent::dispatchCommand (D
     return true;
 }
 
-void ManagementAgent::handleMethodRequest(Buffer& inBuffer, const string& replyToKey, uint32_t sequence, const ConnectionToken* connToken)
+void ManagementAgent::handleMethodRequest(Buffer& inBuffer, const string& replyToKey, uint32_t sequence, const string& userId)
 {
     moveNewObjects();
 
@@ -1286,7 +1286,6 @@ void ManagementAgent::handleMethodReques
         return;
     }
 
-    string userId = ((const qpid::broker::Connection*) connToken)->getUserId();
     if (acl != 0) {
         map<acl::Property, string> params;
         params[acl::PROP_SCHEMAPACKAGE] = packageName;
@@ -1338,7 +1337,7 @@ void ManagementAgent::handleMethodReques
 
 
 void ManagementAgent::handleMethodRequest (const string& body, const string& rte, const string& rtk,
-                                           const string& cid, const ConnectionToken* connToken, bool viaLocal)
+                                           const string& cid, const string& userId, bool viaLocal)
 {
     moveNewObjects();
 
@@ -1407,7 +1406,6 @@ void ManagementAgent::handleMethodReques
         return;
     }
 
-    string userId = ((const qpid::broker::Connection*) connToken)->getUserId();
     if (acl != 0) {
         map<acl::Property, string> params;
         params[acl::PROP_SCHEMAPACKAGE] = object->getPackageName();
@@ -1718,12 +1716,11 @@ void ManagementAgent::deleteOrphanedAgen
         remoteAgents.erase(*dIter);
 }
 
-void ManagementAgent::handleAttachRequest (Buffer& inBuffer, const string& replyToKey, uint32_t sequence, const ConnectionToken* connToken)
+void ManagementAgent::handleAttachRequest (Buffer& inBuffer, const string& replyToKey, uint32_t sequence, const ObjectId& connectionRef)
 {
     string   label;
     uint32_t requestedBrokerBank, requestedAgentBank;
     uint32_t assignedBank;
-    ObjectId connectionRef = ((const Connection*) connToken)->GetManagementObject()->getObjectId();
     Uuid     systemId;
 
     moveNewObjects();
@@ -2206,7 +2203,7 @@ bool ManagementAgent::authorizeAgentMess
         if (acl == 0)
             return true;
 
-        string  userId = ((const qpid::broker::Connection*) msg.getPublisher())->getUserId();
+        string  userId = msg.getUserId();
         params[acl::PROP_SCHEMAPACKAGE] = packageName;
         params[acl::PROP_SCHEMACLASS]   = className;
 
@@ -2276,7 +2273,7 @@ void ManagementAgent::dispatchAgentComma
     uint32_t bufferLen = inBuffer.getPosition();
     inBuffer.reset();
 
-    ScopedManagementContext context((const qpid::broker::Connection*) msg.getPublisher());
+    ScopedManagementContext context(msg.getPublisher());
     const framing::FieldTable *headers = p ? &p->getApplicationHeaders() : 0;
     if (headers && p->getAppId() == "qmf2")
     {
@@ -2291,7 +2288,7 @@ void ManagementAgent::dispatchAgentComma
             }
 
             if (opcode == "_method_request")
-                return handleMethodRequest(body, rte, rtk, cid, msg.getPublisher(), viaLocal);
+                return handleMethodRequest(body, rte, rtk, cid, msg.getPublisherUserId(), viaLocal);
             else if (opcode == "_query_request")
                 return handleGetQuery(body, rte, rtk, cid, viaLocal);
             else if (opcode == "_agent_locate_request")
@@ -2314,9 +2311,9 @@ void ManagementAgent::dispatchAgentComma
         else if (opcode == 'q') handleClassInd       (inBuffer, rtk, sequence);
         else if (opcode == 'S') handleSchemaRequest  (inBuffer, rte, rtk, sequence);
         else if (opcode == 's') handleSchemaResponse (inBuffer, rtk, sequence);
-        else if (opcode == 'A') handleAttachRequest  (inBuffer, rtk, sequence, msg.getPublisher());
+        else if (opcode == 'A') handleAttachRequest  (inBuffer, rtk, sequence, msg.getPublisherObjectId());
         else if (opcode == 'G') handleGetQuery       (inBuffer, rtk, sequence);
-        else if (opcode == 'M') handleMethodRequest  (inBuffer, rtk, sequence, msg.getPublisher());
+        else if (opcode == 'M') handleMethodRequest  (inBuffer, rtk, sequence, msg.getPublisherUserId());
     }
 }
 
@@ -2755,16 +2752,22 @@ ManagementAgent::EventQueue::Batch::cons
 }
 
 namespace {
-QPID_TSS const qpid::broker::Connection* executionContext = 0;
+QPID_TSS const ConnectionIdentity* currentPublisher = 0;
 }
 
-void setManagementExecutionContext(const qpid::broker::Connection* ctxt)
+void setManagementExecutionContext(const ConnectionIdentity& p)
 {
-    executionContext = ctxt;
+    currentPublisher = &p;
 }
-const qpid::broker::Connection* getManagementExecutionContext()
+
+void resetManagementExecutionContext()
+{
+    currentPublisher = 0;
+}
+
+const ConnectionIdentity* getCurrentPublisher()
 {
-    return executionContext;
+    return currentPublisher;
 }
 
 }}

Modified: qpid/trunk/qpid/cpp/src/qpid/management/ManagementAgent.h
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/management/ManagementAgent.h?rev=1494640&r1=1494639&r2=1494640&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/management/ManagementAgent.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/management/ManagementAgent.h Wed Jun 19 14:26:11 2013
@@ -26,7 +26,6 @@
 #include "qpid/broker/Exchange.h"
 #include "qpid/framing/Uuid.h"
 #include "qpid/sys/Mutex.h"
-#include "qpid/broker/ConnectionToken.h"
 #include "qpid/management/ManagementObject.h"
 #include "qpid/management/ManagementEvent.h"
 #include "qpid/management/Manageable.h"
@@ -45,6 +44,7 @@
 namespace qpid {
 namespace broker {
 class Connection;
+class ConnectionIdentity;
 }
 namespace sys {
 class Timer;
@@ -361,11 +361,11 @@ private:
     void handleClassInd       (framing::Buffer& inBuffer, const std::string& replyToKey, uint32_t sequence);
     void handleSchemaRequest  (framing::Buffer& inBuffer, const std::string& replyToEx, const std::string& replyToKey, uint32_t sequence);
     void handleSchemaResponse (framing::Buffer& inBuffer, const std::string& replyToKey, uint32_t sequence);
-    void handleAttachRequest  (framing::Buffer& inBuffer, const std::string& replyToKey, uint32_t sequence, const qpid::broker::ConnectionToken* connToken);
+    void handleAttachRequest  (framing::Buffer& inBuffer, const std::string& replyToKey, uint32_t sequence, const ObjectId& objectId);
     void handleGetQuery       (framing::Buffer& inBuffer, const std::string& replyToKey, uint32_t sequence);
-    void handleMethodRequest  (framing::Buffer& inBuffer, const std::string& replyToKey, uint32_t sequence, const qpid::broker::ConnectionToken* connToken);
+    void handleMethodRequest  (framing::Buffer& inBuffer, const std::string& replyToKey, uint32_t sequence, const std::string& userId);
     void handleGetQuery       (const std::string& body, const std::string& replyToEx, const std::string& replyToKey, const std::string& cid, bool viaLocal);
-    void handleMethodRequest  (const std::string& body, const std::string& replyToEx, const std::string& replyToKey, const std::string& cid, const qpid::broker::ConnectionToken* connToken, bool viaLocal);
+    void handleMethodRequest  (const std::string& body, const std::string& replyToEx, const std::string& replyToKey, const std::string& cid, const std::string& userId, bool viaLocal);
     void handleLocateRequest  (const std::string& body, const std::string& replyToEx, const std::string &replyToKey, const std::string& cid);
 
 
@@ -379,8 +379,9 @@ private:
     std::auto_ptr<EventQueue> sendQueue;
 };
 
-void setManagementExecutionContext(const qpid::broker::Connection*);
-const qpid::broker::Connection* getManagementExecutionContext();
+void setManagementExecutionContext(const broker::ConnectionIdentity&);
+void resetManagementExecutionContext();
+const broker::ConnectionIdentity* getCurrentPublisher();
 }}
 
 #endif  /*!_ManagementAgent_*/



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org