diff options
Diffstat (limited to 'cpp/bindings')
| -rw-r--r-- | cpp/bindings/qmf/python/Makefile.am | 2 | ||||
| -rw-r--r-- | cpp/bindings/qmf/python/qmf.py | 4 | ||||
| -rw-r--r-- | cpp/bindings/qmf/qmfengine.i | 35 | ||||
| -rw-r--r-- | cpp/bindings/qmf/ruby/Makefile.am | 7 | ||||
| -rw-r--r-- | cpp/bindings/qmf/ruby/qmf.rb | 42 | ||||
| -rwxr-xr-x | cpp/bindings/qmf/tests/ruby_console_test.rb | 35 | ||||
| -rw-r--r-- | cpp/bindings/qmf/tests/test_base.rb | 5 |
7 files changed, 83 insertions, 47 deletions
diff --git a/cpp/bindings/qmf/python/Makefile.am b/cpp/bindings/qmf/python/Makefile.am index 55d9079fb7..53303c7be9 100644 --- a/cpp/bindings/qmf/python/Makefile.am +++ b/cpp/bindings/qmf/python/Makefile.am @@ -38,7 +38,7 @@ lib_LTLIBRARIES = _qmfengine.la #_qmfengine_la_LDFLAGS = -avoid-version -module -shrext "$(PYTHON_SO)" #_qmfengine_la_LDFLAGS = -avoid-version -module -shrext ".so" _qmfengine_la_LDFLAGS = -avoid-version -module -shared -_qmfengine_la_LIBADD = $(PYTHON_LIBS) -L$(top_builddir)/src/.libs -lqpidclient $(top_builddir)/src/libqmfagent.la +_qmfengine_la_LIBADD = $(PYTHON_LIBS) -L$(top_builddir)/src/.libs -lqpidclient $(top_builddir)/src/libqmf.la _qmfengine_la_CXXFLAGS = $(INCLUDES) -I$(srcdir)/qmf -I$(PYTHON_INC) nodist__qmfengine_la_SOURCES = qmfengine.cpp diff --git a/cpp/bindings/qmf/python/qmf.py b/cpp/bindings/qmf/python/qmf.py index 4800b327f1..383baad0e3 100644 --- a/cpp/bindings/qmf/python/qmf.py +++ b/cpp/bindings/qmf/python/qmf.py @@ -566,7 +566,7 @@ class Console: # attr_reader :impl def initialize(handler=None, kwargs={}): self._handler = handler - self.impl = qmfengine.ConsoleEngine() + self.impl = qmfengine.Console() self._event = qmfengine.ConsoleEvent() self._broker_list = [] @@ -741,7 +741,7 @@ class Agent(ConnectionHandler): self._agentLabel = label self._conn = None self._handler = handler - self.impl = qmfengine.AgentEngine(self._agentLabel) + self.impl = qmfengine.Agent(self._agentLabel) self._event = qmfengine.AgentEvent() self._xmtMessage = qmfengine.Message() diff --git a/cpp/bindings/qmf/qmfengine.i b/cpp/bindings/qmf/qmfengine.i index d3500c9b8f..3477215254 100644 --- a/cpp/bindings/qmf/qmfengine.i +++ b/cpp/bindings/qmf/qmfengine.i @@ -19,34 +19,35 @@ %{ -#include "qmf/AgentEngine.h" -#include "qmf/ConsoleEngine.h" -#include "qmf/ResilientConnection.h" +#include "qmf/engine/Agent.h" +#include "qmf/engine/Console.h" +#include "qmf/engine/ResilientConnection.h" %} -%include <qmf/QmfImportExport.h> -%include <qmf/Query.h> -%include <qmf/Message.h> -%include <qmf/AgentEngine.h> -%include <qmf/ConsoleEngine.h> -%include <qmf/ConnectionSettings.h> -%include <qmf/ResilientConnection.h> -%include <qmf/Typecode.h> -%include <qmf/Schema.h> -%include <qmf/Value.h> -%include <qmf/ObjectId.h> -%include <qmf/Object.h> +%include <qmf/engine/QmfEngineImportExport.h> +%include <qmf/engine/Query.h> +%include <qmf/engine/Message.h> +%include <qmf/engine/Agent.h> +%include <qmf/engine/Console.h> +%include <qmf/engine/ConnectionSettings.h> +%include <qmf/engine/ResilientConnection.h> +%include <qmf/engine/Typecode.h> +%include <qmf/engine/Schema.h> +%include <qmf/engine/Value.h> +%include <qmf/engine/ObjectId.h> +%include <qmf/engine/Object.h> %inline { using namespace std; -using namespace qmf; +using namespace qmf::engine; namespace qmf { +namespace engine { - +} } } diff --git a/cpp/bindings/qmf/ruby/Makefile.am b/cpp/bindings/qmf/ruby/Makefile.am index 0537dd1cd8..34096da9ee 100644 --- a/cpp/bindings/qmf/ruby/Makefile.am +++ b/cpp/bindings/qmf/ruby/Makefile.am @@ -23,23 +23,22 @@ INCLUDES = -I$(top_srcdir)/include -I$(top_builddir)/include -I$(top_srcdir)/src EXTRA_DIST = ruby.i BUILT_SOURCES = qmfengine.cpp -generated_file_list = qmfengine.cpp rubylibdir = $(RUBY_LIB) dist_rubylib_DATA = qmf.rb -$(generated_file_list): $(srcdir)/ruby.i $(srcdir)/../qmfengine.i +qmfengine.cpp: $(srcdir)/ruby.i $(srcdir)/../qmfengine.i $(SWIG) -ruby -c++ -Wall -I/usr/include $(INCLUDES) $(QPID_CXXFLAGS) -o qmfengine.cpp $(srcdir)/ruby.i rubylibarchdir = $(RUBY_LIB_ARCH) rubylibarch_LTLIBRARIES = qmfengine.la qmfengine_la_LDFLAGS = -avoid-version -module -shrext ".$(RUBY_DLEXT)" -qmfengine_la_LIBADD = $(RUBY_LIBS) -L$(top_builddir)/src/.libs -lqpidclient $(top_builddir)/src/libqmfagent.la +qmfengine_la_LIBADD = $(RUBY_LIBS) -L$(top_builddir)/src/.libs -lqpidclient $(top_builddir)/src/libqmfengine.la qmfengine_la_CXXFLAGS = $(INCLUDES) -I$(RUBY_INC) -I$(RUBY_INC_ARCH) nodist_qmfengine_la_SOURCES = qmfengine.cpp -CLEANFILES = $(generated_file_list) +CLEANFILES = qmfengine.cpp endif # HAVE_RUBY_DEVEL diff --git a/cpp/bindings/qmf/ruby/qmf.rb b/cpp/bindings/qmf/ruby/qmf.rb index 265d2ce192..c469376ff4 100644 --- a/cpp/bindings/qmf/ruby/qmf.rb +++ b/cpp/bindings/qmf/ruby/qmf.rb @@ -570,6 +570,10 @@ module Qmf def args Arguments.new(@impl.getArgs) end + + def method_missing(name, *extra_args) + args.__send__(name, extra_args) + end end ##============================================================================== @@ -643,6 +647,10 @@ module Qmf def typecode @impl.getType end + + def to_s + name + end end class SchemaMethod @@ -669,6 +677,10 @@ module Qmf def name @impl.getName end + + def to_s + name + end end class SchemaProperty @@ -689,6 +701,10 @@ module Qmf def name @impl.getName end + + def to_s + name + end end class SchemaStatistic @@ -706,6 +722,10 @@ module Qmf def name @impl.getName end + + def to_s + name + end end class SchemaClassKey @@ -816,7 +836,7 @@ module Qmf def initialize(handler = nil, kwargs={}) super() @handler = handler - @impl = Qmfengine::ConsoleEngine.new + @impl = Qmfengine::Console.new @event = Qmfengine::ConsoleEvent.new @broker_list = [] @cv = new_cond @@ -902,9 +922,15 @@ module Qmf def objects(query, kwargs = {}) timeout = 30 + kwargs.merge!(query) if query.class == Hash + if kwargs.include?(:timeout) timeout = kwargs[:timeout] + kwargs.delete(:timeout) end + + query = Query.new(kwargs) if query.class == Hash + synchronize do @sync_count = 1 @sync_result = [] @@ -918,6 +944,18 @@ module Qmf end end + # Return one and only one object or nil. + def object(query, kwargs = {}) + objs = objects(query, kwargs) + return objs.length == 1 ? objs[0] : nil + end + + # Return the first of potentially many objects. + def first_object(query, kwargs = {}) + objs = objects(query, kwargs) + return objs.length > 0 ? objs[0] : nil + end + def _get_result(list, context) synchronize do list.each do |item| @@ -1120,7 +1158,7 @@ module Qmf end @conn = nil @handler = handler - @impl = Qmfengine::AgentEngine.new(@agentLabel) + @impl = Qmfengine::Agent.new(@agentLabel) @event = Qmfengine::AgentEvent.new @xmtMessage = Qmfengine::Message.new end diff --git a/cpp/bindings/qmf/tests/ruby_console_test.rb b/cpp/bindings/qmf/tests/ruby_console_test.rb index 29f7be9db0..9a33b5cdc6 100755 --- a/cpp/bindings/qmf/tests/ruby_console_test.rb +++ b/cpp/bindings/qmf/tests/ruby_console_test.rb @@ -38,9 +38,8 @@ class ConsoleTest < ConsoleTestBase end def test_B_basic_method_invocation - parents = @qmfc.objects(Qmf::Query.new(:class => "parent")) - assert_equal(parents.size, 1, "Number of 'parent' objects") - parent = parents[0] + parent = @qmfc.object(:class => "parent") + assert(parent, "Number of 'parent' objects") for seq in 0...10 result = parent.echo(seq) assert_equal(result.status, 0, "Method Response Status") @@ -54,9 +53,8 @@ class ConsoleTest < ConsoleTestBase end def test_C_basic_types_numeric_big - parents = @qmfc.objects(Qmf::Query.new(:class =>"parent")) - assert_equal(parents.size, 1, "Number of parent objects") - parent = parents[0] + parent = @qmfc.object(:class =>"parent") + assert(parent, "Number of parent objects") result = parent.set_numerics("big") assert_equal(result.status, 0, "Method Response Status") @@ -76,9 +74,8 @@ class ConsoleTest < ConsoleTestBase end def test_C_basic_types_numeric_small - parents = @qmfc.objects(Qmf::Query.new(:class =>"parent")) - assert_equal(parents.size, 1, "Number of parent objects") - parent = parents[0] + parent = @qmfc.object(:class =>"parent") + assert(parent, "Number of parent objects") result = parent.set_numerics("small") assert_equal(result.status, 0, "Method Response Status") @@ -98,9 +95,8 @@ class ConsoleTest < ConsoleTestBase end def test_C_basic_types_numeric_negative - parents = @qmfc.objects(Qmf::Query.new(:class =>"parent")) - assert_equal(parents.size, 1, "Number of parent objects") - parent = parents[0] + parent = @qmfc.object(:class =>"parent") + assert(parent, "Number of parent objects") result = parent.set_numerics("negative") assert_equal(result.status, 0, "Method Response Status") @@ -120,9 +116,8 @@ class ConsoleTest < ConsoleTestBase end def test_C_basic_types_string_short - parents = @qmfc.objects(Qmf::Query.new(:class =>"parent")) - assert_equal(parents.size, 1, "Number of parent objects") - parent = parents[0] + parent = @qmfc.object(:class =>"parent") + assert(parent, "Number of parent objects") strings = [] strings << "" @@ -148,9 +143,8 @@ class ConsoleTest < ConsoleTestBase end def test_C_basic_types_string_long - parents = @qmfc.objects(Qmf::Query.new(:class =>"parent")) - assert_equal(parents.size, 1, "Number of parent objects") - parent = parents[0] + parent = @qmfc.object(:class =>"parent") + assert(parent, "Number of parent objects") strings = [] strings << "" @@ -174,9 +168,8 @@ class ConsoleTest < ConsoleTestBase end def test_D_userid_for_method - parents = @qmfc.objects(Qmf::Query.new(:class => "parent")) - assert_equal(parents.size, 1, "Number of parent objects") - parent = parents[0] + parent = @qmfc.object(:class => "parent") + assert(parent, "Number of parent objects") result = parent.probe_userid assert_equal(result.status, 0, "Method Response Status") diff --git a/cpp/bindings/qmf/tests/test_base.rb b/cpp/bindings/qmf/tests/test_base.rb index 80cc43a12d..947753b02a 100644 --- a/cpp/bindings/qmf/tests/test_base.rb +++ b/cpp/bindings/qmf/tests/test_base.rb @@ -62,6 +62,11 @@ class ConsoleTestBase < Qmf::ConsoleHandler raise "Assertion failed: #{left} != #{right}#{text}" unless left == right end + def assert(condition, in_text=nil) + text = " (#{in_text})" if in_text + raise "Assertion failed: #{left} != #{right}#{text}" unless condition + end + def fail(text) raise text end |
