summaryrefslogtreecommitdiff
path: root/cpp/bindings
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/bindings')
-rw-r--r--cpp/bindings/qmf/python/Makefile.am2
-rw-r--r--cpp/bindings/qmf/python/qmf.py4
-rw-r--r--cpp/bindings/qmf/qmfengine.i35
-rw-r--r--cpp/bindings/qmf/ruby/Makefile.am7
-rw-r--r--cpp/bindings/qmf/ruby/qmf.rb42
-rwxr-xr-xcpp/bindings/qmf/tests/ruby_console_test.rb35
-rw-r--r--cpp/bindings/qmf/tests/test_base.rb5
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