X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7921cf2badfac0c44cd53644bfc6a483a09ec299..ed58dbeab64d18a0f869ea8e1610a0a88ad7b22c:/src/common/sckipc.cpp?ds=sidebyside diff --git a/src/common/sckipc.cpp b/src/common/sckipc.cpp index 59511a065b..27dae77d32 100644 --- a/src/common/sckipc.cpp +++ b/src/common/sckipc.cpp @@ -20,6 +20,8 @@ #pragma hdrstop #endif +#if wxUSE_SOCKETS + #ifndef WX_PRECOMP #endif @@ -58,10 +60,10 @@ enum { #endif void Server_OnRequest(wxSocketServer& server, - wxSocketBase::wxRequestEvent evt, + GSocketEvent evt, char *cdata); void Client_OnRequest(wxSocketBase& sock, - wxSocketBase::wxRequestEvent evt, + GSocketEvent evt, char *cdata); // --------------------------------------------------------------------------- @@ -89,13 +91,12 @@ wxConnectionBase *wxTCPClient::MakeConnection (const wxString& host, const wxString& topic) { wxIPV4address addr; - wxSocketHandler *hsock = &wxSocketHandler::Master(); - wxSocketClient *client = hsock->CreateClient(); + wxSocketClient *client = new wxSocketClient(); wxSocketStream *stream = new wxSocketStream(*client); wxDataInputStream data_is(*stream); wxDataOutputStream data_os(*stream); - client->SetNotify(wxSocketBase::REQ_READ | wxSocketBase::REQ_LOST); + client->SetNotify(GSOCK_INPUT_FLAG | GSOCK_LOST_FLAG); addr.Service(server_name); addr.Hostname(host); @@ -154,15 +155,14 @@ wxTCPServer::wxTCPServer (void) bool wxTCPServer::Create(const wxString& server_name) { wxIPV4address addr; - wxSocketHandler *hsock = &wxSocketHandler::Master(); wxSocketServer *server; addr.Service(server_name); // Create a socket listening on specified port - server = hsock->CreateServer(addr); + server = new wxSocketServer(addr); server->Callback((wxSocketBase::wxSockCbk)Server_OnRequest); - server->SetNotify(wxSocketBase::REQ_ACCEPT); + server->SetNotify(GSOCK_CONNECTION_FLAG); server->CallbackData((char *)this); @@ -215,7 +215,7 @@ bool wxTCPConnection::Disconnect (void) return TRUE; } -bool wxTCPConnection::Execute (char *data, int size, wxIPCFormat format) +bool wxTCPConnection::Execute (wxChar *data, int size, wxIPCFormat format) { if (!m_sock->IsConnected()) return FALSE; @@ -227,7 +227,7 @@ bool wxTCPConnection::Execute (char *data, int size, wxIPCFormat format) m_codeco->WriteString(data); else { m_codeco->Write32(size); - m_codeco->Write(data, size); + m_sockstrm->Write(data, size); } return TRUE; @@ -254,7 +254,7 @@ char *wxTCPConnection::Request (const wxString& item, int *size, wxIPCFormat for s = m_codeci->Read32(); data = new char[s]; - m_codeci->Read(data, s); + m_sockstrm->Read(data, s); if (size) *size = s; @@ -262,7 +262,7 @@ char *wxTCPConnection::Request (const wxString& item, int *size, wxIPCFormat for } } -bool wxTCPConnection::Poke (const wxString& item, char *data, int size, wxIPCFormat format) +bool wxTCPConnection::Poke (const wxString& item, wxChar *data, int size, wxIPCFormat format) { if (!m_sock->IsConnected()) return FALSE; @@ -274,7 +274,7 @@ bool wxTCPConnection::Poke (const wxString& item, char *data, int size, wxIPCFor m_codeco->WriteString(data); else { m_codeco->Write32(size); - m_codeco->Write(data, size); + m_sockstrm->Write(data, size); } return TRUE; @@ -318,7 +318,7 @@ bool wxTCPConnection::StopAdvise (const wxString& item) // Calls that SERVER can make bool wxTCPConnection::Advise (const wxString& item, - char *data, int size, wxIPCFormat format) + wxChar *data, int size, wxIPCFormat format) { if (!m_sock->IsConnected()) return FALSE; @@ -330,24 +330,25 @@ bool wxTCPConnection::Advise (const wxString& item, m_codeco->WriteString(data); else { m_codeco->Write32(size); - m_codeco->Write(data, size); + m_sockstrm->Write(data, size); } return TRUE; } -void Client_OnRequest(wxSocketBase& sock, wxSocketBase::wxRequestEvent evt, +void Client_OnRequest(wxSocketBase& sock, GSocketEvent evt, char *cdata) { int msg = 0; wxTCPConnection *connection = (wxTCPConnection *)cdata; wxDataInputStream *codeci; wxDataOutputStream *codeco; + wxSocketStream *sockstrm; wxString topic_name = connection->m_topic; wxString item; // The socket handler signals us that we lost the connection: destroy all. - if (evt == wxSocketBase::EVT_LOST) { + if (evt == GSOCK_LOST) { sock.Close(); connection->OnDisconnect(); return; @@ -356,6 +357,7 @@ void Client_OnRequest(wxSocketBase& sock, wxSocketBase::wxRequestEvent evt, // Receive message number. codeci = connection->m_codeci; codeco = connection->m_codeco; + sockstrm = connection->m_sockstrm; msg = codeci->Read8(); switch (msg) { @@ -367,7 +369,7 @@ void Client_OnRequest(wxSocketBase& sock, wxSocketBase::wxRequestEvent evt, format = (wxIPCFormat)codeci->Read8(); size = codeci->Read32(); data = new char[size]; - codeci->Read(data, size); + sockstrm->Read(data, size); connection->OnExecute (topic_name, data, size, format); @@ -383,7 +385,7 @@ void Client_OnRequest(wxSocketBase& sock, wxSocketBase::wxRequestEvent evt, format = (wxIPCFormat)codeci->Read8(); size = codeci->Read32(); data = new char[size]; - codeci->Read(data, size); + sockstrm->Read(data, size); connection->OnAdvise (topic_name, item, data, size, format); @@ -415,13 +417,13 @@ void Client_OnRequest(wxSocketBase& sock, wxSocketBase::wxRequestEvent evt, case IPC_POKE: { wxIPCFormat format; size_t size; - char *data; + wxChar *data; item = codeci->ReadString(); format = (wxIPCFormat)codeci->Read8(); size = codeci->Read32(); - data = new char[size]; - codeci->Read(data, size); + data = new wxChar[size]; + sockstrm->Read(data, size); connection->OnPoke (topic_name, item, data, size, format); @@ -442,7 +444,7 @@ void Client_OnRequest(wxSocketBase& sock, wxSocketBase::wxRequestEvent evt, codeco->Write8(IPC_REQUEST_REPLY); if (user_size != -1) { codeco->Write32(user_size); - codeco->Write(user_data, user_size); + sockstrm->Write(user_data, user_size); } else codeco->WriteString(user_data); } else @@ -462,20 +464,20 @@ void Client_OnRequest(wxSocketBase& sock, wxSocketBase::wxRequestEvent evt, } void Server_OnRequest(wxSocketServer& server, - wxSocketBase::wxRequestEvent evt, char *cdata) + GSocketEvent evt, char *cdata) { wxTCPServer *ipcserv = (wxTCPServer *)cdata; wxSocketStream *stream; wxDataInputStream *codeci; wxDataOutputStream *codeco; - if (evt != wxSocketBase::EVT_ACCEPT) + if (evt != GSOCK_CONNECTION) return; /* Accept the connection, getting a new socket */ wxSocketBase *sock = server.Accept(); sock->Notify(FALSE); - sock->SetNotify(wxSocketBase::REQ_READ | wxSocketBase::REQ_LOST); + sock->SetNotify(GSOCK_INPUT_FLAG | GSOCK_LOST_FLAG); stream = new wxSocketStream(*sock); codeci = new wxDataInputStream(*stream); @@ -516,3 +518,6 @@ void Server_OnRequest(wxSocketServer& server, } } } + +#endif + // wxUSE_SOCKETS