X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4b89c618454fad682c484e86310008f583b9ab55..e564aa153eb1dc5ebd9f8c9f5f055c2a49c15b05:/samples/ipc/client.cpp diff --git a/samples/ipc/client.cpp b/samples/ipc/client.cpp index 99940537f1..6fedd6cea4 100644 --- a/samples/ipc/client.cpp +++ b/samples/ipc/client.cpp @@ -33,7 +33,7 @@ #include "ddesetup.h" -#if defined(__WXGTK__) || defined(__WXMOTIF__) +#if defined(__WXGTK__) || defined(__WXX11__) || defined(__WXMOTIF__) || defined(__WXMAC__) #include "mondrian.xpm" #endif @@ -60,7 +60,7 @@ char ipc_buffer[4000]; wxListBox *the_list = NULL; MyConnection *the_connection = NULL; -MyClient *my_client ; +MyClient *my_client; // ============================================================================ // implementation @@ -74,33 +74,37 @@ MyClient *my_client ; // main frame bool MyApp::OnInit() { - wxString server = "4242"; -#if wxUSE_DDE_FOR_SAMPLE - wxString hostName = wxGetHostName(); -#else + // service name (DDE classes) or port number (TCP/IP based classes) + wxString service = "4242"; + + // ignored under DDE, host name in TCP/IP based classes wxString hostName = "localhost"; -#endif if (argc > 1) - server = argv[1]; + service = argv[1]; if (argc > 2) hostName = argv[2]; // Create a new client my_client = new MyClient; - the_connection = (MyConnection *)my_client->MakeConnection(hostName, server, "IPC TEST"); - while ( !the_connection ) + // suppress the log messages from MakeConnection() { - if ( wxMessageBox("Failed to make connection to server.\nRetry?", - "Client Demo Error", - wxICON_ERROR | wxYES_NO | wxCANCEL ) != wxYES ) + wxLogNull nolog; + the_connection = (MyConnection *)my_client->MakeConnection(hostName, service, "IPC TEST"); + + while ( !the_connection ) { - // no server - return FALSE; + if ( wxMessageBox("Failed to make connection to server.\nRetry?", + "Client Demo Error", + wxICON_ERROR | wxYES_NO | wxCANCEL ) != wxYES ) + { + // no server + return FALSE; + } + + the_connection = (MyConnection *)my_client->MakeConnection(hostName, service, "IPC TEST"); } - - the_connection = (MyConnection *)my_client->MakeConnection(hostName, server, "IPC TEST"); } if (!the_connection->StartAdvise("Item")) @@ -117,11 +121,17 @@ int MyApp::OnExit() if (the_connection) { the_connection->Disconnect(); + delete the_connection; + the_connection = NULL; } // will delete the connection too + // Update: Seems it didn't delete the_connection, because there's a leak. + // Deletion is now explicitly done a few lines up. delete my_client; + + return 0; } @@ -203,11 +213,6 @@ MyConnection::MyConnection() { } -MyConnection::~MyConnection() -{ - the_connection = NULL; -} - bool MyConnection::OnAdvise(const wxString& topic, const wxString& item, char *data, int size, wxIPCFormat format) { if (the_list)