X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2b5f62a0b2db198609b45dec622a018dae37008e..dea7e44a76e4e886f2bc60b0e82322a71b1f1f4f:/utils/helpview/src/remhelp.cpp diff --git a/utils/helpview/src/remhelp.cpp b/utils/helpview/src/remhelp.cpp index a1d7f23630..ccd6dfa615 100644 --- a/utils/helpview/src/remhelp.cpp +++ b/utils/helpview/src/remhelp.cpp @@ -2,7 +2,7 @@ // Name: remhelp.cpp // Purpose: Remote help controller class // Author: Eric Dowty -// Modified by: +// Modified by: // Created: 2002-11-18 // RCS-ID: $Id$ // Copyright: (c) Julian Smart @@ -57,30 +57,30 @@ rhhcClient::rhhcClient( bool *isconn_a ) wxConnectionBase *rhhcClient::OnMakeConnection() { - return new rhhcConnection( isconn_2 ); + return new rhhcConnection( isconn_2 ); } rhhcConnection::rhhcConnection( bool *isconn_a ) : wxConnection() { - isconn_3 = isconn_a; - *isconn_3 = TRUE; + isconn_3 = isconn_a; + *isconn_3 = true; } rhhcConnection::~rhhcConnection() { - *isconn_3 = FALSE; + *isconn_3 = false; } bool rhhcConnection::OnAdvise(const wxString& topic, const wxString& item, char *data, int size, wxIPCFormat format) { - return TRUE; + return true; } bool rhhcConnection::OnDisconnect() { - *isconn_3 = FALSE; - + *isconn_3 = false; + return wxConnection::OnDisconnect(); } @@ -93,196 +93,196 @@ IMPLEMENT_CLASS(wxRemoteHtmlHelpController, wxHelpControllerBase) wxRemoteHtmlHelpController::wxRemoteHtmlHelpController(int style ) { - m_style = style; - m_connection = NULL; - m_client = NULL; - m_pid = 0; - isconn_1 = FALSE; - m_process = NULL; - - // defaults - // - // server app is assumed to be local - // + m_style = style; + m_connection = NULL; + m_client = NULL; + m_pid = 0; + isconn_1 = false; + m_process = NULL; + + // defaults + // + // server app is assumed to be local + // // for MSW (DDE classes), a_service is 'service name', apparently an arbitrary string // for Unix, should be a valid file name (for a nonexistent file) // for nonMSW, nonUnix, must be port number, for example "4242" (TCP/IP based classes) // should be unique to the client app - - wxString thename = wxGetApp().GetAppName(); + + wxString thename = wxGetApp().GetAppName(); #if defined(__WXMSW__) - m_appname = wxT("helpview.exe"); - m_service = thename + wxString(wxT("_helpservice")); + m_appname = wxT("helpview.exe"); + m_service = thename + wxString(wxT("_helpservice")); #elif defined(__UNIX__) - m_appname = wxT("./helpview"); - m_service = wxT("/tmp/") + thename + wxString(wxT("_helpservice")); + m_appname = wxT("./helpview"); + m_service = wxT("/tmp/") + thename + wxString(wxT("_helpservice")); #else - m_appname = wxT("./helpview"); - m_service = wxT("4242"); + m_appname = wxT("./helpview"); + m_service = wxT("4242"); #endif - - m_book = thename + wxT(".hhp"); // or .htb or .zip - m_windowname = thename + wxT(" Help: %s"); - //underscores for spaces - m_windowname.Replace( wxT(" "), wxT("_") ); + + m_book = thename + wxT(".hhp"); // or .htb or .zip + m_windowname = thename + wxT(" Help: %s"); + //underscores for spaces + m_windowname.Replace( wxT(" "), wxT("_") ); } void wxRemoteHtmlHelpController::SetService(wxString& a_service) { - m_service = a_service; + m_service = a_service; } void wxRemoteHtmlHelpController::SetServer(wxString& a_appname) { - m_appname = a_appname; + m_appname = a_appname; } void wxRemoteHtmlHelpController::OnQuit() { - //kill the Server here? - //this function is not called ? + //kill the Server here? + //this function is not called ? } wxRemoteHtmlHelpController::~wxRemoteHtmlHelpController() { if ( isconn_1 ) { - //if (!m_connection->Poke( wxT("--YouAreDead"), wxT("") ) ) - // wxLogError(wxT("wxRemoteHtmlHelpController - YouAreDead Failed")); - - // Kill the server. This could be an option. - Quit(); - - m_connection->Disconnect(); + // if (!m_connection->Poke( wxT("--YouAreDead"), wxT("") ) ) + // wxLogError(wxT("wxRemoteHtmlHelpController - YouAreDead Failed")); + + // Kill the server. This could be an option. + Quit(); + + m_connection->Disconnect(); delete m_connection; - + delete m_process; m_process = NULL; } if( m_client ) - delete m_client; //should be automatic? - + delete m_client; //should be automatic? + } bool wxRemoteHtmlHelpController::DoConnection() { wxString cmd, blank; int nsleep; - + blank = wxT(" "); - + // ignored under DDE, host name in TCP/IP based classes wxString hostName = wxT("localhost"); - + // Create a new client if( !m_client ) m_client = new rhhcClient(&isconn_1); - + nsleep = 0; - - // suppress the log messages from MakeConnection() + + // suppress the log messages from MakeConnection() { - wxLogNull nolog; - - //first try to connect assuming server is running - if( !isconn_1 ) - m_connection = (rhhcConnection *)m_client->MakeConnection(hostName, m_service, wxT("HELP") ); - - //if not, start server - if( !isconn_1 ) { - - wxString stylestr; - stylestr.Printf( wxT("--Style%d"), m_style ); - - cmd = m_appname + blank + m_service + blank + m_windowname + blank + m_book + blank + stylestr; - - m_process = new wxProcess(NULL); - m_pid = wxExecute( cmd, FALSE, m_process ); - // leaks - wxExecute itself (if not deleted) and in wxExecute at - // wxExecuteData *data = new wxExecuteData; - if( m_pid <= 0 ) { - wxLogError( wxT("wxRemoteHtmlHelpController - Failed to start Help server") ); - return FALSE; - } + wxLogNull nolog; + + //first try to connect assuming server is running + if( !isconn_1 ) + m_connection = (rhhcConnection *)m_client->MakeConnection(hostName, m_service, wxT("HELP") ); + + //if not, start server + if( !isconn_1 ) { + + wxString stylestr; + stylestr.Printf( wxT("--Style%d"), m_style ); + + cmd = m_appname + blank + m_service + blank + m_windowname + blank + m_book + blank + stylestr; + + m_process = new wxProcess(NULL); + m_pid = wxExecute( cmd, false, m_process ); + // leaks - wxExecute itself (if not deleted) and in wxExecute at + // wxExecuteData *data = new wxExecuteData; + if( m_pid <= 0 ) { + wxLogError( wxT("wxRemoteHtmlHelpController - Failed to start Help server") ); + return false; + } } - + while ( !isconn_1 ) { - //try every second for a while, then leave it to user - wxSleep(1); - if( nsleep > 4 ) { - if ( wxMessageBox( wxT("Failed to make connection to Help server.\nRetry?") , - wxT("wxRemoteHtmlHelpController Error"), - wxICON_ERROR | wxYES_NO | wxCANCEL ) != wxYES ) - { - // no server - return FALSE; - } - } - nsleep++; - - m_connection = (rhhcConnection *)m_client->MakeConnection(hostName, m_service, wxT("HELP") ); + //try every second for a while, then leave it to user + wxSleep(1); + if( nsleep > 4 ) { + if ( wxMessageBox( wxT("Failed to make connection to Help server.\nRetry?") , + wxT("wxRemoteHtmlHelpController Error"), + wxICON_ERROR | wxYES_NO | wxCANCEL ) != wxYES ) + { + // no server + return false; + } + } + nsleep++; + + m_connection = (rhhcConnection *)m_client->MakeConnection(hostName, m_service, wxT("HELP") ); } } - + if (!m_connection->StartAdvise(wxT("Item"))) { - wxLogError(wxT("wxRemoteHtmlHelpController - StartAdvise failed") ); - return FALSE; + wxLogError(wxT("wxRemoteHtmlHelpController - StartAdvise failed") ); + return false; } - - return TRUE; + + return true; } bool wxRemoteHtmlHelpController::LoadFile(const wxString& WXUNUSED(file)) { - return TRUE; + return true; } bool wxRemoteHtmlHelpController::DisplaySection(int sectionNo) { Display(sectionNo); - return TRUE; + return true; } bool wxRemoteHtmlHelpController::DisplayBlock(long blockNo) { - return DisplaySection((int)blockNo); + return DisplaySection((int)blockNo); } bool wxRemoteHtmlHelpController::Quit() { - //this code from exec sample - branches left in for testing - // sig = 3, 6, 9 or 12 all kill server with no apparent problem - // but give error message on MSW - timout? - int sig = 15; //3 = quit; 6 = abort; 9 = kill; 15 = terminate - - /* - switch ( sig ) - { - default: - wxFAIL_MSG( _T("unexpected return value") ); - // fall through - - case -1: - // cancelled - return FALSE; - - case wxSIGNONE: - case wxSIGHUP: - case wxSIGINT: - case wxSIGQUIT: - case wxSIGILL: - case wxSIGTRAP: - case wxSIGABRT: - case wxSIGEMT: - case wxSIGFPE: - case wxSIGKILL: - case wxSIGBUS: - case wxSIGSEGV: - case wxSIGSYS: - case wxSIGPIPE: - case wxSIGALRM: - case wxSIGTERM: - break; - } - */ - + //this code from exec sample - branches left in for testing + // sig = 3, 6, 9 or 12 all kill server with no apparent problem + // but give error message on MSW - timout? + int sig = 15; //3 = quit; 6 = abort; 9 = kill; 15 = terminate + +/* + switch ( sig ) + { + default: + wxFAIL_MSG( _T("unexpected return value") ); + // fall through + + case -1: + // cancelled + return false; + + case wxSIGNONE: + case wxSIGHUP: + case wxSIGINT: + case wxSIGQUIT: + case wxSIGILL: + case wxSIGTRAP: + case wxSIGABRT: + case wxSIGEMT: + case wxSIGFPE: + case wxSIGKILL: + case wxSIGBUS: + case wxSIGSEGV: + case wxSIGSYS: + case wxSIGPIPE: + case wxSIGALRM: + case wxSIGTERM: + break; + } +*/ + if ( sig == 0 ) { if ( wxProcess::Exists(m_pid) ) @@ -302,22 +302,22 @@ bool wxRemoteHtmlHelpController::Quit() static const wxChar *errorText[] = { _T(""), // no error - _T("signal not supported"), - _T("permission denied"), - _T("no such process"), - _T("unspecified error"), + _T("signal not supported"), + _T("permission denied"), + _T("no such process"), + _T("unspecified error"), }; - - // sig = 3, 6, 9 or 12 all kill server with no apparent problem - // but give error message on MSW - timout? - // + + // sig = 3, 6, 9 or 12 all kill server with no apparent problem + // but give error message on MSW - timout? + // //wxLogError(_T("Failed to kill process %ld with signal %d: %s"), // m_pid, sig, errorText[rc]); } } - - - return TRUE; + + + return true; } void wxRemoteHtmlHelpController::Display(const wxString& helpfile) @@ -327,8 +327,8 @@ void wxRemoteHtmlHelpController::Display(const wxString& helpfile) } if (!m_connection->Execute( helpfile, -1 ) ) - wxLogError(wxT("wxRemoteHtmlHelpController - Display Failed")); - + wxLogError(wxT("wxRemoteHtmlHelpController - Display Failed")); + } void wxRemoteHtmlHelpController::Display(const int id) @@ -336,74 +336,74 @@ void wxRemoteHtmlHelpController::Display(const int id) if( !isconn_1 ) { if( !DoConnection() ) return; } - - wxString intstring; - intstring.Printf( "--intstring%d", id ); + + wxString intstring; + intstring.Printf( "--intstring%d", id ); if (!m_connection->Execute( intstring, -1 ) ) - wxLogError(wxT("wxRemoteHtmlHelpController - Display Failed")); - + wxLogError(wxT("wxRemoteHtmlHelpController - Display Failed")); + } bool wxRemoteHtmlHelpController::AddBook(const wxString& book, bool show_wait_msg) { - //ignore show_wait_msg - there shouldn't be a delay in this step - //show_wait_msg = TRUE could be transmitted with ++AddBook - m_book = book; - - if( isconn_1 ) { - if (!m_connection->Poke( wxT("--AddBook"), (char*)book.c_str() ) ) - wxLogError(wxT("wxRemoteHtmlHelpController - AddBook Failed")); - return FALSE; - } - - return TRUE; + //ignore show_wait_msg - there shouldn't be a delay in this step + //show_wait_msg = true could be transmitted with ++AddBook + m_book = book; + + if( isconn_1 ) { + if (!m_connection->Poke( wxT("--AddBook"), (char*)book.c_str() ) ) + wxLogError(wxT("wxRemoteHtmlHelpController - AddBook Failed")); + return false; + } + + return true; } bool wxRemoteHtmlHelpController::DisplayContents() { - if( isconn_1 ) { - if (!m_connection->Poke( wxT("--DisplayContents"), wxT("") ) ) { - wxLogError(wxT("wxRemoteHtmlHelpController - DisplayContents Failed")); - return FALSE; - } - } - return TRUE; + if( isconn_1 ) { + if (!m_connection->Poke( wxT("--DisplayContents"), wxT("") ) ) { + wxLogError(wxT("wxRemoteHtmlHelpController - DisplayContents Failed")); + return false; + } + } + return true; } void wxRemoteHtmlHelpController::DisplayIndex() { - if( isconn_1 ) { - if (!m_connection->Poke( wxT("--DisplayIndex"), wxT("") ) ) - wxLogError(wxT("wxRemoteHtmlHelpController - DisplayIndex Failed")); - } + if( isconn_1 ) { + if (!m_connection->Poke( wxT("--DisplayIndex"), wxT("") ) ) + wxLogError(wxT("wxRemoteHtmlHelpController - DisplayIndex Failed")); + } } bool wxRemoteHtmlHelpController::KeywordSearch(const wxString& keyword) { - if( isconn_1 ) { - if (!m_connection->Poke( wxT("--KeywordSearch"), (char*)keyword.c_str() ) ) { - wxLogError(wxT("wxRemoteHtmlHelpController - KeywordSearch Failed")); - return FALSE; - } - } - return TRUE; + if( isconn_1 ) { + if (!m_connection->Poke( wxT("--KeywordSearch"), (char*)keyword.c_str() ) ) { + wxLogError(wxT("wxRemoteHtmlHelpController - KeywordSearch Failed")); + return false; + } + } + return true; } void wxRemoteHtmlHelpController::SetTitleFormat(const wxString& format) { - m_windowname = format; - m_windowname.Replace( wxT(" "), wxT("_") ); - - if( isconn_1 ) { - if (!m_connection->Poke( wxT("--SetTitleFormat"), (char*)format.c_str() ) ) - wxLogError(wxT("wxRemoteHtmlHelpController - SetTitleFormat Failed")); - } + m_windowname = format; + m_windowname.Replace( wxT(" "), wxT("_") ); + + if( isconn_1 ) { + if (!m_connection->Poke( wxT("--SetTitleFormat"), (char*)format.c_str() ) ) + wxLogError(wxT("wxRemoteHtmlHelpController - SetTitleFormat Failed")); + } } void wxRemoteHtmlHelpController::SetTempDir(const wxString& path) { - if( isconn_1 ) { - if (!m_connection->Poke( wxT("--SetTempDir"), (char*)path.c_str() ) ) - wxLogError(wxT("wxRemoteHtmlHelpController - SetTempDir Failed")); - } + if( isconn_1 ) { + if (!m_connection->Poke( wxT("--SetTempDir"), (char*)path.c_str() ) ) + wxLogError(wxT("wxRemoteHtmlHelpController - SetTempDir Failed")); + } }