blob: e6a2681c15f6977de8544c4a418edf5248c2dae3 [file] [log] [blame]
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
use strict;
use warnings;
use cqpid_perl;
package qpid::messaging;
use qpid::messaging::codec;
use qpid::messaging::Address;
use qpid::messaging::Duration;
use qpid::messaging::Message;
use qpid::messaging::Receiver;
use qpid::messaging::Sender;
use qpid::messaging::Session;
use qpid::messaging::Connection;
1;
__END__
=pod
=head1 NAME
qpid::messaging
=head1 DESCRIPTION
The Qpid Messaging framework is an enterprise messaging framework
based on the open-source AMQP protocol.
=head1 EXAMPLE
Here is a simple example application. It creates a link to a broker located
on a system named C<broker.myqpiddomain.com>. It then creates a new messaging
queue named C<qpid-examples> and publishes a message to it. It then consumes
that same message and closes the connection.
use strict;
use warnings;
use qpid;
# create a connection, open it and then create a session named "session1"
my $conn = new qpid::messaging::Connection("broker.myqpiddomain.com");
$conn->open();
my $session = $conn->create_session("session1");
# create a sender and a receiver
# the sender marks the queue as one that is deleted when the sender disconnects
my $send = $session->create_sender("qpid-examples;{create:always}");
my $recv = $session->create_receiver("qpid-examples");
# create an outgoing message and send it
my $outgoing = new qpid::messaging::Message();
$outgoing->set_content("The time is " . localtime(time)");
$send->send($outgoing);
# set the receiver's capacity to 10 and then check out many messages are pending
$recv->set_capacity(10);
print "There are " . $recv->get_available . " messages waiting.\n";
# get the nextwaitingmessage, which should be in the local queue now,
# and output the contents
my $incoming = $recv->fetch();
print "Received the following message: " . $incoming->get_content() . "\n";
# the output should be the text that was sent earlier
# acknowledge the message, letting the sender know the message was received
printf "The sender currently has " . $send->get_unsettled . " message(s) pending.\n";
# should report 1 unsettled message
$session->acknowledge(); # acknowledges all pending messages
print "Now sender currently has " . $send->get_unsettled . " message(s) pending.\n";
# should report 0 unsettled messages
# close the connection
$conn->close