Di seguito viene riportato una delle possibili soluzioni all'esercizio. E' possibile consultare la version html dell'IDL (completa della relativa documentazione) ed è possibile consultare una versione html delle classi generate dopo la compilazione (mapping java). (idl + documentazione completa)
module biblioteca {
typedef string ISBNType;
struct InfoLibro {
ISBNType isbn;
string titolo;
sequence<string> autori;
string casaEditrice;
long anno;
string genere;
};
exception LibroNonPresente {};
exception LibroNonDisponibile{};
interface ServerBiblioteca {
void cercaLibro(inout InfoLibro asked)
raises(LibroNonPresente);
void richiediPrestitoLibro(in string nome, in ISBNType isbn)
raises(LibroNonDisponibile, LibroNonPresente);
};
typedef sequence<ServerBiblioteca> Biblioteche;
interface ServerCoordinatore {
Biblioteche cercaLibro(inout InfoLibro param)
raises(LibroNonPresente);
ServerBiblioteca richiediPrestitoLibro(in string nome, in ISBNType isbn)
raises(LibroNonDisponibile, LibroNonPresente);
};
};