[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico] [Índice de assunto]

Cliente Perl p/ quoter_ns



Olá,

Para quem gosta de Perl, segue um cliente p/ quoter_ns.

Funcionou com a dica do professor de usar narrow em namingContext. Por outro
lado, não foi necessário usar narrow no objeto quoter...

Abraço,

--
Adriano


--- Cut here ------------------------------
#!/usr/bin/perl -w

use strict;
#use lib '/home/posmac/anr/lib/perl';

use Error qw(:try);
use CORBA::ORBit idl => [ qw(/usr/share/idl/orbit-1.0/CosNaming.idl quoter.idl) ];

my $servico = shift || 'teste';
my $ativo   = shift || 'ABC';

my $IOR = '/home/posmac/anr/tmp/NS_Ref';

#

open(FH, $IOR) || die "Couldn't open $IOR: $!\n";
chomp(my $ior = <FH>);
close FH;

#

my $orb = CORBA::ORB_init("orbit-local-orb");

try {
    my $namingContext = $orb->string_to_object($ior);
    $namingContext->_narrow('IDL:omg.org/CosNaming/NamingContext:1.0');

    my $name = [ { id => $servico, kind => "" } ];

    my $quoter = $namingContext->resolve($name);

    my $nome  = $quoter->name();
    my $valor = $quoter->value($ativo);

    print "Cotação de $ativo, fornecida por $nome: $valor.\n";
}
catch Stock::UnknownStock with {
    print "Cotação de $ativo indisponível.\n";
}
catch CosNaming::NamingContext::NotFound with {
    print "Serviço $servico não encontrado.\n";
}