/////////////////////////////////////////////////////////////////////////////
// Name: sckipc.h
-// Purpose: Interprocess communication
-// Author: Julian Smart/Guilhem Lavaux (big rewrite)
-// Modified by: Guilhem Lavaux 1997
+// Purpose: Interprocess communication implementation (wxSocket version)
+// Author: Julian Smart
+// Modified by: Guilhem Lavaux (big rewrite) May 1997, 1998
+// Guillermo Rodriguez (updated for wxSocket v2) Jan 2000
// Created: 1993
// RCS-ID: $Id$
-// Copyright: (c) 1993 Julian Smart
-// (c) 1997, 1998 Guilhem Lavaux
+// Copyright: (c) Julian Smart 1993
+// (c) Guilhem Lavaux 1997, 1998
+// (c) 2000 Guillermo Rodriguez <guille@iies.es>
// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
+
#ifndef _WX_SCKIPC_H
#define _WX_SCKIPC_H
#ifdef __GNUG__
-#pragma interface
+#pragma interface "sckipc.h"
#endif
#include "wx/defs.h"
*
*/
-class wxTCPServer;
-class wxTCPClient;
-class wxTCPConnection: public wxConnectionBase
+class WXDLLEXPORT wxTCPServer;
+class WXDLLEXPORT wxTCPClient;
+
+class WXDLLEXPORT wxTCPConnection: public wxConnectionBase
{
DECLARE_DYNAMIC_CLASS(wxTCPConnection)
+public:
+ wxTCPConnection(char *buffer, int size);
+ wxTCPConnection();
+ virtual ~wxTCPConnection();
+
+ // Calls that CLIENT can make
+ virtual bool Execute(const wxChar *data, int size = -1, wxIPCFormat format = wxIPC_TEXT);
+ virtual char *Request(const wxString& item, int *size = NULL, wxIPCFormat format = wxIPC_TEXT);
+ virtual bool Poke(const wxString& item, wxChar *data, int size = -1, wxIPCFormat format = wxIPC_TEXT);
+ virtual bool StartAdvise(const wxString& item);
+ virtual bool StopAdvise(const wxString& item);
+
+ // Calls that SERVER can make
+ virtual bool Advise(const wxString& item, wxChar *data, int size = -1, wxIPCFormat format = wxIPC_TEXT);
+
+ // Calls that both can make
+ virtual bool Disconnect(void);
+
+ // Default behaviour is to delete connection and return TRUE
+ virtual bool OnDisconnect(void) { delete this; return TRUE; }
+
+ // To enable the compressor
+ void Compress(bool on);
protected:
wxSocketBase *m_sock;
wxSocketNotify, char *);
friend void Server_OnRequest(wxSocketServer&,
wxSocketNotify, char *);
-public:
-
- wxTCPConnection(char *buffer, int size);
- wxTCPConnection();
- virtual ~wxTCPConnection();
-
- // Calls that CLIENT can make
- bool Execute(const wxChar *data, int size = -1,
- wxIPCFormat format = wxIPC_TEXT);
- char *Request(const wxString& item, int *size = NULL,
- wxIPCFormat format = wxIPC_TEXT);
- bool Poke(const wxString& item, wxChar *data, int size = -1,
- wxIPCFormat format = wxIPC_TEXT);
- bool StartAdvise(const wxString& item);
- bool StopAdvise(const wxString& item);
- // Calls that SERVER can make
- bool Advise(const wxString& item, wxChar *data, int size = -1,
- wxIPCFormat format = wxIPC_TEXT);
-
- // Calls that both can make
- bool Disconnect();
-
- // Called when we lost the peer.
- bool OnDisconnect() { return TRUE; }
-
- // To enable the compressor
- void Compress(bool on);
private:
- // to prevent virtual function hiding warnings
- virtual bool Execute(const wxString& str) { return(wxConnectionBase::Execute(str)); };
+ //
+ // We're hiding an Execute method in ConnectionBase
+ //s
+ virtual bool Execute(const wxString& str)
+ { return Execute(str, -1, wxIPC_TEXT); }
};
class wxTCPServer: public wxServerBase
virtual ~wxTCPClient();
virtual bool ValidHost(const wxString& host);
- // Call this to make a connection.
- // Returns NULL if cannot.
+ // Call this to make a connection.
+ // Returns NULL if cannot.
virtual wxConnectionBase *MakeConnection(const wxString& host,
const wxString& server,
const wxString& topic);