// Printer.idl
// IDL defintion of a simple print service

module domain
{
  module printer 
    { 
      typedef string FileContent;
      typedef long   Price; 
      interface Printer
	{
	  void printFile(in FileContent data);
	};
      
      interface Spooler
	{
	  // only gets the price of printing data on printer
	  Price getPriceOfPrintJob(in Printer printer, in FileContent data);
	  
	  // prints data on printer 
	  Price       doPrintJob(in Printer printer, in FileContent data);
	};
    };
};
