template <class ACCEPTOR> int
Reactor_Logging_Server_Adapter<ACCEPTOR>::init (int argc,
                                                ACE_TCHAR *argv[]) {
  int i;
  char **array = 0;
  ACE_NEW_RETURN (array, char*[argc], -1);
  ACE_Auto_Array_Ptr<char *> char_argv (array);

  for (i = 0; i < argc; ++i)
    char_argv[i] = ACE::strnew (ACE_TEXT_ALWAYS_CHAR (argv[i]));
  ACE_NEW_NORETURN (server_, Reactor_Logging_Server<ACCEPTOR>
                               (i, char_argv.get (),
                                ACE_Reactor::instance ()));
  for (i = 0; i < argc; ++i) ACE::strdelete (char_argv[i]);
  return server_ == 0 ? -1 : 0;
}
int TP_Logging_Server::init(int argc, ACE_TCHAR *argv[])
{
    int i;
    char **array = 0;

    ACE_NEW_RETURN(array, char*[argc], -1);
    ACE_Auto_Array_Ptr<char*> char_argv(array);

    for (i = 0; i < argc; ++i)
        char_argv[i] = ACE::strnew(ACE_TEXT_ALWAYS_CHAR(argv[i]));

    ACE_NEW_NORETURN(logging_dispatcher_,
            TP_Logging_Server::LOGGING_DISPATCHER(
                i, char_argv.get(), ACE_Reactor::instance()));

    for (i = 0; i < argc; ++i) ACE::strdelete(char_argv[i]);

    if (logging_dispatcher_ == 0) {
        return -1;
    } else {
        return TP_LOGGING_TASK::instance()->open();
    }
}