]>
git.saurik.com Git - wxWidgets.git/blob - interface/wx/sckipc.h
   1 ///////////////////////////////////////////////////////////////////////////// 
   3 // Purpose:     interface of wxTCPServer 
   4 // Author:      wxWidgets team 
   6 // Licence:     wxWindows license 
   7 ///////////////////////////////////////////////////////////////////////////// 
  16   wxIPC_TEXT 
=             1,  /* CF_TEXT */ 
  17   wxIPC_BITMAP 
=           2,  /* CF_BITMAP */ 
  18   wxIPC_METAFILE 
=         3,  /* CF_METAFILEPICT */ 
  22   wxIPC_OEMTEXT 
=          7,  /* CF_OEMTEXT */ 
  23   wxIPC_DIB 
=              8,  /* CF_DIB */ 
  28   wxIPC_UTF16TEXT 
=        13, /* CF_UNICODE */ 
  29   wxIPC_ENHMETAFILE 
=      14, 
  30   wxIPC_FILENAME 
=         15, /* CF_HDROP */ 
  34 #if SIZEOF_WCHAR_T == 2 
  35   wxIPC_UNICODETEXT 
= wxIPC_UTF16TEXT
, 
  36 #elif SIZEOF_WCHAR_T == 4 
  37   wxIPC_UNICODETEXT 
= wxIPC_UTF32TEXT
, 
  39 #  error "Unknown wchar_t size" 
  48     A wxTCPServer object represents the server part of a client-server conversation. 
  49     It emulates a DDE-style protocol, but uses TCP/IP which is available on most 
  52     A DDE-based implementation for Windows is available using wxDDEServer. 
  57     @see wxTCPClient, wxTCPConnection, @ref overview_ipc 
  59 class wxTCPServer 
: public wxObject
 
  63         Constructs a server object. 
  68         Registers the server using the given service name. 
  70         Under Unix, the string must contain an integer id which is used as an 
  71         Internet port number. @false is returned if the call failed 
  72         (for example, the port number is already in use). 
  74     virtual bool Create(const wxString
& service
); 
  77         When a client calls @b MakeConnection, the server receives the 
  78         message and this member is called. 
  80         The application should derive a member to intercept this message and 
  81         return a connection object of either the standard wxTCPConnection type, 
  82         or of a user-derived type. 
  83         If the topic is "STDIO", the application may wish to refuse the connection. 
  84         Under Unix, when a server is created the OnAcceptConnection message is 
  85         always sent for standard input and output. 
  87     virtual wxConnectionBase
* OnAcceptConnection(const wxString
& topic
); 
  95     A wxTCPClient object represents the client part of a client-server conversation. 
  96     It emulates a DDE-style protocol, but uses TCP/IP which is available on most 
  99     A DDE-based implementation for Windows is available using wxDDEClient. 
 101     To create a client which can communicate with a suitable server, you need 
 102     to derive a class from wxTCPConnection and another from wxTCPClient. 
 103     The custom wxTCPConnection class will intercept communications in 
 104     a 'conversation' with a server, and the custom wxTCPServer is required 
 105     so that a user-overridden wxTCPClient::OnMakeConnection() member can return 
 106     a wxTCPConnection of the required class, when a connection is made. 
 111     @see wxTCPServer, wxTCPConnection, @ref overview_ipc 
 113 class wxTCPClient 
: public wxObject
 
 117         Constructs a client object. 
 122         Tries to make a connection with a server specified by the host 
 123         (a machine name under Unix), service name (must contain an integer 
 124         port number under Unix), and a topic string. 
 126         If the server allows a connection, a wxTCPConnection object will be returned. 
 128         The type of wxTCPConnection returned can be altered by overriding 
 129         the OnMakeConnection() member to return your own derived connection object. 
 131     virtual wxConnectionBase
* MakeConnection(const wxString
& host
, 
 132                                              const wxString
& service
, 
 133                                              const wxString
& topic
); 
 136         The type of wxTCPConnection returned from a MakeConnection() call can 
 137         be altered by deriving the @b OnMakeConnection member to return your 
 138         own derived connection object. By default, a wxTCPConnection 
 141         The advantage of deriving your own connection class is that it will 
 142         enable you to intercept messages initiated by the server, such 
 143         as wxTCPConnection::OnAdvise(). You may also want to store 
 144         application-specific data in instances of the new class. 
 146     virtual wxConnectionBase
* OnMakeConnection(); 
 149         Returns @true if this is a valid host name, @false otherwise. 
 151     virtual bool ValidHost(const wxString
& host
); 
 157     @class wxTCPConnection 
 159     A wxTCPClient object represents the connection between a client and a server. 
 160     It emulates a DDE-style protocol, but uses TCP/IP which is available on most 
 163     A DDE-based implementation for Windows is available using wxDDEConnection. 
 165     A wxTCPConnection object can be created by making a connection using a 
 166     wxTCPClient object, or by the acceptance of a connection by a wxTCPServer object. 
 167     The bulk of a conversation is controlled by calling members in a 
 168     @b wxTCPConnection object or by overriding its members. 
 170     An application should normally derive a new connection class from 
 171     wxTCPConnection, in order to override the communication event handlers 
 172     to do something interesting. 
 177     @see wxTCPClient, wxTCPServer, @ref overview_ipc 
 179 class wxTCPConnection 
: public wxObject
 
 184         Constructs a connection object. 
 186         If no user-defined connection object is to be derived from wxTCPConnection, 
 187         then the constructor should not be called directly, since the default 
 188         connection object will be provided on requesting (or accepting) a connection. 
 190         However, if the user defines his or her own derived connection object, 
 191         the wxTCPServer::OnAcceptConnection and/or wxTCPClient::OnMakeConnection 
 192         members should be replaced by functions which construct the new connection object. 
 194         If the arguments of the wxTCPConnection constructor are void, then a default 
 195         buffer is associated with the connection. Otherwise, the programmer must 
 196         provide a buffer and size of the buffer for the connection object to use in 
 200     wxTCPConnection(void* buffer
, size_t size
); 
 205         Called by the server application to advise the client of a change in 
 206         the data associated with the given item. 
 208         Causes the client connection's OnAdvise() member to be called. 
 210         Returns @true if successful. 
 212     bool Advise(const wxString
& item
, const void* data
, size_t size
, 
 213                 wxIPCFormat format 
= wxIPC_PRIVATE
); 
 214     bool Advise(const wxString
& item
, const char* data
); 
 215     bool Advise(const wxString
& item
, const wchar_t* data
); 
 216     bool Advise(const wxString
& item
, const wxString data
); 
 220         Called by the client or server application to disconnect from the other 
 221         program; it causes the OnDisconnect() message to be sent to the 
 222         corresponding connection object in the other program. 
 224         The default behaviour of @b OnDisconnect is to delete the 
 225         connection, but the calling application must explicitly delete its 
 226         side of the connection having called @b Disconnect. 
 228         Returns @true if successful. 
 230     virtual bool Disconnect(); 
 234         Called by the client application to execute a command on the server. 
 235         Can also be used to transfer arbitrary data to the server (similar 
 236         to Poke() in that respect). Causes the server connection's OnExecute() 
 239         Returns @true if successful. 
 241     bool Execute(const void* data
, size_t size
, 
 242                  wxIPCFormat format 
= wxIPC_PRIVATE
); 
 243     bool Execute(const char* data
); 
 244     bool Execute(const wchar_t* data
); 
 245     bool Execute(const wxString data
); 
 249         Message sent to the client application when the server notifies it of a 
 250         change in the data associated with the given item. 
 252     virtual bool OnAdvise(const wxString
& topic
, 
 253                           const wxString
& item
, 
 259         Message sent to the client or server application when the other 
 260         application notifies it to delete the connection. 
 261         Default behaviour is to delete the connection object. 
 263     virtual bool OnDisconnect(); 
 266         Message sent to the server application when the client notifies it to 
 267         execute the given data. 
 268         Note that there is no item associated with this message. 
 270     virtual bool OnExecute(const wxString
& topic
, const void* data
, 
 275         Message sent to the server application when the client notifies it to 
 276         accept the given data. 
 278     virtual bool OnPoke(const wxString
& topic
, const wxString
& item
, 
 284         Message sent to the server application when the client calls Request(). 
 286         The server should respond by returning a character string from @b OnRequest, 
 287         or @NULL to indicate no data. 
 289     virtual const void* OnRequest(const wxString
& topic
, 
 290                                   const wxString
& item
, 
 295         Message sent to the server application by the client, when the client 
 296         wishes to start an 'advise loop' for the given topic and item. 
 297         The server can refuse to participate by returning @false. 
 299     virtual bool OnStartAdvise(const wxString
& topic
, 
 300                                const wxString
& item
); 
 303         Message sent to the server application by the client, when the client 
 304         wishes to stop an 'advise loop' for the given topic and item. 
 305         The server can refuse to stop the advise loop by returning @false, although 
 306         this doesn't have much meaning in practice. 
 308     virtual bool OnStopAdvise(const wxString
& topic
, 
 309                               const wxString
& item
); 
 313         Called by the client application to poke data into the server. 
 314         Can be used to transfer arbitrary data to the server. Causes the server 
 315         connection's OnPoke() member to be called. Returns @true if successful. 
 317     bool Poke(const wxString
& item
, const void* data
, size_t size
, 
 318               wxIPCFormat format 
= wxIPC_PRIVATE
); 
 319     bool Poke(const wxString
& item
, const char* data
); 
 320     bool Poke(const wxString
& item
, const wchar_t* data
); 
 321     bool Poke(const wxString
& item
, const wxString data
); 
 325         Called by the client application to request data from the server. 
 326         Causes the server connection's OnRequest() member to be called. 
 328         Returns a character string (actually a pointer to the connection's buffer) if 
 329         successful, @NULL otherwise. 
 331     virtual const void* Request(const wxString
& item
, size_t* size 
= 0, 
 332                         wxIPCFormat format 
= wxIPC_TEXT
); 
 335         Called by the client application to ask if an advise loop can be started 
 338         Causes the server connection's OnStartAdvise() member to be called. 
 339         Returns @true if the server okays it, @false otherwise. 
 341     virtual bool StartAdvise(const wxString
& item
); 
 344         Called by the client application to ask if an advise loop can be stopped. 
 345         Causes the server connection's OnStopAdvise() member to be called. 
 346         Returns @true if the server okays it, @false otherwise. 
 348     virtual bool StopAdvise(const wxString
& item
);