| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343 | 
							- /////////////////////////////////////////////////////////////////////////////
 
- // Name:        sckipc.h
 
- // Purpose:     interface of wxTCPServer
 
- // Author:      wxWidgets team
 
- // Licence:     wxWindows licence
 
- /////////////////////////////////////////////////////////////////////////////
 
- /**
 
-     See wxTCPConnection.
 
- */
 
- enum wxIPCFormat
 
- {
 
-   wxIPC_INVALID =          0,
 
-   wxIPC_TEXT =             1,  /* CF_TEXT */
 
-   wxIPC_BITMAP =           2,  /* CF_BITMAP */
 
-   wxIPC_METAFILE =         3,  /* CF_METAFILEPICT */
 
-   wxIPC_SYLK =             4,
 
-   wxIPC_DIF =              5,
 
-   wxIPC_TIFF =             6,
 
-   wxIPC_OEMTEXT =          7,  /* CF_OEMTEXT */
 
-   wxIPC_DIB =              8,  /* CF_DIB */
 
-   wxIPC_PALETTE =          9,
 
-   wxIPC_PENDATA =          10,
 
-   wxIPC_RIFF =             11,
 
-   wxIPC_WAVE =             12,
 
-   wxIPC_UTF16TEXT =        13, /* CF_UNICODE */
 
-   wxIPC_ENHMETAFILE =      14,
 
-   wxIPC_FILENAME =         15, /* CF_HDROP */
 
-   wxIPC_LOCALE =           16,
 
-   wxIPC_UTF8TEXT =         17,
 
-   wxIPC_UTF32TEXT =        18,
 
-   wxIPC_UNICODETEXT,
 
-   wxIPC_PRIVATE =          20
 
- };
 
- /**
 
-     @class wxTCPServer
 
-     A wxTCPServer object represents the server part of a client-server conversation.
 
-     It emulates a DDE-style protocol, but uses TCP/IP which is available on most
 
-     platforms.
 
-     A DDE-based implementation for Windows is available using wxDDEServer.
 
-     @library{wxnet}
 
-     @category{net}
 
-     @see wxTCPClient, wxTCPConnection, @ref overview_ipc
 
- */
 
- class wxTCPServer : public wxObject
 
- {
 
- public:
 
-     /**
 
-         Constructs a server object.
 
-     */
 
-     wxTCPServer();
 
-     /**
 
-         Registers the server using the given service name.
 
-         Under Unix, the string must contain an integer id which is used as an
 
-         Internet port number. @false is returned if the call failed
 
-         (for example, the port number is already in use).
 
-     */
 
-     virtual bool Create(const wxString& service);
 
-     /**
 
-         When a client calls @b MakeConnection, the server receives the
 
-         message and this member is called.
 
-         The application should derive a member to intercept this message and
 
-         return a connection object of either the standard wxTCPConnection type,
 
-         or of a user-derived type.
 
-         If the topic is "STDIO", the application may wish to refuse the connection.
 
-         Under Unix, when a server is created the OnAcceptConnection message is
 
-         always sent for standard input and output.
 
-     */
 
-     virtual wxConnectionBase* OnAcceptConnection(const wxString& topic);
 
- };
 
- /**
 
-     @class wxTCPClient
 
-     A wxTCPClient object represents the client part of a client-server conversation.
 
-     It emulates a DDE-style protocol, but uses TCP/IP which is available on most
 
-     platforms.
 
-     A DDE-based implementation for Windows is available using wxDDEClient.
 
-     To create a client which can communicate with a suitable server, you need
 
-     to derive a class from wxTCPConnection and another from wxTCPClient.
 
-     The custom wxTCPConnection class will intercept communications in
 
-     a 'conversation' with a server, and the custom wxTCPServer is required
 
-     so that a user-overridden wxTCPClient::OnMakeConnection() member can return
 
-     a wxTCPConnection of the required class, when a connection is made.
 
-     @library{wxnet}
 
-     @category{net}
 
-     @see wxTCPServer, wxTCPConnection, @ref overview_ipc
 
- */
 
- class wxTCPClient : public wxObject
 
- {
 
- public:
 
-     /**
 
-         Constructs a client object.
 
-     */
 
-     wxTCPClient();
 
-     /**
 
-         Tries to make a connection with a server specified by the host
 
-         (a machine name under Unix), service name (must contain an integer
 
-         port number under Unix), and a topic string.
 
-         If the server allows a connection, a wxTCPConnection object will be returned.
 
-         The type of wxTCPConnection returned can be altered by overriding
 
-         the OnMakeConnection() member to return your own derived connection object.
 
-     */
 
-     virtual wxConnectionBase* MakeConnection(const wxString& host,
 
-                                              const wxString& service,
 
-                                              const wxString& topic);
 
-     /**
 
-         The type of wxTCPConnection returned from a MakeConnection() call can
 
-         be altered by deriving the @b OnMakeConnection member to return your
 
-         own derived connection object. By default, a wxTCPConnection
 
-         object is returned.
 
-         The advantage of deriving your own connection class is that it will
 
-         enable you to intercept messages initiated by the server, such
 
-         as wxTCPConnection::OnAdvise(). You may also want to store
 
-         application-specific data in instances of the new class.
 
-     */
 
-     virtual wxConnectionBase* OnMakeConnection();
 
-     /**
 
-         Returns @true if this is a valid host name, @false otherwise.
 
-     */
 
-     virtual bool ValidHost(const wxString& host);
 
- };
 
- /**
 
-     @class wxTCPConnection
 
-     A wxTCPClient object represents the connection between a client and a server.
 
-     It emulates a DDE-style protocol, but uses TCP/IP which is available on most
 
-     platforms.
 
-     A DDE-based implementation for Windows is available using wxDDEConnection.
 
-     A wxTCPConnection object can be created by making a connection using a
 
-     wxTCPClient object, or by the acceptance of a connection by a wxTCPServer object.
 
-     The bulk of a conversation is controlled by calling members in a
 
-     @b wxTCPConnection object or by overriding its members.
 
-     An application should normally derive a new connection class from
 
-     wxTCPConnection, in order to override the communication event handlers
 
-     to do something interesting.
 
-     @library{wxnet}
 
-     @category{net}
 
-     @see wxTCPClient, wxTCPServer, @ref overview_ipc
 
- */
 
- class wxTCPConnection : public wxObject
 
- {
 
- public:
 
-     //@{
 
-     /**
 
-         Constructs a connection object.
 
-         If no user-defined connection object is to be derived from wxTCPConnection,
 
-         then the constructor should not be called directly, since the default
 
-         connection object will be provided on requesting (or accepting) a connection.
 
-         However, if the user defines his or her own derived connection object,
 
-         the wxTCPServer::OnAcceptConnection and/or wxTCPClient::OnMakeConnection
 
-         members should be replaced by functions which construct the new connection object.
 
-         If the arguments of the wxTCPConnection constructor are void, then a default
 
-         buffer is associated with the connection. Otherwise, the programmer must
 
-         provide a buffer and size of the buffer for the connection object to use in
 
-         transactions.
 
-     */
 
-     wxTCPConnection();
 
-     wxTCPConnection(void* buffer, size_t size);
 
-     //@}
 
-     //@{
 
-     /**
 
-         Called by the server application to advise the client of a change in
 
-         the data associated with the given item.
 
-         Causes the client connection's OnAdvise() member to be called.
 
-         Returns @true if successful.
 
-     */
 
-     bool Advise(const wxString& item, const void* data, size_t size,
 
-                 wxIPCFormat format = wxIPC_PRIVATE);
 
-     bool Advise(const wxString& item, const char* data);
 
-     bool Advise(const wxString& item, const wchar_t* data);
 
-     bool Advise(const wxString& item, const wxString data);
 
-     //@}
 
-     /**
 
-         Called by the client or server application to disconnect from the other
 
-         program; it causes the OnDisconnect() message to be sent to the
 
-         corresponding connection object in the other program.
 
-         The default behaviour of @b OnDisconnect is to delete the
 
-         connection, but the calling application must explicitly delete its
 
-         side of the connection having called @b Disconnect.
 
-         Returns @true if successful.
 
-     */
 
-     virtual bool Disconnect();
 
-     //@{
 
-     /**
 
-         Called by the client application to execute a command on the server.
 
-         Can also be used to transfer arbitrary data to the server (similar
 
-         to Poke() in that respect). Causes the server connection's OnExecute()
 
-         member to be called.
 
-         Returns @true if successful.
 
-     */
 
-     bool Execute(const void* data, size_t size,
 
-                  wxIPCFormat format = wxIPC_PRIVATE);
 
-     bool Execute(const char* data);
 
-     bool Execute(const wchar_t* data);
 
-     bool Execute(const wxString data);
 
-     //@}
 
-     /**
 
-         Message sent to the client application when the server notifies it of a
 
-         change in the data associated with the given item.
 
-     */
 
-     virtual bool OnAdvise(const wxString& topic,
 
-                           const wxString& item,
 
-                           const void* data,
 
-                           size_t size,
 
-                           wxIPCFormat format);
 
-     /**
 
-         Message sent to the client or server application when the other
 
-         application notifies it to delete the connection.
 
-         Default behaviour is to delete the connection object.
 
-     */
 
-     virtual bool OnDisconnect();
 
-     /**
 
-         Message sent to the server application when the client notifies it to
 
-         execute the given data.
 
-         Note that there is no item associated with this message.
 
-     */
 
-     virtual bool OnExecute(const wxString& topic, const void* data,
 
-                            size_t size,
 
-                            wxIPCFormat format);
 
-     /**
 
-         Message sent to the server application when the client notifies it to
 
-         accept the given data.
 
-     */
 
-     virtual bool OnPoke(const wxString& topic, const wxString& item,
 
-                         const void* data,
 
-                         size_t size,
 
-                         wxIPCFormat format);
 
-     /**
 
-         Message sent to the server application when the client calls Request().
 
-         The server should respond by returning a character string from @b OnRequest,
 
-         or @NULL to indicate no data.
 
-     */
 
-     virtual const void* OnRequest(const wxString& topic,
 
-                                   const wxString& item,
 
-                                   size_t* size,
 
-                                   wxIPCFormat format);
 
-     /**
 
-         Message sent to the server application by the client, when the client
 
-         wishes to start an 'advise loop' for the given topic and item.
 
-         The server can refuse to participate by returning @false.
 
-     */
 
-     virtual bool OnStartAdvise(const wxString& topic,
 
-                                const wxString& item);
 
-     /**
 
-         Message sent to the server application by the client, when the client
 
-         wishes to stop an 'advise loop' for the given topic and item.
 
-         The server can refuse to stop the advise loop by returning @false, although
 
-         this doesn't have much meaning in practice.
 
-     */
 
-     virtual bool OnStopAdvise(const wxString& topic,
 
-                               const wxString& item);
 
-     //@{
 
-     /**
 
-         Called by the client application to poke data into the server.
 
-         Can be used to transfer arbitrary data to the server. Causes the server
 
-         connection's OnPoke() member to be called. Returns @true if successful.
 
-     */
 
-     bool Poke(const wxString& item, const void* data, size_t size,
 
-               wxIPCFormat format = wxIPC_PRIVATE);
 
-     bool Poke(const wxString& item, const char* data);
 
-     bool Poke(const wxString& item, const wchar_t* data);
 
-     bool Poke(const wxString& item, const wxString data);
 
-     //@}
 
-     /**
 
-         Called by the client application to request data from the server.
 
-         Causes the server connection's OnRequest() member to be called.
 
-         Returns a character string (actually a pointer to the connection's buffer) if
 
-         successful, @NULL otherwise.
 
-     */
 
-     virtual const void* Request(const wxString& item, size_t* size = 0,
 
-                         wxIPCFormat format = wxIPC_TEXT);
 
-     /**
 
-         Called by the client application to ask if an advise loop can be started
 
-         with the server.
 
-         Causes the server connection's OnStartAdvise() member to be called.
 
-         Returns @true if the server okays it, @false otherwise.
 
-     */
 
-     virtual bool StartAdvise(const wxString& item);
 
-     /**
 
-         Called by the client application to ask if an advise loop can be stopped.
 
-         Causes the server connection's OnStopAdvise() member to be called.
 
-         Returns @true if the server okays it, @false otherwise.
 
-     */
 
-     virtual bool StopAdvise(const wxString& item);
 
- };
 
 
  |