don't place NULL pointers in the GDK window array in GTKGetWindow()
[wxWidgets.git] / interface / wx / sckipc.h
index 38f8f3d28f35fbe4f70d5f2b620502f5f6391bf9..449bf7a05398444e54e89d6040bf21455062b813 100644 (file)
@@ -6,6 +6,36 @@
 // Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
 // Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
+
+/**
+    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
 
 /**
     @class wxTCPServer
 
@@ -16,9 +46,9 @@
     A DDE-based implementation for Windows is available using wxDDEServer.
 
     @library{wxnet}
     A DDE-based implementation for Windows is available using wxDDEServer.
 
     @library{wxnet}
-    @category{FIXME}
+    @category{net}
 
 
-    @see wxTCPClient, wxTCPConnection, @ref overview_ipcoverview "IPC overview"
+    @see wxTCPClient, wxTCPConnection, @ref overview_ipc
 */
 class wxTCPServer : public wxObject
 {
 */
 class wxTCPServer : public wxObject
 {
@@ -29,19 +59,22 @@ public:
     wxTCPServer();
 
     /**
     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).
+        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).
     */
     */
-    bool Create(const wxString& service);
+    virtual bool Create(const wxString& service);
 
     /**
         When a client calls @b MakeConnection, the server receives the
 
     /**
         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.
+        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.
     */
         Under Unix, when a server is created the OnAcceptConnection message is
         always sent for standard input and output.
     */
@@ -59,18 +92,17 @@ public:
 
     A DDE-based implementation for Windows is available using wxDDEClient.
 
 
     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.
+    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
     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
+    so that a user-overridden wxTCPClient::OnMakeConnection() member can return
     a wxTCPConnection of the required class, when a connection is made.
 
     @library{wxnet}
     a wxTCPConnection of the required class, when a connection is made.
 
     @library{wxnet}
-    @category{FIXME}
+    @category{net}
 
 
-    @see wxTCPServer, wxTCPConnection, @ref overview_ipcoverview "Interprocess
-    communications overview"
+    @see wxTCPServer, wxTCPConnection, @ref overview_ipc
 */
 class wxTCPClient : public wxObject
 {
 */
 class wxTCPClient : public wxObject
 {
@@ -82,33 +114,35 @@ public:
 
     /**
         Tries to make a connection with a server specified by the host
 
     /**
         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.
+        (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 type of wxTCPConnection returned can be altered by overriding
-        the OnMakeConnection() member to return your own
-        derived connection object.
+        the OnMakeConnection() member to return your own derived connection object.
     */
     */
-    wxConnectionBase* MakeConnection(const wxString& host,
-                                     const wxString& service,
-                                     const wxString& topic);
+    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 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
         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.
+        as wxTCPConnection::OnAdvise(). You may also want to store
+        application-specific data in instances of the new class.
     */
     */
-    wxConnectionBase* OnMakeConnection();
+    virtual wxConnectionBase* OnMakeConnection();
 
     /**
         Returns @true if this is a valid host name, @false otherwise.
     */
 
     /**
         Returns @true if this is a valid host name, @false otherwise.
     */
-    bool ValidHost(const wxString& host);
+    virtual bool ValidHost(const wxString& host);
 };
 
 
 };
 
 
@@ -123,36 +157,37 @@ public:
     A DDE-based implementation for Windows is available using wxDDEConnection.
 
     A wxTCPConnection object can be created by making a connection using a
     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.
+    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}
 
     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{FIXME}
+    @category{net}
 
 
-    @see wxTCPClient, wxTCPServer, @ref overview_ipcoverview "Interprocess
-    communications overview"
+    @see wxTCPClient, wxTCPServer, @ref overview_ipc
 */
 class wxTCPConnection : public wxObject
 {
 public:
     //@{
     /**
 */
 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
-        a buffer and size of the buffer for the connection object to use in
+        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();
         transactions.
     */
     wxTCPConnection();
@@ -162,9 +197,11 @@ public:
     //@{
     /**
         Called by the server application to advise the client of a change in
     //@{
     /**
         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.
+        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 void* data, size_t size,
                 wxIPCFormat format = wxIPC_PRIVATE);
@@ -175,22 +212,25 @@ public:
 
     /**
         Called by the client or server application to disconnect from the other
 
     /**
         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
+        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
         connection, but the calling application must explicitly delete its
-        side of the connection having called @b Disconnect. Returns @true if
-        successful.
+        side of the connection having called @b Disconnect.
+
+        Returns @true if successful.
     */
     */
-    bool Disconnect();
+    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.
+        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 void* data, size_t size,
                  wxIPCFormat format = wxIPC_PRIVATE);
@@ -211,15 +251,15 @@ public:
 
     /**
         Message sent to the client or server application when the other
 
     /**
         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.
+        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
     */
     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.
+        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,
     */
     virtual bool OnExecute(const wxString& topic, const void* data,
                            size_t size,
@@ -235,9 +275,9 @@ public:
                         wxIPCFormat format);
 
     /**
                         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,
+        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,
         or @NULL to indicate no data.
     */
     virtual const void* OnRequest(const wxString& topic,
@@ -247,16 +287,16 @@ public:
 
     /**
         Message sent to the server application by the client, when the client
 
     /**
         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.
+        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
     */
     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
+        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,
         this doesn't have much meaning in practice.
     */
     virtual bool OnStopAdvise(const wxString& topic,
@@ -264,10 +304,9 @@ public:
 
     //@{
     /**
 
     //@{
     /**
-        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.
+        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 void* data, size_t size,
               wxIPCFormat format = wxIPC_PRIVATE);
@@ -277,27 +316,29 @@ public:
     //@}
 
     /**
     //@}
 
     /**
-        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
+        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.
     */
         successful, @NULL otherwise.
     */
-    const void* Request(const wxString& item, size_t* size,
+    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
                         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.
+        with the server.
+
+        Causes the server connection's OnStartAdvise() member to be called.
+        Returns @true if the server okays it, @false otherwise.
     */
     */
-    bool StartAdvise(const wxString& item);
+    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.
+        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.
     */
     */
-    bool StopAdvise(const wxString& item);
+    virtual bool StopAdvise(const wxString& item);
 };
 
 };