You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by tr...@apache.org on 2011/02/04 09:22:30 UTC

svn commit: r1067111 - in /qpid/trunk/qpid/cpp: bindings/qmf2/examples/python/ bindings/qmf2/examples/ruby/ bindings/qmf2/python/ bindings/qmf2/ruby/ include/qmf/ src/qmf/

Author: tross
Date: Fri Feb  4 08:22:30 2011
New Revision: 1067111

URL: http://svn.apache.org/viewvc?rev=1067111&view=rev
Log:
Added missing even handling in the console.

Modified:
    qpid/trunk/qpid/cpp/bindings/qmf2/examples/python/find_agents.py
    qpid/trunk/qpid/cpp/bindings/qmf2/examples/ruby/find_agents.rb
    qpid/trunk/qpid/cpp/bindings/qmf2/python/qmf2.py
    qpid/trunk/qpid/cpp/bindings/qmf2/ruby/qmf2.rb
    qpid/trunk/qpid/cpp/include/qmf/ConsoleEvent.h
    qpid/trunk/qpid/cpp/src/qmf/Agent.cpp
    qpid/trunk/qpid/cpp/src/qmf/ConsoleEvent.cpp
    qpid/trunk/qpid/cpp/src/qmf/ConsoleEventImpl.h

Modified: qpid/trunk/qpid/cpp/bindings/qmf2/examples/python/find_agents.py
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qmf2/examples/python/find_agents.py?rev=1067111&r1=1067110&r2=1067111&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/bindings/qmf2/examples/python/find_agents.py (original)
+++ qpid/trunk/qpid/cpp/bindings/qmf2/examples/python/find_agents.py Fri Feb  4 08:22:30 2011
@@ -37,6 +37,9 @@ class FindAgents(qmf2.ConsoleHandler):
   def agentSchemaUpdated(self, agent):
     print "Agent Schema Updated: %r" % agent
 
+  def eventRaised(self, agent, data, timestamp, severity):
+    print "Event: data=%r time=%d sev=%d" % (data.getProperties(), timestamp, severity)
+
 
 
 url     = "localhost"

Modified: qpid/trunk/qpid/cpp/bindings/qmf2/examples/ruby/find_agents.rb
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qmf2/examples/ruby/find_agents.rb?rev=1067111&r1=1067110&r2=1067111&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/bindings/qmf2/examples/ruby/find_agents.rb (original)
+++ qpid/trunk/qpid/cpp/bindings/qmf2/examples/ruby/find_agents.rb Fri Feb  4 08:22:30 2011
@@ -41,6 +41,10 @@ class FindAgents < Qmf2::ConsoleHandler
   def agent_schema_updated(agent)
     puts "Agent with new Schemata: #{agent.to_s}"
   end
+
+  def event_raised(agent, data, timestamp, severity)
+    puts "Event Raised time=#{timestamp} sev=#{severity} data=#{data.properties}"
+  end
 end
 
 

Modified: qpid/trunk/qpid/cpp/bindings/qmf2/python/qmf2.py
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qmf2/python/qmf2.py?rev=1067111&r1=1067110&r2=1067111&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/bindings/qmf2/python/qmf2.py (original)
+++ qpid/trunk/qpid/cpp/bindings/qmf2/python/qmf2.py Fri Feb  4 08:22:30 2011
@@ -173,6 +173,9 @@ class ConsoleHandler(Thread):
         elif event.getType() == cqmf2.CONSOLE_AGENT_SCHEMA_UPDATE:
           self.agentSchemaUpdated(Agent(event.getAgent()))
 
+        elif event.getType() == cqmf2.CONSOLE_EVENT:
+          self.eventRaised(Agent(event.getAgent()), Data(event.getData(0)), event.getTimestamp(), event.getSeverity())
+
   ##
   ## The following methods are intended to be overridden in a sub-class.  They are
   ## handlers for events that occur on QMF consoles.

Modified: qpid/trunk/qpid/cpp/bindings/qmf2/ruby/qmf2.rb
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qmf2/ruby/qmf2.rb?rev=1067111&r1=1067110&r2=1067111&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/bindings/qmf2/ruby/qmf2.rb (original)
+++ qpid/trunk/qpid/cpp/bindings/qmf2/ruby/qmf2.rb Fri Feb  4 08:22:30 2011
@@ -297,6 +297,9 @@ module Qmf2
           when Cqmf2::CONSOLE_AGENT_SCHEMA_UPDATE
             agent_schema_updated(Agent.new(event.getAgent))
 
+          when Cqmf2::CONSOLE_EVENT
+            event_raised(Agent.new(event.getAgent), Data.new(event.getData(0)), event.getTimestamp, event.getSeverity)
+
           end
         end
       end

Modified: qpid/trunk/qpid/cpp/include/qmf/ConsoleEvent.h
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/include/qmf/ConsoleEvent.h?rev=1067111&r1=1067110&r2=1067111&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/include/qmf/ConsoleEvent.h (original)
+++ qpid/trunk/qpid/cpp/include/qmf/ConsoleEvent.h Fri Feb  4 08:22:30 2011
@@ -74,6 +74,8 @@ namespace qmf {
         QMF_EXTERN Data getData(uint32_t) const;
         QMF_EXTERN bool isFinal() const;
         QMF_EXTERN const qpid::types::Variant::Map& getArguments() const;
+        QMF_EXTERN int getSeverity() const;
+        QMF_EXTERN uint64_t getTimestamp() const;
 
 #ifndef SWIG
     private:

Modified: qpid/trunk/qpid/cpp/src/qmf/Agent.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qmf/Agent.cpp?rev=1067111&r1=1067110&r2=1067111&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qmf/Agent.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qmf/Agent.cpp Fri Feb  4 08:22:30 2011
@@ -377,9 +377,43 @@ void AgentImpl::handleMethodResponse(con
 }
 
 
-void AgentImpl::handleDataIndication(const Variant::List&, const Message&)
+void AgentImpl::handleDataIndication(const Variant::List& list, const Message& msg)
 {
-    // TODO
+    Variant::Map::const_iterator aIter;
+    const Variant::Map& props(msg.getProperties());
+    boost::shared_ptr<SyncContext> context;
+
+    aIter = props.find("qmf.content");
+    if (aIter == props.end())
+        return;
+
+    string content_type(aIter->second.asString());
+    if (content_type != "_event")
+        return;
+
+    for (Variant::List::const_iterator lIter = list.begin(); lIter != list.end(); lIter++) {
+        const Variant::Map& eventMap(lIter->asMap());
+        Data data(new DataImpl(eventMap, this));
+        int severity(SEV_NOTICE);
+        uint64_t timestamp(0);
+
+        aIter = eventMap.find("_severity");
+        if (aIter != eventMap.end())
+            severity = int(aIter->second.asInt8());
+
+        aIter = eventMap.find("_timestamp");
+        if (aIter != eventMap.end())
+            timestamp = aIter->second.asUint64();
+
+        auto_ptr<ConsoleEventImpl> eventImpl(new ConsoleEventImpl(CONSOLE_EVENT));
+        eventImpl->setAgent(this);
+        eventImpl->addData(data);
+        eventImpl->setSeverity(severity);
+        eventImpl->setTimestamp(timestamp);
+        if (data.hasSchema())
+            learnSchemaId(data.getSchemaId());
+        session.enqueueEvent(eventImpl.release());
+    }
 }
 
 

Modified: qpid/trunk/qpid/cpp/src/qmf/ConsoleEvent.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qmf/ConsoleEvent.cpp?rev=1067111&r1=1067110&r2=1067111&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qmf/ConsoleEvent.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qmf/ConsoleEvent.cpp Fri Feb  4 08:22:30 2011
@@ -44,6 +44,8 @@ uint32_t ConsoleEvent::getDataCount() co
 Data ConsoleEvent::getData(uint32_t i) const { return impl->getData(i); }
 bool ConsoleEvent::isFinal() const { return impl->isFinal(); }
 const Variant::Map& ConsoleEvent::getArguments() const { return impl->getArguments(); }
+int ConsoleEvent::getSeverity() const { return impl->getSeverity(); }
+uint64_t ConsoleEvent::getTimestamp() const { return impl->getTimestamp(); }
 
 
 SchemaId ConsoleEventImpl::getSchemaId(uint32_t i) const

Modified: qpid/trunk/qpid/cpp/src/qmf/ConsoleEventImpl.h
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qmf/ConsoleEventImpl.h?rev=1067111&r1=1067110&r2=1067111&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qmf/ConsoleEventImpl.h (original)
+++ qpid/trunk/qpid/cpp/src/qmf/ConsoleEventImpl.h Fri Feb  4 08:22:30 2011
@@ -42,6 +42,8 @@ namespace qmf {
         void addSchemaId(const SchemaId& s) { newSchemaIds.push_back(SchemaId(s)); }
         void setFinal() { final = true; }
         void setArguments(const qpid::types::Variant::Map& a) { arguments = a; }
+        void setSeverity(int s) { severity = s; }
+        void setTimestamp(uint64_t t) { timestamp = t; }
 
         //
         // Methods from API handle
@@ -56,6 +58,8 @@ namespace qmf {
         Data getData(uint32_t i) const;
         bool isFinal() const { return final; }
         const qpid::types::Variant::Map& getArguments() const { return arguments; }
+        int getSeverity() const { return severity; }
+        uint64_t getTimestamp() const { return timestamp; }
 
     private:
         const ConsoleEventCode eventType;
@@ -66,6 +70,8 @@ namespace qmf {
         std::list<Data> dataList;
         std::list<SchemaId> newSchemaIds;
         qpid::types::Variant::Map arguments;
+        int severity;
+        uint64_t timestamp;
     };
 
     struct ConsoleEventImplAccess



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org