%PDF- %PDF-
Direktori : /data/old/usr/share/perl5/vendor_perl/Net/STOMP/Client/ |
Current File : //data/old/usr/share/perl5/vendor_perl/Net/STOMP/Client/Peer.pm |
#+############################################################################## # # # File: Net/STOMP/Client/Peer.pm # # # # Description: Peer support for Net::STOMP::Client # # # #-############################################################################## # # module definition # package Net::STOMP::Client::Peer; use strict; use warnings; our $VERSION = "2.5"; our $REVISION = sprintf("%d.%02d", q$Revision: 2.2 $ =~ /(\d+)\.(\d+)/); # # used modules # use Params::Validate qw(validate :types); # # constants # use constant I_PROTO => 0; use constant I_HOST => 1; use constant I_PORT => 2; use constant I_ADDR => 3; #+++############################################################################ # # # constructor # # # #---############################################################################ my %new_options = ( "proto" => { type => SCALAR, regex => qr/^(tcp|ssl|stomp|stomp\+ssl)$/, }, "host" => { type => SCALAR, regex => qr/^[a-z0-9\.\-\:]+$/, }, "port" => { type => SCALAR, regex => qr/^\d+$/, }, "addr" => { optional => 1, type => SCALAR, regex => qr/^\d+\.\d+\.\d+\.\d+$/, }, ); sub new : method { my($class, %option, $object); $class = shift(@_); %option = validate(@_, \%new_options); $object = [ @option{ qw(proto host port addr) } ]; return(bless($object, $class)); } #+++############################################################################ # # # getters # # # #---############################################################################ sub proto : method { my($self) = @_; return($self->[I_PROTO]); } sub host : method { my($self) = @_; return($self->[I_HOST]); } sub port : method { my($self) = @_; return($self->[I_PORT]); } sub addr : method { my($self) = @_; return($self->[I_ADDR]); } sub uri : method { my($self) = @_; return(sprintf("%s://%s:%s", @{ $self }[I_PROTO, I_HOST, I_PORT])); } 1; __END__ =head1 NAME Net::STOMP::Client::Peer - Peer support for Net::STOMP::Client =head1 SYNOPSIS use Net::STOMP::Client; $stomp = Net::STOMP::Client->new(host => "127.0.0.1", port => 61613); ... $peer = $stomp->peer(); if ($peer) { # we are indeed connected to a STOMP server printf("server uri is %s\n", $peer->uri()); } =head1 DESCRIPTION This module is used internally by L<Net::STOMP::Client> before connection and also afterwards to expose information about the STOMP server that the client is connected to. =head1 METHODS This module provides the following methods: =over =item new([OPTIONS]) return a new Net::STOMP::Client::Peer object (class method) =item proto([STRING]) get the protocol =item host([STRING]) get the host name or address =item port([STRING]) get the port number =item addr([STRING]) get the host numerical IP address =item uri() get the host URI in the form C<PROTO://HOST:PORT> =back =head1 SEE ALSO L<Net::STOMP::Client>. =head1 AUTHOR Lionel Cons L<http://cern.ch/lionel.cons> Copyright (C) CERN 2010-2021