#ifndef _MAILSERVERIMPL_H
#define _MAILSERVERIMPL_H

#include "MailS.h"
#include <CosNotifyChannelAdminS.h>
#include <CosNotificationS.h>

#include "MailBoxImpl.h"
#include "ChannelUtil.h"

#include <ace/Vector_T.h>

typedef ACE_Vector<PortableServer::ServantBase_var> ServantsHolder;

class MailServerImpl
  : public POA_Mail::MailServer
{
public:

  MailServerImpl (CORBA::ORB_ptr orb, ChannelUtil &util);

  virtual void createAccount (const char *name);

  virtual void deleteAccount (const char *name);

private:

  CORBA::ORB_var orbVar_;

  ChannelUtil &util_;

  ServantsHolder servants_;
};

#endif // _MAILSERVERIMPL_H
