diff options
author | Ted Ross <tross@apache.org> | 2011-02-11 01:19:12 +0000 |
---|---|---|
committer | Ted Ross <tross@apache.org> | 2011-02-11 01:19:12 +0000 |
commit | fc8f2c93b118b3026ab2f5274127b41938d5590f (patch) | |
tree | 6e2737131084ff9fc5673aa2e9736030a216ffd7 | |
parent | 3cdd83cadf8010310ddcf54f1724c77001d2d02c (diff) | |
download | qpid-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-x | cpp/bindings/qmf2/examples/python/agent.py | 73 | ||||
-rw-r--r-- | cpp/bindings/qmf2/examples/ruby/find_agents.rb | 2 | ||||
-rw-r--r-- | cpp/bindings/qmf2/python/qmf2.py | 10 | ||||
-rw-r--r-- | cpp/bindings/qmf2/ruby/qmf2.rb | 8 |
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 ##============================================================================== |