/*************************/
/* Arquivo impressao.idl */
/*************************/
exception SemPapel {};
exception PapelEnroscou {
short posicao;
};
typedef sequence<octet> Arquivo;
interface Impressora {
void print (in Arquivo arq) raises (SemPapel,
PapelEnroscou);
int estado (out FilaDeImpressao fdi);
}
interface ImpressoraColorida : Impressora {
enum ModoDeCores { BrancoEPreto, TonsDeCinza,
Colorido };
void modo (inout ModoDeCores mdc);
}
CORBA::Object_var obj =
orb->resolve_initial_references ("NameService");
CosNaming::NamingContext_var ns =
CosNaming::NamingContext::_narrow (obj);CosNaming::Name nome;
nome.length (2);
nome[1].id = CORBA::string_dup ("blocoA");
nome[1].id = CORBA::string_dup ("lapis");
Impressora imp = Impressora::_narrow(ns->lookup (nome));// Inserir código para ler arquivo do disco na variável meuArquivo
imp->print (meuArquivo);
}
catch (const CORBA::Exception &e)
{
cerr << "Problemas com impressão: " << e << endl;
exit (-1);
}
exit (0);
}
#include "impressao.h"
#include "ORBHelper.h"
#include "NSHelper.h"
int main (int argc, char * argv[])
{
try
{
MyORB orb = MyORB::init (argc, argv);
MyNS ns = orb->getNS();
Impressora imp = ns->lookup ("blocoA/lapis", Impressora);
// Inserir código para ler arquivo do disco na variável meuArquivo
imp->print (meuArquivo);
}
catch (const CORBA::Exception &e)
{
cerr << "Problemas com impressão: " << e << endl;
exit (-1);
}
exit (0);
}