Updated gsocket.c to current unix version, use gsockunx.h instead of gsockos2.h

Added gsockpm.c.
Hooked socket handling into main loop.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@10242 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Stefan Neis
2001-05-20 13:25:28 +00:00
parent 5d5b1c0ce0
commit 3958ae62ba
5 changed files with 999 additions and 403 deletions

View File

@@ -12,12 +12,16 @@
#ifndef _WX_APP_H_
#define _WX_APP_H_
#include <sys/time.h>
#include <sys/types.h>
#include <unistd.h>
#include "wx/event.h"
#include "wx/icon.h"
class WXDLLEXPORT wxFrame;
class WXDLLEXPORT wxWindow;
class WXDLLEXPORT wxApp ;
class WXDLLEXPORT wxApp;
class WXDLLEXPORT wxKeyEvent;
class WXDLLEXPORT wxLog;
@@ -36,6 +40,7 @@ extern MRESULT EXPENTRY wxWndProc( HWND
,MPARAM
);
// Represents the application. Derive OnInit and declare
// a new App object to start application
class WXDLLEXPORT wxApp : public wxAppBase
@@ -76,6 +81,11 @@ public:
void SetAuto3D(bool bFlag) { m_bAuto3D = bFlag; }
bool GetAuto3D(void) const { return m_bAuto3D; }
int AddSocketHandler(int handle, int mask,
void (*callback)(void*), void * gsock);
void RemoveSocketHandler(int handle);
void HandleSockets();
protected:
bool m_bShowOnInit;
int m_nPrintMode; // wxPRINT_WINDOWS, wxPRINT_POSTSCRIPT
@@ -84,6 +94,13 @@ protected:
//
// PM-specific wxApp definitions */
//
private:
int m_maxSocketHandles;
int m_maxSocketNr;
int m_lastUsedHandle;
fd_set m_readfds, m_writefds;
void *m_sockCallbackInfo;
public:
// Implementation
@@ -98,13 +115,12 @@ public:
public:
int m_nCmdShow;
HMQ m_hMq;
protected:
bool m_bKeepGoing ;
DECLARE_EVENT_TABLE()
private:
HMQ m_hMq;
};
int WXDLLEXPORT wxEntry( int argc, char *argv[] );

View File

@@ -1,105 +0,0 @@
/* -------------------------------------------------------------------------
* Project: GSocket (Generic Socket) for WX
* Name: gsockos2.h
* Purpose: GSocket OS/2 header
* CVSID: $Id$
* -------------------------------------------------------------------------
*/
#ifndef __GSOCK_OS2_H
#define __GSOCK_OS2_H
#ifndef __GSOCKET_STANDALONE__
#include "wx/setup.h"
#endif
#if wxUSE_SOCKETS || defined(__GSOCKET_STANDALONE__)
#ifndef __GSOCKET_STANDALONE__
#include "wx/gsocket.h"
#else
#include "gsocket.h"
#endif
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#define SIGPIPE 13
/* Definition of GSocket */
struct _GSocket
{
int m_fd;
GAddress *m_local;
GAddress *m_peer;
GSocketError m_error;
int m_non_blocking;
int m_server;
int m_stream;
int m_oriented;
int m_establishing;
unsigned long m_timeout;
/* Callbacks */
GSocketEventFlags m_detected;
GSocketCallback m_cbacks[GSOCK_MAX_EVENT];
char *m_data[GSOCK_MAX_EVENT];
char *m_gui_dependent;
};
/* Definition of GAddress */
struct _GAddress
{
struct sockaddr *m_addr;
size_t m_len;
GAddressType m_family;
int m_realfamily;
GSocketError m_error;
};
/* Input / Output */
GSocketError _GSocket_Input_Timeout(GSocket *socket);
GSocketError _GSocket_Output_Timeout(GSocket *socket);
int _GSocket_Recv_Stream(GSocket *socket, char *buffer, int size);
int _GSocket_Recv_Dgram(GSocket *socket, char *buffer, int size);
int _GSocket_Send_Stream(GSocket *socket, const char *buffer, int size);
int _GSocket_Send_Dgram(GSocket *socket, const char *buffer, int size);
/* Callbacks */
void _GSocket_Enable(GSocket *socket, GSocketEvent event);
void _GSocket_Disable(GSocket *socket, GSocketEvent event);
void _GSocket_Detected_Read(GSocket *socket);
void _GSocket_Detected_Write(GSocket *socket);
void _GSocket_GUI_Init(GSocket *socket);
void _GSocket_GUI_Destroy(GSocket *socket);
void _GSocket_Enable_Events(GSocket *socket);
void _GSocket_Disable_Events(GSocket *socket);
void _GSocket_Install_Callback(GSocket *socket, GSocketEvent event);
void _GSocket_Uninstall_Callback(GSocket *socket, GSocketEvent event);
/* GAddress */
GSocketError _GAddress_translate_from(GAddress *address,
struct sockaddr *addr, int len);
GSocketError _GAddress_translate_to(GAddress *address,
struct sockaddr **addr, int *len);
GSocketError _GAddress_Init_INET(GAddress *address);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* wxUSE_SOCKETS || defined(__GSOCKET_STANDALONE__) */
#endif /* __GSOCK_UNX_H */