Angus,

I've put an example C++ console that receives V2 events and prints them in subversion. It's at qpid/cpp/bindings/qmf2/examples/cpp/print_events.cpp. This should get you unblocked.

-Ted

On 02/10/2011 05:57 PM, Angus Salkeld wrote:
Hi

I am trying to write a c++ client to Matahari. It Exposes an event which I
need to receive. It is sending the event useing the following call:

this->_agent->raiseEvent(_qmf::EventHeartbeat(timestamp, 
_heartbeat_sequence++));

If i follow the code it seems to go to Agentsession.cpp: 544:
void AgentSessionImpl::raiseEvent(const Data&  data, int severity)
{
     Message msg;
     Variant::Map map;
     Variant::Map&  headers(msg.getProperties());
     string subject("agent.ind.event");

Note the "agent.ind.event" ^^^

The only way I have succeeded in receiving this is using "qpid-printevents". I 
have
tried coping the different versions of C++ examples to no avail.

So when I use qpid-printevents I get the following bind events:

Thu Feb 10 22:34:43 2011 INFO  org.apache.qpid.broker:bind 
broker=localhost:49000
rhost=127.0.0.1:33154 user=anonymous exName=qpid.management 
qName=topic-troll.bigpond.7363.1
key=console.event.# args={}

version 1 bind ^^^

Thu Feb 10 22:34:43 2011 INFO  org.apache.qpid.broker:bind 
broker=localhost:49000
rhost=127.0.0.1:33154 user=anonymous exName=qmf.default.topic 
qName=qmfc-v2-hb-troll.bigpond.7363.1
key=agent.ind.heartbeat.# args={}
Thu Feb 10 22:34:43 2011 INFO  org.apache.qpid.broker:bind 
broker=localhost:49000
rhost=127.0.0.1:33154 user=anonymous exName=qmf.default.topic 
qName=qmfc-v2-ui-troll.bigpond.7363.1
key=agent.ind.event.# args={}

version 2 binds ^^^

When I use a c++ client only get the version 1 binds.

If I "grep -R "\<agent.ind\>" *" in the code base I find:

cpp/src/qmf/AgentSession.cpp
cpp/src/qpid/agent/ManagementAgentImpl.cpp
cpp/src/qpid/management/ManagementAgent.cpp
cpp/src/tests/BrokerMgmtAgent.cpp
extras/qmf/build/lib/qmf2/agent.py
extras/qmf/build/lib/qmf2/common.py
extras/qmf/build/lib/qmf2/console.py
extras/qmf/build/lib/qmf/console.py
extras/qmf/src/py/qmf2/agent.py
extras/qmf/src/py/qmf2/common.py
extras/qmf/src/py/qmf2/console.py
extras/qmf/src/py/qmf/console.py

It seems to me that the c++ console files are not v2 aware and
thus v2 client applications can't receive v2 events.
Is this correct, or am I off base here (only too happy to be wrong here)?

Note: I was initially using standard Fedora 14 qpid, but then moved to
a build from the latest git.

Regards
Angus Salkeld


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to