[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico]
[Índice de assunto]
Cliente Perl p/ quoter_ns
- Subject: Cliente Perl p/ quoter_ns
- From: Adriano Nagelschmidt Rodrigues <anr@xxxxxxxxxx>
- Date: Thu, 10 Apr 2003 17:34:43 -0300
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";
}