/**
 * @author PrismTech
 * @version Version 1.0
 */

#include <CosNotifyComm.idl>
#include "tao/StringSeq.pidl"

#pragma prefix "prismt.com/cos/CosNotification/examples"

module Mail
{
   typedef sequence <string> StringSeq;

   exception AccountExists {};
   exception NoSuchAccount {};

   interface MailServer
   {
      void createAccount (in string name) raises (AccountExists);
      void deleteAccount (in string name) raises (NoSuchAccount);
   };

   interface MailBox :
      CosNotifyComm::StructuredPullConsumer,
      CosNotifyComm::StructuredPushSupplier
   {
      void sendMessage (in string message, in StringSeq to);
      boolean receiveMessage (out string sender, out string message);
      void destroy ();
   };
};
