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

svn commit: r699413 - in /incubator/qpid/trunk/qpid/cpp/src/qpid: broker/ cluster/ sys/

Author: aconway
Date: Fri Sep 26 10:11:19 2008
New Revision: 699413

URL: http://svn.apache.org/viewvc?rev=699413&view=rev
Log:
Fix build problems on rhel 5.2 and 64-bit encoding bug.

Modified:
    incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Connection.h
    incubator/qpid/trunk/qpid/cpp/src/qpid/broker/ExchangeRegistry.h
    incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Queue.h
    incubator/qpid/trunk/qpid/cpp/src/qpid/broker/QueueBindings.h
    incubator/qpid/trunk/qpid/cpp/src/qpid/broker/QueueRegistry.h
    incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SemanticState.h
    incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.h
    incubator/qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.cpp
    incubator/qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.h
    incubator/qpid/trunk/qpid/cpp/src/qpid/cluster/DumpClient.cpp
    incubator/qpid/trunk/qpid/cpp/src/qpid/cluster/Event.cpp
    incubator/qpid/trunk/qpid/cpp/src/qpid/cluster/Event.h
    incubator/qpid/trunk/qpid/cpp/src/qpid/sys/AggregateOutput.h
    incubator/qpid/trunk/qpid/cpp/src/qpid/sys/PollableQueue.h

Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Connection.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Connection.h?rev=699413&r1=699412&r2=699413&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Connection.h (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Connection.h Fri Sep 26 10:11:19 2008
@@ -98,7 +98,7 @@
     void setUserId(const string& uid);
     void setFederationLink(bool b);
 
-    template <class F> void eachSessionHandler(const F& f) {
+    template <class F> void eachSessionHandler(F f) {
         for (ChannelMap::iterator i = channels.begin(); i != channels.end(); ++i)
             f(*ptr_map_ptr(i));
     }

Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/ExchangeRegistry.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/ExchangeRegistry.h?rev=699413&r1=699412&r2=699413&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/ExchangeRegistry.h (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/ExchangeRegistry.h Fri Sep 26 10:11:19 2008
@@ -62,10 +62,10 @@
     void registerType(const std::string& type, FactoryFunction);
 
     /** Call f for each exchange in the registry. */
-    template <class F> void eachExchange(const F& f) const {
+    template <class F> void eachExchange(F f) const {
         qpid::sys::RWlock::ScopedWlock l(lock);
-        std::for_each(exchanges.begin(), exchanges.end(),
-                      boost::bind(f, boost::bind(&ExchangeMap::value_type::second, _1)));
+        for (ExchangeMap::const_iterator i = exchanges.begin(); i != exchanges.end(); ++i)
+            f(i->second);
     }
         
   private:

Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Queue.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Queue.h?rev=699413&r1=699412&r2=699413&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Queue.h (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Queue.h Fri Sep 26 10:11:19 2008
@@ -213,13 +213,13 @@
                 ManagementMethod (uint32_t methodId, management::Args& args, std::string& text);
 
             /** Apply f to each Message on the queue. */
-            template <class F> void eachMessage(const F& f) const {
+            template <class F> void eachMessage(F f) const {
                 sys::Mutex::ScopedLock l(messageLock);
                 std::for_each(messages.begin(), messages.end(), f);
             }
 
             /** Apply f to each QueueBinding on the queue */
-            template <class F> void eachBinding(const F& f) {
+            template <class F> void eachBinding(F f) {
                 bindings.eachBinding(f);
             }
 

Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/QueueBindings.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/QueueBindings.h?rev=699413&r1=699412&r2=699413&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/QueueBindings.h (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/QueueBindings.h Fri Sep 26 10:11:19 2008
@@ -44,7 +44,7 @@
   public:
     
     /** Apply f to each QueueBinding. */
-    template <class F> void eachBinding(const F& f) const { std::for_each(bindings.begin(), bindings.end(), f); }
+    template <class F> void eachBinding(F f) const { std::for_each(bindings.begin(), bindings.end(), f); }
 
     void add(const std::string& exchange, const std::string& key, const qpid::framing::FieldTable& args);
     void unbind(ExchangeRegistry& exchanges, boost::shared_ptr<Queue> queue);

Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/QueueRegistry.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/QueueRegistry.h?rev=699413&r1=699412&r2=699413&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/QueueRegistry.h (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/QueueRegistry.h Fri Sep 26 10:11:19 2008
@@ -102,10 +102,10 @@
     void setParent (management::Manageable* _parent) { parent = _parent; }
 
     /** Call f for each queue in the registry. */
-    template <class F> void eachQueue(const F& f) const {
+    template <class F> void eachQueue(F f) const {
         qpid::sys::RWlock::ScopedWlock l(lock);
-        std::for_each(queues.begin(), queues.end(),
-                      boost::bind(f, boost::bind(&QueueMap::value_type::second, _1)));
+        for (QueueMap::const_iterator i = queues.begin(); i != queues.end(); ++i)
+            f(i->second);
     }
     
 private:

Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SemanticState.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SemanticState.h?rev=699413&r1=699412&r2=699413&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SemanticState.h (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SemanticState.h Fri Sep 26 10:11:19 2008
@@ -204,10 +204,8 @@
     void attached();
     void detached();
 
-    template <class F> void eachConsumer(const F& f) {
-        outputTasks.eachOutput(
-            boost::bind(f, boost::bind(&boost::polymorphic_downcast<ConsumerImpl*, OutputTask>, _1)));
-    }
+    static ConsumerImpl* castToConsumerImpl(OutputTask* p) { return boost::polymorphic_downcast<ConsumerImpl*>(p); }
+    template <class F> void eachConsumer(F f) { outputTasks.eachOutput(boost::bind(f, boost::bind(castToConsumerImpl, _1))); }
 };
 
 }} // namespace qpid::broker

Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.h?rev=699413&r1=699412&r2=699413&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.h (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.h Fri Sep 26 10:11:19 2008
@@ -100,7 +100,7 @@
 
     void readyToSend();
 
-    template <class F> void eachConsumer(const F& f) { semanticState.eachConsumer(f); }
+    template <class F> void eachConsumer(F f) { semanticState.eachConsumer(f); }
     
   private:
 

Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.cpp?rev=699413&r1=699412&r2=699413&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.cpp Fri Sep 26 10:11:19 2008
@@ -115,7 +115,7 @@
     mcastEvent(e);
 }
 
-void Cluster::mcastBuffer(const char* data, size_t size, const ConnectionId& connection, size_t id) {
+void Cluster::mcastBuffer(const char* data, size_t size, const ConnectionId& connection, uint32_t id) {
     Event e(DATA, connection, size, id);
     memcpy(e.getData(), data, size);
     QPID_LOG(trace, "MCAST " << e);

Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.h?rev=699413&r1=699412&r2=699413&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.h (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.h Fri Sep 26 10:11:19 2008
@@ -77,7 +77,7 @@
     
     /** Send to the cluster */
     void mcastControl(const framing::AMQBody& controlBody, Connection* cptr);
-    void mcastBuffer(const char*, size_t, const ConnectionId&, size_t id);
+    void mcastBuffer(const char*, size_t, const ConnectionId&, uint32_t id);
     void mcastEvent(const Event& e);
     
     /** Leave the cluster */
@@ -97,8 +97,8 @@
     void setDumpComplete();
 
     template <class F> void eachConnection(const F& f) {
-        std::for_each(connections.begin(), connections.end(),
-                      boost::bind(f, boost::bind(&ConnectionMap::value_type::second, _1)));
+        for (ConnectionMap::const_iterator i = connections.begin(); i != connections.end(); ++i)
+            f(i->second);
     }
     
   private:
@@ -143,7 +143,7 @@
     virtual management::Manageable::status_t ManagementMethod (uint32_t methodId, management::Args& args, std::string& text);
     void stopClusterNode(void);
     void stopFullCluster(void);
-	void updateMemberStats(void);
+    void updateMemberStats(void);
 
     mutable sys::Monitor lock;  // Protect access to members.
     broker::Broker& broker;
@@ -165,7 +165,7 @@
     JoiningHandler joiningHandler;
     MemberHandler memberHandler;
 
-    size_t mcastId;
+    uint32_t mcastId;
 
   friend class ClusterHandler;
   friend class JoiningHandler;

Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/cluster/DumpClient.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/cluster/DumpClient.cpp?rev=699413&r1=699412&r2=699413&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/cluster/DumpClient.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/cluster/DumpClient.cpp Fri Sep 26 10:11:19 2008
@@ -168,6 +168,10 @@
     QPID_LOG(debug, donor.getId() << " dumped connection " << *dumpConnection);
 }
 
+// FIXME aconway 2008-09-26: REMOVE
+void foo(broker::SemanticState::ConsumerImpl*) {}
+
+
 void DumpClient::dumpSession(broker::SessionHandler& sh) {
     QPID_LOG(debug, donor.getId() << " dumping session " << &sh.getConnection()  << "[" << sh.getChannel() << "] = "
              << sh.getSession()->getId());
@@ -187,7 +191,8 @@
     // Re-create session state on remote connection.
     broker::SessionState* ss = sh.getSession();
 
-    ss->eachConsumer(boost::bind(&DumpClient::dumpConsumer, this, _1));
+    // For reasons unknown, boost::bind does not work here with boost 1.33.
+    ss->eachConsumer(std::bind1st(std::mem_fun(&DumpClient::dumpConsumer),this));
     
     // FIXME aconway 2008-09-19: remaining session state.
 

Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/cluster/Event.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/cluster/Event.cpp?rev=699413&r1=699412&r2=699413&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/cluster/Event.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/cluster/Event.cpp Fri Sep 26 10:11:19 2008
@@ -31,16 +31,16 @@
 
 using framing::Buffer;
 
-const size_t Event::OVERHEAD = sizeof(uint8_t) + sizeof(uint64_t) + sizeof(size_t);
+const size_t Event::OVERHEAD = sizeof(uint8_t) + sizeof(uint64_t) + sizeof(uint32_t);
 
-Event::Event(EventType t, const ConnectionId& c,  size_t s, size_t i)
+Event::Event(EventType t, const ConnectionId& c,  size_t s, uint32_t i)
     : type(t), connectionId(c), size(s), data(RefCountedBuffer::create(s)), id(i) {}
 
 Event Event::delivered(const MemberId& m, void* d, size_t s) {
     Buffer buf(static_cast<char*>(d), s);
     EventType type((EventType)buf.getOctet()); 
     ConnectionId connection(m, reinterpret_cast<Connection*>(buf.getLongLong()));
-    size_t id = buf.getLong();
+    uint32_t id = buf.getLong();
     assert(buf.getPosition() == OVERHEAD);
     Event e(type, connection, s-OVERHEAD, id);
     memcpy(e.getData(), static_cast<char*>(d)+OVERHEAD, s-OVERHEAD);

Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/cluster/Event.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/cluster/Event.h?rev=699413&r1=699412&r2=699413&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/cluster/Event.h (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/cluster/Event.h Fri Sep 26 10:11:19 2008
@@ -43,7 +43,7 @@
 class Event {
   public:
     /** Create an event to mcast with a buffer of size bytes. */
-    Event(EventType t=DATA, const ConnectionId& c=ConnectionId(), size_t size=0, size_t id=0);
+    Event(EventType t=DATA, const ConnectionId& c=ConnectionId(), size_t size=0, uint32_t id=0);
 
     /** Create an event copied from delivered data. */
     static Event delivered(const MemberId& m, void* data, size_t size);
@@ -65,7 +65,7 @@
     ConnectionId connectionId;
     size_t size;
     RefCountedBuffer::pointer data;
-    size_t id;
+    uint32_t id;
 };
 
 std::ostream& operator << (std::ostream&, const Event&);

Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/sys/AggregateOutput.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/sys/AggregateOutput.h?rev=699413&r1=699412&r2=699413&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/sys/AggregateOutput.h (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/sys/AggregateOutput.h Fri Sep 26 10:11:19 2008
@@ -50,7 +50,7 @@
         void removeOutputTask(OutputTask* t);
 
         /** Apply f to each OutputTask* in the tasks list */
-        template <class F> void eachOutput(const F& f) {
+        template <class F> void eachOutput(F f) {
             std::for_each(tasks.begin(), tasks.end(), f);
         }
     };

Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/sys/PollableQueue.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/sys/PollableQueue.h?rev=699413&r1=699412&r2=699413&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/sys/PollableQueue.h (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/sys/PollableQueue.h Fri Sep 26 10:11:19 2008
@@ -53,7 +53,7 @@
     /** @see forEach() */
     template <class F> struct ForEach {
         F handleOne;
-        ForEach(const F& f) : handleOne(f) {}
+        ForEach(F f) : handleOne(f) {}
         void operator()(const iterator& i, const iterator& j) const { std::for_each(i, j, handleOne); }
     };