activemq 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +7 -0
- data/.rvmrc +1 -0
- data/Gemfile +14 -0
- data/Gemfile.lock +52 -0
- data/README.textile +52 -0
- data/Rakefile +14 -0
- data/activemq.gemspec +29 -0
- data/ext/ActiveMQ/Connection.cpp +16 -0
- data/ext/ActiveMQ/ConnectionFactory.cpp +30 -0
- data/ext/ActiveMQ/DeliveryMode.cpp +10 -0
- data/ext/ActiveMQ/Destinations.cpp +28 -0
- data/ext/ActiveMQ/Message.cpp +68 -0
- data/ext/ActiveMQ/MessageProducer.cpp +42 -0
- data/ext/ActiveMQ/Session.cpp +63 -0
- data/ext/ActiveMQ/TextMessage.cpp +11 -0
- data/ext/ActiveMQ/activemq.cpp +44 -0
- data/ext/ActiveMQ/activemq.hpp +40 -0
- data/ext/ActiveMQ/extconf.rb +51 -0
- data/lib/activemq.rb +5 -0
- data/lib/activemq/version.rb +3 -0
- data/spec/lib/activemq/connection_factory_spec.rb +111 -0
- data/spec/lib/activemq/connection_spec.rb +52 -0
- data/spec/lib/activemq/delivery_mode_spec.rb +30 -0
- data/spec/lib/activemq/destinations_spec.rb +63 -0
- data/spec/lib/activemq/message_producer_spec.rb +77 -0
- data/spec/lib/activemq/message_spec.rb +6 -0
- data/spec/lib/activemq/session_spec.rb +92 -0
- data/spec/lib/activemq/text_message_spec.rb +25 -0
- data/spec/lib/activemq_spec.rb +110 -0
- data/spec/matchers_helper.rb +9 -0
- data/spec/spec_helper.rb +41 -0
- metadata +143 -0
data/.gitignore
ADDED
data/.rvmrc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
rvm 1.8.7-p302@rbactivemq --create
|
data/Gemfile
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
source "http://rubygems.org"
|
2
|
+
|
3
|
+
# Specify your gem's dependencies in RBActivemq.gemspec
|
4
|
+
gemspec
|
5
|
+
|
6
|
+
group :test, :development do
|
7
|
+
platforms :mri_18 do
|
8
|
+
gem "ruby-debug"
|
9
|
+
end
|
10
|
+
|
11
|
+
platforms :mri_19 do
|
12
|
+
gem "ruby-debug19", :require => 'ruby-debug' if RUBY_VERSION < "1.9.3"
|
13
|
+
end
|
14
|
+
end
|
data/Gemfile.lock
ADDED
@@ -0,0 +1,52 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
activemq (0.0.1)
|
5
|
+
rice (>= 1.4.2)
|
6
|
+
|
7
|
+
GEM
|
8
|
+
remote: http://rubygems.org/
|
9
|
+
specs:
|
10
|
+
archive-tar-minitar (0.5.2)
|
11
|
+
columnize (0.3.2)
|
12
|
+
diff-lcs (1.1.2)
|
13
|
+
linecache (0.43)
|
14
|
+
linecache19 (0.5.12)
|
15
|
+
ruby_core_source (>= 0.1.4)
|
16
|
+
rake (0.8.7)
|
17
|
+
rake-compiler (0.7.7)
|
18
|
+
rake
|
19
|
+
rice (1.4.2)
|
20
|
+
rspec (2.5.0)
|
21
|
+
rspec-core (~> 2.5.0)
|
22
|
+
rspec-expectations (~> 2.5.0)
|
23
|
+
rspec-mocks (~> 2.5.0)
|
24
|
+
rspec-core (2.5.1)
|
25
|
+
rspec-expectations (2.5.0)
|
26
|
+
diff-lcs (~> 1.1.2)
|
27
|
+
rspec-mocks (2.5.0)
|
28
|
+
ruby-debug (0.10.4)
|
29
|
+
columnize (>= 0.1)
|
30
|
+
ruby-debug-base (~> 0.10.4.0)
|
31
|
+
ruby-debug-base (0.10.4)
|
32
|
+
linecache (>= 0.3)
|
33
|
+
ruby-debug-base19 (0.11.25)
|
34
|
+
columnize (>= 0.3.1)
|
35
|
+
linecache19 (>= 0.5.11)
|
36
|
+
ruby_core_source (>= 0.1.4)
|
37
|
+
ruby-debug19 (0.11.6)
|
38
|
+
columnize (>= 0.3.1)
|
39
|
+
linecache19 (>= 0.5.11)
|
40
|
+
ruby-debug-base19 (>= 0.11.19)
|
41
|
+
ruby_core_source (0.1.5)
|
42
|
+
archive-tar-minitar (>= 0.5.2)
|
43
|
+
|
44
|
+
PLATFORMS
|
45
|
+
ruby
|
46
|
+
|
47
|
+
DEPENDENCIES
|
48
|
+
activemq!
|
49
|
+
rake-compiler (>= 0.7.7)
|
50
|
+
rspec (>= 2.3.0)
|
51
|
+
ruby-debug
|
52
|
+
ruby-debug19
|
data/README.textile
ADDED
@@ -0,0 +1,52 @@
|
|
1
|
+
h1. Ruby ActiveMQ
|
2
|
+
|
3
|
+
ActiveMQ client for Ruby using openwire protocol through activemq-cpp client.
|
4
|
+
|
5
|
+
h2(#changelog). Changelog
|
6
|
+
|
7
|
+
*0.0.1* - Initial version with support to publish text messages
|
8
|
+
|
9
|
+
h2(#installing). Installing
|
10
|
+
|
11
|
+
*You must install the "ActiveMQ-cpp":http://activemq.apache.org/cms/activemq-cpp-325-release.html 3.2.5 version previously*
|
12
|
+
|
13
|
+
<pre>
|
14
|
+
<code>
|
15
|
+
gem install activemq
|
16
|
+
</code>
|
17
|
+
</pre>
|
18
|
+
|
19
|
+
If needed you can pass where is the activemq-cpp, library and includes, example:
|
20
|
+
|
21
|
+
<pre>
|
22
|
+
<code>
|
23
|
+
gem install activemq -- --with-activemq-cpp-lib=/opt/activemq-cpp-3.2.5/lib --with-activemq-cpp-include=/opt/activemq-cpp-3.2.5/include/activemq-cpp-3.2.5
|
24
|
+
</code>
|
25
|
+
</pre>
|
26
|
+
|
27
|
+
h2(#basic-usage). Basic Usage
|
28
|
+
|
29
|
+
_Considering default configuration of ActiveMQ server_
|
30
|
+
|
31
|
+
h3. Publish Message
|
32
|
+
<pre>
|
33
|
+
<code>
|
34
|
+
require 'activemq'
|
35
|
+
amqcf = ActiveMQ::ConnectionFactory.new
|
36
|
+
connection = amqcf.create_connection
|
37
|
+
session = connection.create_session
|
38
|
+
topic = session.create_topic("topic_name")
|
39
|
+
producer = session.create_producer(topic)
|
40
|
+
message = session.create_text_message("Text to send")
|
41
|
+
producer.send_message(message)
|
42
|
+
connection.close
|
43
|
+
</code>
|
44
|
+
</pre>
|
45
|
+
|
46
|
+
h2(#todo). TODO
|
47
|
+
|
48
|
+
* Add Properties to messages
|
49
|
+
* Exception listener
|
50
|
+
* Consumer by pooling
|
51
|
+
* Consumer by stream
|
52
|
+
* Work with Bytes and Map messages
|
data/Rakefile
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'bundler'
|
2
|
+
Bundler::GemHelper.install_tasks
|
3
|
+
|
4
|
+
# use rake-compiler for building the extension
|
5
|
+
require 'rake/extensiontask'
|
6
|
+
|
7
|
+
Rake::ExtensionTask.new('ActiveMQ') do |ext|
|
8
|
+
ext.source_pattern = "*.{c,cpp}"
|
9
|
+
end
|
10
|
+
|
11
|
+
require "rspec/core/rake_task"
|
12
|
+
|
13
|
+
desc "Run all examples"
|
14
|
+
RSpec::Core::RakeTask.new(:spec => "compile:ActiveMQ")
|
data/activemq.gemspec
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "activemq/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "activemq"
|
7
|
+
s.version = ActiveMQ::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["Wandenberg Peixoto"]
|
10
|
+
s.email = ["wandenberg@gmail.com"]
|
11
|
+
s.homepage = ""
|
12
|
+
s.summary = %q{ActiveMQ client for Ruby}
|
13
|
+
s.description = %q{ActiveMQ client for Ruby using openwire protocol through activemq-cpp client}
|
14
|
+
|
15
|
+
s.rubyforge_project = "activemq"
|
16
|
+
|
17
|
+
s.files = `git ls-files`.split("\n")
|
18
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
19
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
20
|
+
s.require_paths = ["lib"]
|
21
|
+
|
22
|
+
s.extensions = "ext/ActiveMQ/extconf.rb"
|
23
|
+
|
24
|
+
s.add_dependency "rice", ">= 1.4.2"
|
25
|
+
|
26
|
+
s.add_development_dependency "rake-compiler", ">= 0.7.7"
|
27
|
+
s.add_development_dependency "rspec", ">= 2.3.0"
|
28
|
+
|
29
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
#include "activemq.hpp"
|
2
|
+
|
3
|
+
void register_Connection(Module rb_module) {
|
4
|
+
|
5
|
+
cms::Session* (cms::Connection::*Connection_createSession1)(cms::Session::AcknowledgeMode) = &cms::Connection::createSession;
|
6
|
+
|
7
|
+
Data_Type< cms::Connection > rb_cConnection = define_class_under< cms::Connection >(rb_module, "Connection");
|
8
|
+
rb_cConnection.define_method("instance?", &instance, (Arg("class")));
|
9
|
+
|
10
|
+
rb_cConnection.define_method("create_session", Connection_createSession1, (Arg("acknowledge_mode") = cms::Session::AUTO_ACKNOWLEDGE));
|
11
|
+
|
12
|
+
rb_cConnection.define_method("client_id", &cms::Connection::getClientID);
|
13
|
+
rb_cConnection.define_method("client_id=", &cms::Connection::setClientID, (Arg("client_id")));
|
14
|
+
|
15
|
+
rb_cConnection.define_method("close", &cms::Connection::close);
|
16
|
+
}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
#include "activemq.hpp"
|
2
|
+
|
3
|
+
void register_ConnectionFactory(Module rb_module)
|
4
|
+
{
|
5
|
+
Data_Type< activemq::core::ActiveMQConnectionFactory > rb_cConnectionFactory = define_class_under< activemq::core::ActiveMQConnectionFactory >(rb_module, "ConnectionFactory");
|
6
|
+
rb_cConnectionFactory.define_method("instance?", &instance, (Arg("class")));
|
7
|
+
|
8
|
+
rb_cConnectionFactory.define_constructor(Constructor< activemq::core::ActiveMQConnectionFactory,const std::string&,const std::string&,const std::string& >(), (Arg("broker_url") = new std::string(activemq::core::ActiveMQConnectionFactory::DEFAULT_URI), Arg("username") = new std::string(""), Arg("password") = new std::string("")));
|
9
|
+
rb_cConnectionFactory.const_set("DEFAULT_URI", to_ruby(activemq::core::ActiveMQConnectionFactory::DEFAULT_URI));
|
10
|
+
|
11
|
+
rb_cConnectionFactory.define_method("username", &activemq::core::ActiveMQConnectionFactory::getUsername);
|
12
|
+
rb_cConnectionFactory.define_method("username=", &activemq::core::ActiveMQConnectionFactory::setUsername, (Arg("username")));
|
13
|
+
|
14
|
+
rb_cConnectionFactory.define_method("password", &activemq::core::ActiveMQConnectionFactory::getPassword);
|
15
|
+
rb_cConnectionFactory.define_method("password=", &activemq::core::ActiveMQConnectionFactory::setPassword, (Arg("password")));
|
16
|
+
|
17
|
+
rb_cConnectionFactory.define_method("broker_url", &activemq::core::ActiveMQConnectionFactory::getBrokerURL);
|
18
|
+
rb_cConnectionFactory.define_method("broker_url=", &activemq::core::ActiveMQConnectionFactory::setBrokerURL, (Arg("broker_url")));
|
19
|
+
|
20
|
+
rb_cConnectionFactory.define_method("client_id", &activemq::core::ActiveMQConnectionFactory::getClientId);
|
21
|
+
rb_cConnectionFactory.define_method("client_id=", &activemq::core::ActiveMQConnectionFactory::setClientId, (Arg("client_id")));
|
22
|
+
|
23
|
+
cms::Connection* (activemq::core::ActiveMQConnectionFactory::*ConnectionFactory_createConnection0)() = &activemq::core::ActiveMQConnectionFactory::createConnection;
|
24
|
+
cms::Connection* (activemq::core::ActiveMQConnectionFactory::*ConnectionFactory_createConnection2)(const std::string&, const std::string&) = &activemq::core::ActiveMQConnectionFactory::createConnection;
|
25
|
+
cms::Connection* (activemq::core::ActiveMQConnectionFactory::*ConnectionFactory_createConnection3)(const std::string&, const std::string&, const std::string&) = &activemq::core::ActiveMQConnectionFactory::createConnection;
|
26
|
+
|
27
|
+
rb_cConnectionFactory.define_method("create_connection", ConnectionFactory_createConnection0);
|
28
|
+
rb_cConnectionFactory.define_method("create_connection_for", ConnectionFactory_createConnection2, (Arg("username"), Arg("password")));
|
29
|
+
rb_cConnectionFactory.define_method("create_connection_for_client", ConnectionFactory_createConnection3, (Arg("username"), Arg("password"), Arg("clientId")));
|
30
|
+
}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
#include "activemq.hpp"
|
2
|
+
|
3
|
+
void register_DeliveryMode(Module rb_module) {
|
4
|
+
Data_Type< cms::DeliveryMode > rb_cDeliveryMode = define_class_under< cms::DeliveryMode >(rb_module, "DeliveryMode");
|
5
|
+
rb_cDeliveryMode.define_constructor(Constructor< cms::DeliveryMode >());
|
6
|
+
rb_cDeliveryMode.define_method("instance?", &instance, (Arg("class")));
|
7
|
+
|
8
|
+
rb_cDeliveryMode.const_set("PERSISTENT", to_ruby((int)cms::DeliveryMode::PERSISTENT));
|
9
|
+
rb_cDeliveryMode.const_set("NON_PERSISTENT", to_ruby((int)cms::DeliveryMode::NON_PERSISTENT));
|
10
|
+
}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
#include "activemq.hpp"
|
2
|
+
|
3
|
+
void register_Destinations(Module rb_module) {
|
4
|
+
Data_Type< cms::Destination > rb_cDestination = define_class_under< cms::Destination >(rb_module, "Destination");
|
5
|
+
rb_cDestination.define_method("instance?", &instance, (Arg("class")));
|
6
|
+
|
7
|
+
rb_cDestination.define_method("destination_type", &cms::Destination::getDestinationType);
|
8
|
+
// rb_cDestination.define_method("clone", &cms::Destination::clone);
|
9
|
+
// rb_cDestination.define_method("copy", &cms::Destination::copy, (Arg("source")));
|
10
|
+
|
11
|
+
Data_Type< cms::Topic > rb_cTopic = define_class_under< cms::Topic, cms::Destination >(rb_module, "Topic");
|
12
|
+
rb_cTopic.define_method("name", &cms::Topic::getTopicName);
|
13
|
+
|
14
|
+
Data_Type< cms::Queue > rb_cQueue = define_class_under< cms::Queue,cms::Destination >(rb_module, "Queue");
|
15
|
+
rb_cQueue.define_method("name", &cms::Queue::getQueueName);
|
16
|
+
|
17
|
+
Data_Type< cms::TemporaryTopic > rb_cTemporaryTopic = define_class_under< cms::TemporaryTopic, cms::Destination >(rb_module, "TemporaryTopic");
|
18
|
+
rb_cTemporaryTopic.define_method("name", &cms::TemporaryTopic::getTopicName);
|
19
|
+
|
20
|
+
Data_Type< cms::TemporaryQueue > rb_cTemporaryQueue = define_class_under< cms::TemporaryQueue,cms::Destination >(rb_module, "TemporaryQueue");
|
21
|
+
rb_cTemporaryQueue.define_method("name", &cms::TemporaryQueue::getQueueName);
|
22
|
+
|
23
|
+
Enum<cms::Destination::DestinationType> rb_eDestinationType = define_enum<cms::Destination::DestinationType>("DestinationType", rb_cDestination);
|
24
|
+
rb_eDestinationType.define_value("TOPIC", cms::Destination::TOPIC);
|
25
|
+
rb_eDestinationType.define_value("QUEUE", cms::Destination::QUEUE);
|
26
|
+
rb_eDestinationType.define_value("TEMPORARY_TOPIC", cms::Destination::TEMPORARY_TOPIC);
|
27
|
+
rb_eDestinationType.define_value("TEMPORARY_QUEUE", cms::Destination::TEMPORARY_QUEUE);
|
28
|
+
}
|
@@ -0,0 +1,68 @@
|
|
1
|
+
#include "activemq.hpp"
|
2
|
+
|
3
|
+
void register_Message(Module rb_module) {
|
4
|
+
Data_Type< cms::Message > rb_cMessage = define_class_under< cms::Message >(rb_module, "Message");
|
5
|
+
rb_cMessage.define_method("instance?", &instance, (Arg("class")));
|
6
|
+
|
7
|
+
// rb_cMessage.define_method("getIntProperty", &cms::Message::getIntProperty, (Arg("name")));
|
8
|
+
// rb_cMessage.define_method("setIntProperty", &cms::Message::setIntProperty, (Arg("name"), Arg("value")));
|
9
|
+
//
|
10
|
+
// rb_cMessage.define_method("getByteProperty", &cms::Message::getByteProperty, (Arg("name")));
|
11
|
+
// rb_cMessage.define_method("setByteProperty", &cms::Message::setByteProperty, (Arg("name"), Arg("value")));
|
12
|
+
//
|
13
|
+
// rb_cMessage.define_method("getBooleanProperty", &cms::Message::getBooleanProperty, (Arg("name")));
|
14
|
+
// rb_cMessage.define_method("setBooleanProperty", &cms::Message::setBooleanProperty, (Arg("name"), Arg("value")));
|
15
|
+
//
|
16
|
+
// rb_cMessage.define_method("getDoubleProperty", &cms::Message::getDoubleProperty, (Arg("name")));
|
17
|
+
// rb_cMessage.define_method("setDoubleProperty", &cms::Message::setDoubleProperty, (Arg("name"), Arg("value")));
|
18
|
+
//
|
19
|
+
// rb_cMessage.define_method("getFloatProperty", &cms::Message::getFloatProperty, (Arg("name")));
|
20
|
+
// rb_cMessage.define_method("setFloatProperty", &cms::Message::setFloatProperty, (Arg("name"), Arg("value")));
|
21
|
+
//
|
22
|
+
// rb_cMessage.define_method("getLongProperty", &cms::Message::getLongProperty, (Arg("name")));
|
23
|
+
// rb_cMessage.define_method("setLongProperty", &cms::Message::setLongProperty, (Arg("name"), Arg("value")));
|
24
|
+
//
|
25
|
+
// rb_cMessage.define_method("getShortProperty", &cms::Message::getShortProperty, (Arg("name")));
|
26
|
+
// rb_cMessage.define_method("setShortProperty", &cms::Message::setShortProperty, (Arg("name"), Arg("value")));
|
27
|
+
//
|
28
|
+
// rb_cMessage.define_method("getStringProperty", &cms::Message::getStringProperty, (Arg("name")));
|
29
|
+
// rb_cMessage.define_method("setStringProperty", &cms::Message::setStringProperty, (Arg("name"), Arg("value")));
|
30
|
+
//
|
31
|
+
// rb_cMessage.define_method("clone", &cms::Message::clone);
|
32
|
+
|
33
|
+
// rb_cMessage.define_method("acknowledge", &cms::Message::acknowledge);
|
34
|
+
// rb_cMessage.define_method("clearBody", &cms::Message::clearBody);
|
35
|
+
// rb_cMessage.define_method("clearProperties", &cms::Message::clearProperties);
|
36
|
+
// rb_cMessage.define_method("propertyExists?", &cms::Message::propertyExists, (Arg("name")));
|
37
|
+
// rb_cMessage.define_method("propertyNames", &cms::Message::getPropertyNames);
|
38
|
+
//
|
39
|
+
// rb_cMessage.define_method("destination", &cms::Message::getCMSDestination);
|
40
|
+
// rb_cMessage.define_method("destination=", &cms::Message::setCMSDestination, (Arg("destination")));
|
41
|
+
//
|
42
|
+
// rb_cMessage.define_method("expiration", &cms::Message::getCMSExpiration);
|
43
|
+
// rb_cMessage.define_method("expiration=", &cms::Message::setCMSExpiration, (Arg("expireTime")));
|
44
|
+
//
|
45
|
+
// rb_cMessage.define_method("message_id", &cms::Message::getCMSMessageID);
|
46
|
+
// rb_cMessage.define_method("message_id=", &cms::Message::setCMSMessageID, (Arg("id")));
|
47
|
+
//
|
48
|
+
// rb_cMessage.define_method("priority", &cms::Message::getCMSPriority);
|
49
|
+
// rb_cMessage.define_method("priority=", &cms::Message::setCMSPriority, (Arg("priority")));
|
50
|
+
//
|
51
|
+
// rb_cMessage.define_method("redelivered?", &cms::Message::getCMSRedelivered);
|
52
|
+
// rb_cMessage.define_method("redelivered=", &cms::Message::setCMSRedelivered, (Arg("redelivered")));
|
53
|
+
//
|
54
|
+
// rb_cMessage.define_method("reply_to", &cms::Message::getCMSReplyTo);
|
55
|
+
// rb_cMessage.define_method("reply_to=", &cms::Message::setCMSReplyTo, (Arg("destination")));
|
56
|
+
//
|
57
|
+
// rb_cMessage.define_method("timestamp", &cms::Message::getCMSTimestamp);
|
58
|
+
// rb_cMessage.define_method("timestamp=", &cms::Message::setCMSTimestamp, (Arg("timeStamp")));
|
59
|
+
//
|
60
|
+
// rb_cMessage.define_method("type", &cms::Message::getCMSType);
|
61
|
+
// rb_cMessage.define_method("type=", &cms::Message::setCMSType, (Arg("type")));
|
62
|
+
//
|
63
|
+
// rb_cMessage.define_method("correlation_id", &cms::Message::getCMSCorrelationID);
|
64
|
+
// rb_cMessage.define_method("correlation_id=", &cms::Message::setCMSCorrelationID, (Arg("correlationId")));
|
65
|
+
//
|
66
|
+
// rb_cMessage.define_method("delivery_mode", &cms::Message::getCMSDeliveryMode);
|
67
|
+
// rb_cMessage.define_method("delivery_mode=", &cms::Message::setCMSDeliveryMode, (Arg("mode")));
|
68
|
+
}
|
@@ -0,0 +1,42 @@
|
|
1
|
+
#include "activemq.hpp"
|
2
|
+
|
3
|
+
void register_MessageProducer(Module rb_module) {
|
4
|
+
Data_Type< cms::MessageProducer > rb_cMessageProducer = define_class_under< cms::MessageProducer >(rb_module, "MessageProducer");
|
5
|
+
rb_cMessageProducer.define_method("instance?", &instance, (Arg("class")));
|
6
|
+
|
7
|
+
rb_cMessageProducer.define_method("time_to_live", &cms::MessageProducer::getTimeToLive);
|
8
|
+
rb_cMessageProducer.define_method("time_to_live=", &cms::MessageProducer::setTimeToLive, (Arg("time")));
|
9
|
+
|
10
|
+
rb_cMessageProducer.define_method("delivery_mode", &cms::MessageProducer::getDeliveryMode);
|
11
|
+
rb_cMessageProducer.define_method("delivery_mode=", &cms::MessageProducer::setDeliveryMode, (Arg("mode")));
|
12
|
+
|
13
|
+
rb_cMessageProducer.define_method("priority", &cms::MessageProducer::getPriority);
|
14
|
+
rb_cMessageProducer.define_method("priority=", &cms::MessageProducer::setPriority, (Arg("priority")));
|
15
|
+
|
16
|
+
rb_cMessageProducer.define_method("disable_message_time_stamp?", &cms::MessageProducer::getDisableMessageTimeStamp);
|
17
|
+
rb_cMessageProducer.define_method("disable_message_time_stamp=", &cms::MessageProducer::setDisableMessageTimeStamp, (Arg("value")));
|
18
|
+
|
19
|
+
rb_cMessageProducer.define_method("disable_message_id?", &cms::MessageProducer::getDisableMessageID);
|
20
|
+
rb_cMessageProducer.define_method("disable_message_id=", &cms::MessageProducer::setDisableMessageID, (Arg("value")));
|
21
|
+
|
22
|
+
// {
|
23
|
+
// typedef void ( cms::MessageProducer::*send_func_type )( cms::Message* message, int deliveryMode, int priority, long long int timeToLive );
|
24
|
+
// rb_cMessageProducer.define_method("send_message_with_attrs", send_func_type( &cms::MessageProducer::send ), (Arg("message"), Arg("delivery_mode"), Arg("priority"), Arg("time_to_live")));
|
25
|
+
// }
|
26
|
+
|
27
|
+
{
|
28
|
+
typedef void ( cms::MessageProducer::*send_func_type )( cms::Message* message );
|
29
|
+
rb_cMessageProducer.define_method("send_message", send_func_type( &cms::MessageProducer::send ), (Arg("message")));
|
30
|
+
}
|
31
|
+
|
32
|
+
// {
|
33
|
+
// typedef void ( cms::MessageProducer::*send_func_type )( const cms::Destination* destination, cms::Message* message );
|
34
|
+
// rb_cMessageProducer.define_method("send_message_to", send_func_type( &cms::MessageProducer::send ), (Arg("destination"), Arg("message")));
|
35
|
+
// }
|
36
|
+
//
|
37
|
+
// {
|
38
|
+
// typedef void ( cms::MessageProducer::*send_func_type )( const cms::Destination* destination, cms::Message* message, int deliveryMode, int priority, long long int timeToLive );
|
39
|
+
// rb_cMessageProducer.define_method("send_message_to_with_attrs", send_func_type( &cms::MessageProducer::send ), (Arg("destination"), Arg("message"), Arg("deliveryMode"), Arg("priority"), Arg("timeToLive")));
|
40
|
+
// }
|
41
|
+
|
42
|
+
}
|
@@ -0,0 +1,63 @@
|
|
1
|
+
#include "activemq.hpp"
|
2
|
+
|
3
|
+
template<>
|
4
|
+
Rice::Object to_ruby<cms::Session::AcknowledgeMode >(cms::Session::AcknowledgeMode const & a) {
|
5
|
+
return Rice::Data_Object<cms::Session::AcknowledgeMode >(new cms::Session::AcknowledgeMode(a), Rice::Data_Type<cms::Session::AcknowledgeMode >::klass(), 0, 0);
|
6
|
+
}
|
7
|
+
|
8
|
+
void register_Session(Module rb_module) {
|
9
|
+
|
10
|
+
// cms::MessageConsumer* (cms::Session::*Session_createConsumer1)(const cms::Destination*) = &cms::Session::createConsumer;
|
11
|
+
// cms::MessageConsumer* (cms::Session::*Session_createConsumer2)(const cms::Destination*, const std::string&) = &cms::Session::createConsumer;
|
12
|
+
// cms::MessageConsumer* (cms::Session::*Session_createConsumer3)(const cms::Destination*, const std::string&, bool) = &cms::Session::createConsumer;
|
13
|
+
cms::TextMessage* (cms::Session::*Session_createTextMessage1)(const std::string&) = &cms::Session::createTextMessage;
|
14
|
+
// cms::BytesMessage* (cms::Session::*Session_createBytesMessage0)() = &cms::Session::createBytesMessage;
|
15
|
+
// cms::BytesMessage* (cms::Session::*Session_createBytesMessage2)(const unsigned char* bytes, int bytesSize) = &cms::Session::createBytesMessage;
|
16
|
+
// cms::QueueBrowser* (cms::Session::*Session_createBrowser1)(const cms::Queue* queue) = &cms::Session::createBrowser;
|
17
|
+
// cms::QueueBrowser* (cms::Session::*Session_createBrowser2)(const cms::Queue* queue, const std::string& selector) = &cms::Session::createBrowser;
|
18
|
+
|
19
|
+
Data_Type< cms::Session > rb_cSession = define_class_under< cms::Session >(rb_module, "Session");
|
20
|
+
rb_cSession.define_method("instance?", &instance, (Arg("class")));
|
21
|
+
// rb_cSession.define_method("createBytesMessage", Session_createBytesMessage0);
|
22
|
+
// rb_cSession.define_method("createBytesMessage2", Session_createBytesMessage2, (Arg("bytes"), Arg("bytesSize")));
|
23
|
+
|
24
|
+
rb_cSession.define_method("create_text_message", Session_createTextMessage1, (Arg("text") = new std::string("")));
|
25
|
+
|
26
|
+
rb_cSession.define_method("create_message", &cms::Session::createMessage);
|
27
|
+
|
28
|
+
// rb_cSession.define_method("create_stream_message", &cms::Session::createStreamMessage);
|
29
|
+
// rb_cSession.define_method("create_map_message", &cms::Session::createMapMessage);
|
30
|
+
|
31
|
+
// rb_cSession.define_method("createConsumer", Session_createConsumer1, (Arg("destination")));
|
32
|
+
// rb_cSession.define_method("createConsumer2", Session_createConsumer2, (Arg("destination"), Arg("selector")));
|
33
|
+
// rb_cSession.define_method("createConsumer3", Session_createConsumer3, (Arg("destination"), Arg("selector"), Arg("noLocal")));
|
34
|
+
|
35
|
+
// rb_cSession.define_method("create_durable_consumer", &cms::Session::createDurableConsumer, (Arg("destination"), Arg("name"), Arg("selector"), Arg("noLocal") = (bool)(false)));
|
36
|
+
rb_cSession.define_method("create_producer", &cms::Session::createProducer, (Arg("destination")));
|
37
|
+
|
38
|
+
rb_cSession.define_method("create_queue", &cms::Session::createQueue, (Arg("name")));
|
39
|
+
rb_cSession.define_method("create_topic", &cms::Session::createTopic, (Arg("name")));
|
40
|
+
rb_cSession.define_method("create_temporary_queue", &cms::Session::createTemporaryQueue);
|
41
|
+
rb_cSession.define_method("create_temporary_topic", &cms::Session::createTemporaryTopic);
|
42
|
+
|
43
|
+
rb_cSession.define_method("acknowledge_mode", &cms::Session::getAcknowledgeMode);
|
44
|
+
|
45
|
+
rb_cSession.define_method("transacted?", &cms::Session::isTransacted);
|
46
|
+
|
47
|
+
rb_cSession.define_method("close", &cms::Session::close);
|
48
|
+
rb_cSession.define_method("commit", &cms::Session::commit);
|
49
|
+
rb_cSession.define_method("rollback", &cms::Session::rollback);
|
50
|
+
rb_cSession.define_method("recover", &cms::Session::recover);
|
51
|
+
|
52
|
+
// rb_cSession.define_method("unsubscribe", &cms::Session::unsubscribe, (Arg("name")));
|
53
|
+
|
54
|
+
// rb_cSession.define_method("createBrowser", Session_createBrowser1, (Arg("queue")));
|
55
|
+
// rb_cSession.define_method("createBrowser2", Session_createBrowser2, (Arg("queue"), Arg("selector")));
|
56
|
+
|
57
|
+
Enum<cms::Session::AcknowledgeMode> rb_eAcknowledgeMode = define_enum<cms::Session::AcknowledgeMode>("AcknowledgeMode", rb_cSession);
|
58
|
+
|
59
|
+
rb_eAcknowledgeMode.define_value("AUTO_ACKNOWLEDGE", cms::Session::AUTO_ACKNOWLEDGE);
|
60
|
+
rb_eAcknowledgeMode.define_value("DUPS_OK_ACKNOWLEDGE", cms::Session::DUPS_OK_ACKNOWLEDGE);
|
61
|
+
rb_eAcknowledgeMode.define_value("CLIENT_ACKNOWLEDGE", cms::Session::CLIENT_ACKNOWLEDGE);
|
62
|
+
rb_eAcknowledgeMode.define_value("SESSION_TRANSACTED", cms::Session::SESSION_TRANSACTED);
|
63
|
+
}
|