summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTed Ross <tross@apache.org>2011-02-11 01:19:12 +0000
committerTed Ross <tross@apache.org>2011-02-11 01:19:12 +0000
commitfc8f2c93b118b3026ab2f5274127b41938d5590f (patch)
tree6e2737131084ff9fc5673aa2e9736030a216ffd7
parent3cdd83cadf8010310ddcf54f1724c77001d2d02c (diff)
downloadqpid-python-fc8f2c93b118b3026ab2f5274127b41938d5590f.tar.gz
QPID-3046
Added missing wrapper functions for AgentSession::raiseEvent in Ruby and Python Added a raised event in the Python agent example git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1069654 13f79535-47bb-0310-9956-ffa450edef68
-rwxr-xr-xcpp/bindings/qmf2/examples/python/agent.py73
-rw-r--r--cpp/bindings/qmf2/examples/ruby/find_agents.rb2
-rw-r--r--cpp/bindings/qmf2/python/qmf2.py10
-rw-r--r--cpp/bindings/qmf2/ruby/qmf2.rb8
4 files changed, 66 insertions, 27 deletions
diff --git a/cpp/bindings/qmf2/examples/python/agent.py b/cpp/bindings/qmf2/examples/python/agent.py
index 66b7dbdc58..b24890f531 100755
--- a/cpp/bindings/qmf2/examples/python/agent.py
+++ b/cpp/bindings/qmf2/examples/python/agent.py
@@ -69,32 +69,41 @@ class ExampleAgent(AgentHandler):
if addr == self.controlAddr:
self.control.methodCount += 1
- if methodName == "stop":
- self.session.methodSuccess(handle)
- self.cancel()
-
- elif methodName == "echo":
- handle.addReturnArgument("sequence", args["sequence"])
- handle.addReturnArgument("map", args["map"])
- self.session.methodSuccess(handle)
-
- elif methodName == "fail":
- if args['useString']:
- self.session.raiseException(handle, args['stringVal'])
- else:
- ex = Data(self.sch_exception)
- ex.whatHappened = "It Failed"
- ex.howBad = 75
- ex.details = args['details']
- self.session.raiseException(handle, ex)
-
- elif methodName == "create_child":
- name = args['name']
- child = Data(self.sch_child)
- child.name = name
- addr = self.session.addData(child, name)
- handle.addReturnArgument("childAddr", addr.asMap())
- self.session.methodSuccess(handle)
+ try:
+ if methodName == "stop":
+ self.session.methodSuccess(handle)
+ self.cancel()
+
+ elif methodName == "echo":
+ handle.addReturnArgument("sequence", args["sequence"])
+ handle.addReturnArgument("map", args["map"])
+ self.session.methodSuccess(handle)
+
+ elif methodName == "event":
+ ev = Data(self.sch_event)
+ ev.text = args['text']
+ self.session.raiseEvent(ev, args['severity'])
+ self.session.methodSuccess(handle)
+
+ elif methodName == "fail":
+ if args['useString']:
+ self.session.raiseException(handle, args['stringVal'])
+ else:
+ ex = Data(self.sch_exception)
+ ex.whatHappened = "It Failed"
+ ex.howBad = 75
+ ex.details = args['details']
+ self.session.raiseException(handle, ex)
+
+ elif methodName == "create_child":
+ name = args['name']
+ child = Data(self.sch_child)
+ child.name = name
+ addr = self.session.addData(child, name)
+ handle.addReturnArgument("childAddr", addr.asMap())
+ self.session.methodSuccess(handle)
+ except BaseException, e:
+ self.session.raiseException(handle, "%r" % e)
def setupSchema(self):
@@ -128,6 +137,11 @@ class ExampleAgent(AgentHandler):
echoMethod.addArgument(SchemaProperty("map", SCHEMA_DATA_MAP, direction=DIR_IN_OUT))
self.sch_control.addMethod(echoMethod)
+ eventMethod = SchemaMethod("event", desc="Raise an Event")
+ eventMethod.addArgument(SchemaProperty("text", SCHEMA_DATA_STRING, direction=DIR_IN))
+ eventMethod.addArgument(SchemaProperty("severity", SCHEMA_DATA_INT, direction=DIR_IN))
+ self.sch_control.addMethod(eventMethod)
+
failMethod = SchemaMethod("fail", desc="Expected to Fail")
failMethod.addArgument(SchemaProperty("useString", SCHEMA_DATA_BOOL, direction=DIR_IN))
failMethod.addArgument(SchemaProperty("stringVal", SCHEMA_DATA_STRING, direction=DIR_IN))
@@ -146,11 +160,18 @@ class ExampleAgent(AgentHandler):
self.sch_child.addProperty(SchemaProperty("name", SCHEMA_DATA_STRING))
##
+ ## Declare the event class
+ ##
+ self.sch_event = Schema(SCHEMA_TYPE_EVENT, package, "event")
+ self.sch_event.addProperty(SchemaProperty("text", SCHEMA_DATA_STRING))
+
+ ##
## Register our schemata with the agent session.
##
self.session.registerSchema(self.sch_exception)
self.session.registerSchema(self.sch_control)
self.session.registerSchema(self.sch_child)
+ self.session.registerSchema(self.sch_event)
def populateData(self):
diff --git a/cpp/bindings/qmf2/examples/ruby/find_agents.rb b/cpp/bindings/qmf2/examples/ruby/find_agents.rb
index 712e5007be..41de7e5abe 100644
--- a/cpp/bindings/qmf2/examples/ruby/find_agents.rb
+++ b/cpp/bindings/qmf2/examples/ruby/find_agents.rb
@@ -27,7 +27,7 @@ class FindAgents < Qmf2::ConsoleHandler
end
def agent_added(agent)
- puts "Agent Added: #{agent.to_s}"
+ puts "Agent Added: #{agent.name}"
end
def agent_deleted(agent, reason)
diff --git a/cpp/bindings/qmf2/python/qmf2.py b/cpp/bindings/qmf2/python/qmf2.py
index 61a5453f8e..2b8ece9dde 100644
--- a/cpp/bindings/qmf2/python/qmf2.py
+++ b/cpp/bindings/qmf2/python/qmf2.py
@@ -373,6 +373,16 @@ class AgentSession(object):
else:
self._impl.raiseException(handle, data)
+ def raiseEvent(self, data, severity=None):
+ """
+ """
+ if not severity:
+ self._impl.raiseEvent(data._impl)
+ else:
+ if (severity.__class__ != int and severity.__class__ != long) or severity < 0 or severity > 7:
+ raise Exception("Severity must be an int between 0..7")
+ self._impl.raiseEvent(data._impl, severity);
+
#===================================================================================================
# AGENT PROXY
diff --git a/cpp/bindings/qmf2/ruby/qmf2.rb b/cpp/bindings/qmf2/ruby/qmf2.rb
index 6d1741ebc0..c14ecba4e1 100644
--- a/cpp/bindings/qmf2/ruby/qmf2.rb
+++ b/cpp/bindings/qmf2/ruby/qmf2.rb
@@ -433,6 +433,14 @@ module Qmf2
def del_data(addr)
@impl.del_data(addr.impl)
end
+
+ def raise_event(data, severity=nil)
+ if !severity
+ @impl.raiseEvent(data.impl)
+ else
+ @impl.raiseEvent(data.impl, severity)
+ end
+ end
end
##==============================================================================