Streamline wxSocket code: wxSocketBase now uses wxSocketImpl (previously known
as GSocket) which is a base class with various wxSocketImplXXX implementations provided by different wxSocketManagers. Share more code between ports (still not finished). Refactor some code inside wxSocketImpl itself to be less redundant and fixed a couple of minor bugs in the process. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56994 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
110
Makefile.in
110
Makefile.in
@@ -27,7 +27,6 @@ STRIP = @STRIP@
|
|||||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||||
INSTALL_DATA = @INSTALL_DATA@
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
INSTALL_DIR = @INSTALL_DIR@
|
INSTALL_DIR = @INSTALL_DIR@
|
||||||
ICC_PCH_USE_SWITCH = @ICC_PCH_USE_SWITCH@
|
|
||||||
BK_DEPS = @BK_DEPS@
|
BK_DEPS = @BK_DEPS@
|
||||||
BK_MAKE_PCH = @BK_MAKE_PCH@
|
BK_MAKE_PCH = @BK_MAKE_PCH@
|
||||||
srcdir = @srcdir@
|
srcdir = @srcdir@
|
||||||
@@ -817,6 +816,7 @@ ALL_BASE_SOURCES = \
|
|||||||
src/common/socket.cpp \
|
src/common/socket.cpp \
|
||||||
src/common/url.cpp \
|
src/common/url.cpp \
|
||||||
src/unix/gsocket.cpp \
|
src/unix/gsocket.cpp \
|
||||||
|
src/osx/core/gsockosx.cpp \
|
||||||
src/msw/gsocket.cpp \
|
src/msw/gsocket.cpp \
|
||||||
src/msw/gsockmsw.cpp \
|
src/msw/gsockmsw.cpp \
|
||||||
src/msw/urlmsw.cpp \
|
src/msw/urlmsw.cpp \
|
||||||
@@ -1959,7 +1959,6 @@ COND_TOOLKIT__BASE_OSX_SRC = \
|
|||||||
src/unix/utilsunx.cpp \
|
src/unix/utilsunx.cpp \
|
||||||
src/unix/mimetype.cpp \
|
src/unix/mimetype.cpp \
|
||||||
src/osx/core/cfstring.cpp \
|
src/osx/core/cfstring.cpp \
|
||||||
src/osx/core/gsockosx.cpp \
|
|
||||||
src/osx/core/stdpaths_cf.cpp \
|
src/osx/core/stdpaths_cf.cpp \
|
||||||
src/osx/core/strconv_cf.cpp \
|
src/osx/core/strconv_cf.cpp \
|
||||||
src/osx/core/utilsexc_base.cpp
|
src/osx/core/utilsexc_base.cpp
|
||||||
@@ -1980,7 +1979,6 @@ COND_TOOLKIT_COCOA_BASE_OSX_SRC = \
|
|||||||
src/unix/utilsunx.cpp \
|
src/unix/utilsunx.cpp \
|
||||||
src/unix/mimetype.cpp \
|
src/unix/mimetype.cpp \
|
||||||
src/osx/core/cfstring.cpp \
|
src/osx/core/cfstring.cpp \
|
||||||
src/osx/core/gsockosx.cpp \
|
|
||||||
src/osx/core/stdpaths_cf.cpp \
|
src/osx/core/stdpaths_cf.cpp \
|
||||||
src/osx/core/strconv_cf.cpp \
|
src/osx/core/strconv_cf.cpp \
|
||||||
src/osx/core/utilsexc_base.cpp
|
src/osx/core/utilsexc_base.cpp
|
||||||
@@ -2001,7 +1999,6 @@ COND_TOOLKIT_GTK_BASE_OSX_SRC = \
|
|||||||
src/unix/utilsunx.cpp \
|
src/unix/utilsunx.cpp \
|
||||||
src/unix/mimetype.cpp \
|
src/unix/mimetype.cpp \
|
||||||
src/osx/core/cfstring.cpp \
|
src/osx/core/cfstring.cpp \
|
||||||
src/osx/core/gsockosx.cpp \
|
|
||||||
src/osx/core/stdpaths_cf.cpp \
|
src/osx/core/stdpaths_cf.cpp \
|
||||||
src/osx/core/strconv_cf.cpp \
|
src/osx/core/strconv_cf.cpp \
|
||||||
src/osx/core/utilsexc_base.cpp
|
src/osx/core/utilsexc_base.cpp
|
||||||
@@ -2022,7 +2019,6 @@ COND_TOOLKIT_MOTIF_BASE_OSX_SRC = \
|
|||||||
src/unix/utilsunx.cpp \
|
src/unix/utilsunx.cpp \
|
||||||
src/unix/mimetype.cpp \
|
src/unix/mimetype.cpp \
|
||||||
src/osx/core/cfstring.cpp \
|
src/osx/core/cfstring.cpp \
|
||||||
src/osx/core/gsockosx.cpp \
|
|
||||||
src/osx/core/stdpaths_cf.cpp \
|
src/osx/core/stdpaths_cf.cpp \
|
||||||
src/osx/core/strconv_cf.cpp \
|
src/osx/core/strconv_cf.cpp \
|
||||||
src/osx/core/utilsexc_base.cpp
|
src/osx/core/utilsexc_base.cpp
|
||||||
@@ -2030,7 +2026,6 @@ COND_TOOLKIT_MOTIF_BASE_OSX_SRC = \
|
|||||||
COND_TOOLKIT_OSX_CARBON_BASE_OSX_SRC = \
|
COND_TOOLKIT_OSX_CARBON_BASE_OSX_SRC = \
|
||||||
src/osx/core/mimetype.cpp \
|
src/osx/core/mimetype.cpp \
|
||||||
src/osx/core/cfstring.cpp \
|
src/osx/core/cfstring.cpp \
|
||||||
src/osx/core/gsockosx.cpp \
|
|
||||||
src/osx/core/stdpaths_cf.cpp \
|
src/osx/core/stdpaths_cf.cpp \
|
||||||
src/osx/core/strconv_cf.cpp \
|
src/osx/core/strconv_cf.cpp \
|
||||||
src/osx/core/utilsexc_base.cpp \
|
src/osx/core/utilsexc_base.cpp \
|
||||||
@@ -2051,7 +2046,6 @@ COND_TOOLKIT_OSX_CARBON_BASE_OSX_SRC = \
|
|||||||
COND_TOOLKIT_OSX_COCOA_BASE_OSX_SRC = \
|
COND_TOOLKIT_OSX_COCOA_BASE_OSX_SRC = \
|
||||||
src/osx/core/mimetype.cpp \
|
src/osx/core/mimetype.cpp \
|
||||||
src/osx/core/cfstring.cpp \
|
src/osx/core/cfstring.cpp \
|
||||||
src/osx/core/gsockosx.cpp \
|
|
||||||
src/osx/core/stdpaths_cf.cpp \
|
src/osx/core/stdpaths_cf.cpp \
|
||||||
src/osx/core/strconv_cf.cpp \
|
src/osx/core/strconv_cf.cpp \
|
||||||
src/osx/core/utilsexc_base.cpp \
|
src/osx/core/utilsexc_base.cpp \
|
||||||
@@ -2085,7 +2079,6 @@ COND_TOOLKIT_X11_BASE_OSX_SRC = \
|
|||||||
src/unix/utilsunx.cpp \
|
src/unix/utilsunx.cpp \
|
||||||
src/unix/mimetype.cpp \
|
src/unix/mimetype.cpp \
|
||||||
src/osx/core/cfstring.cpp \
|
src/osx/core/cfstring.cpp \
|
||||||
src/osx/core/gsockosx.cpp \
|
|
||||||
src/osx/core/stdpaths_cf.cpp \
|
src/osx/core/stdpaths_cf.cpp \
|
||||||
src/osx/core/strconv_cf.cpp \
|
src/osx/core/strconv_cf.cpp \
|
||||||
src/osx/core/utilsexc_base.cpp
|
src/osx/core/utilsexc_base.cpp
|
||||||
@@ -3951,7 +3944,7 @@ COND_WINDOWS_IMPLIB_1___monodll___importlib = \
|
|||||||
-Wl,--out-implib=$(LIBDIRNAME)/$(LIBPREFIX)wx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX).$(DLLIMP_SUFFIX)
|
-Wl,--out-implib=$(LIBDIRNAME)/$(LIBPREFIX)wx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX).$(DLLIMP_SUFFIX)
|
||||||
@COND_WINDOWS_IMPLIB_1@__monodll___importlib = $(COND_WINDOWS_IMPLIB_1___monodll___importlib)
|
@COND_WINDOWS_IMPLIB_1@__monodll___importlib = $(COND_WINDOWS_IMPLIB_1___monodll___importlib)
|
||||||
@COND_GCC_PCH_1@__monodll_PCH_INC = -I./.pch/wxprec_monodll
|
@COND_GCC_PCH_1@__monodll_PCH_INC = -I./.pch/wxprec_monodll
|
||||||
@COND_ICC_PCH_1@__monodll_PCH_INC = $(ICC_PCH_USE_SWITCH) \
|
@COND_ICC_PCH_1@__monodll_PCH_INC = -use_pch \
|
||||||
@COND_ICC_PCH_1@ ./.pch/wxprec_monodll/wx/wxprec.h.gch
|
@COND_ICC_PCH_1@ ./.pch/wxprec_monodll/wx/wxprec.h.gch
|
||||||
@COND_USE_PCH_1@_____pch_wxprec_monodll_wx_wxprec_h_gch___depname \
|
@COND_USE_PCH_1@_____pch_wxprec_monodll_wx_wxprec_h_gch___depname \
|
||||||
@COND_USE_PCH_1@ = ./.pch/wxprec_monodll/wx/wxprec.h.gch
|
@COND_USE_PCH_1@ = ./.pch/wxprec_monodll/wx/wxprec.h.gch
|
||||||
@@ -3988,7 +3981,6 @@ COND_USE_SOSYMLINKS_1___monodll___so_symlinks_uninst_cmd = rm -f \
|
|||||||
COND_PLATFORM_MACOSX_1___BASE_PLATFORM_SRC_OBJECTS = \
|
COND_PLATFORM_MACOSX_1___BASE_PLATFORM_SRC_OBJECTS = \
|
||||||
monodll_core_mimetype.o \
|
monodll_core_mimetype.o \
|
||||||
monodll_cfstring.o \
|
monodll_cfstring.o \
|
||||||
monodll_gsockosx.o \
|
|
||||||
monodll_stdpaths_cf.o \
|
monodll_stdpaths_cf.o \
|
||||||
monodll_strconv_cf.o \
|
monodll_strconv_cf.o \
|
||||||
monodll_utilsexc_base.o \
|
monodll_utilsexc_base.o \
|
||||||
@@ -4069,7 +4061,8 @@ COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS = \
|
|||||||
@COND_TOOLKIT_OSX_CARBON@ = monodll_carbon_utils.o monodll_uma.o
|
@COND_TOOLKIT_OSX_CARBON@ = monodll_carbon_utils.o monodll_uma.o
|
||||||
@COND_TOOLKIT_OSX_COCOA@__BASE_AND_GUI_TOOLKIT_SRC_OBJECTS \
|
@COND_TOOLKIT_OSX_COCOA@__BASE_AND_GUI_TOOLKIT_SRC_OBJECTS \
|
||||||
@COND_TOOLKIT_OSX_COCOA@ = monodll_osx_cocoa_utils.o
|
@COND_TOOLKIT_OSX_COCOA@ = monodll_osx_cocoa_utils.o
|
||||||
@COND_PLATFORM_MACOSX_1@__NET_PLATFORM_SRC_OBJECTS = monodll_unix_gsocket.o
|
@COND_PLATFORM_MACOSX_1@__NET_PLATFORM_SRC_OBJECTS \
|
||||||
|
@COND_PLATFORM_MACOSX_1@ = monodll_unix_gsocket.o monodll_gsockosx.o
|
||||||
@COND_PLATFORM_OS2_1@__NET_PLATFORM_SRC_OBJECTS = monodll_unix_gsocket.o
|
@COND_PLATFORM_OS2_1@__NET_PLATFORM_SRC_OBJECTS = monodll_unix_gsocket.o
|
||||||
@COND_PLATFORM_UNIX_1@__NET_PLATFORM_SRC_OBJECTS = monodll_unix_gsocket.o
|
@COND_PLATFORM_UNIX_1@__NET_PLATFORM_SRC_OBJECTS = monodll_unix_gsocket.o
|
||||||
COND_PLATFORM_WIN32_1___NET_PLATFORM_SRC_OBJECTS = \
|
COND_PLATFORM_WIN32_1___NET_PLATFORM_SRC_OBJECTS = \
|
||||||
@@ -5793,14 +5786,13 @@ COND_MONOLITHIC_1_SHARED_0___monolib___depname = \
|
|||||||
@COND_MONOLITHIC_1_SHARED_0@__uninstall_monolib___depname \
|
@COND_MONOLITHIC_1_SHARED_0@__uninstall_monolib___depname \
|
||||||
@COND_MONOLITHIC_1_SHARED_0@ = uninstall_monolib
|
@COND_MONOLITHIC_1_SHARED_0@ = uninstall_monolib
|
||||||
@COND_GCC_PCH_1@__monolib_PCH_INC = -I./.pch/wxprec_monolib
|
@COND_GCC_PCH_1@__monolib_PCH_INC = -I./.pch/wxprec_monolib
|
||||||
@COND_ICC_PCH_1@__monolib_PCH_INC = $(ICC_PCH_USE_SWITCH) \
|
@COND_ICC_PCH_1@__monolib_PCH_INC = -use_pch \
|
||||||
@COND_ICC_PCH_1@ ./.pch/wxprec_monolib/wx/wxprec.h.gch
|
@COND_ICC_PCH_1@ ./.pch/wxprec_monolib/wx/wxprec.h.gch
|
||||||
@COND_USE_PCH_1@_____pch_wxprec_monolib_wx_wxprec_h_gch___depname \
|
@COND_USE_PCH_1@_____pch_wxprec_monolib_wx_wxprec_h_gch___depname \
|
||||||
@COND_USE_PCH_1@ = ./.pch/wxprec_monolib/wx/wxprec.h.gch
|
@COND_USE_PCH_1@ = ./.pch/wxprec_monolib/wx/wxprec.h.gch
|
||||||
COND_PLATFORM_MACOSX_1___BASE_PLATFORM_SRC_OBJECTS_1 = \
|
COND_PLATFORM_MACOSX_1___BASE_PLATFORM_SRC_OBJECTS_1 = \
|
||||||
monolib_core_mimetype.o \
|
monolib_core_mimetype.o \
|
||||||
monolib_cfstring.o \
|
monolib_cfstring.o \
|
||||||
monolib_gsockosx.o \
|
|
||||||
monolib_stdpaths_cf.o \
|
monolib_stdpaths_cf.o \
|
||||||
monolib_strconv_cf.o \
|
monolib_strconv_cf.o \
|
||||||
monolib_utilsexc_base.o \
|
monolib_utilsexc_base.o \
|
||||||
@@ -5882,7 +5874,7 @@ COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS_1 = \
|
|||||||
@COND_TOOLKIT_OSX_COCOA@__BASE_AND_GUI_TOOLKIT_SRC_OBJECTS_1 \
|
@COND_TOOLKIT_OSX_COCOA@__BASE_AND_GUI_TOOLKIT_SRC_OBJECTS_1 \
|
||||||
@COND_TOOLKIT_OSX_COCOA@ = monolib_osx_cocoa_utils.o
|
@COND_TOOLKIT_OSX_COCOA@ = monolib_osx_cocoa_utils.o
|
||||||
@COND_PLATFORM_MACOSX_1@__NET_PLATFORM_SRC_OBJECTS_1 \
|
@COND_PLATFORM_MACOSX_1@__NET_PLATFORM_SRC_OBJECTS_1 \
|
||||||
@COND_PLATFORM_MACOSX_1@ = monolib_unix_gsocket.o
|
@COND_PLATFORM_MACOSX_1@ = monolib_unix_gsocket.o monolib_gsockosx.o
|
||||||
@COND_PLATFORM_OS2_1@__NET_PLATFORM_SRC_OBJECTS_1 = monolib_unix_gsocket.o
|
@COND_PLATFORM_OS2_1@__NET_PLATFORM_SRC_OBJECTS_1 = monolib_unix_gsocket.o
|
||||||
@COND_PLATFORM_UNIX_1@__NET_PLATFORM_SRC_OBJECTS_1 = monolib_unix_gsocket.o
|
@COND_PLATFORM_UNIX_1@__NET_PLATFORM_SRC_OBJECTS_1 = monolib_unix_gsocket.o
|
||||||
COND_PLATFORM_WIN32_1___NET_PLATFORM_SRC_OBJECTS_1 = \
|
COND_PLATFORM_WIN32_1___NET_PLATFORM_SRC_OBJECTS_1 = \
|
||||||
@@ -7612,7 +7604,7 @@ COND_WINDOWS_IMPLIB_1___basedll___importlib = \
|
|||||||
-Wl,--out-implib=$(LIBDIRNAME)/$(LIBPREFIX)wx_base$(WXBASEPORT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX).$(DLLIMP_SUFFIX)
|
-Wl,--out-implib=$(LIBDIRNAME)/$(LIBPREFIX)wx_base$(WXBASEPORT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX).$(DLLIMP_SUFFIX)
|
||||||
@COND_WINDOWS_IMPLIB_1@__basedll___importlib = $(COND_WINDOWS_IMPLIB_1___basedll___importlib)
|
@COND_WINDOWS_IMPLIB_1@__basedll___importlib = $(COND_WINDOWS_IMPLIB_1___basedll___importlib)
|
||||||
@COND_GCC_PCH_1@__basedll_PCH_INC = -I./.pch/wxprec_basedll
|
@COND_GCC_PCH_1@__basedll_PCH_INC = -I./.pch/wxprec_basedll
|
||||||
@COND_ICC_PCH_1@__basedll_PCH_INC = $(ICC_PCH_USE_SWITCH) \
|
@COND_ICC_PCH_1@__basedll_PCH_INC = -use_pch \
|
||||||
@COND_ICC_PCH_1@ ./.pch/wxprec_basedll/wx/wxprec.h.gch
|
@COND_ICC_PCH_1@ ./.pch/wxprec_basedll/wx/wxprec.h.gch
|
||||||
@COND_USE_PCH_1@_____pch_wxprec_basedll_wx_wxprec_h_gch___depname \
|
@COND_USE_PCH_1@_____pch_wxprec_basedll_wx_wxprec_h_gch___depname \
|
||||||
@COND_USE_PCH_1@ = ./.pch/wxprec_basedll/wx/wxprec.h.gch
|
@COND_USE_PCH_1@ = ./.pch/wxprec_basedll/wx/wxprec.h.gch
|
||||||
@@ -7650,7 +7642,6 @@ COND_USE_SOSYMLINKS_1___basedll___so_symlinks_uninst_cmd = rm -f \
|
|||||||
COND_PLATFORM_MACOSX_1___BASE_PLATFORM_SRC_OBJECTS_2 = \
|
COND_PLATFORM_MACOSX_1___BASE_PLATFORM_SRC_OBJECTS_2 = \
|
||||||
basedll_core_mimetype.o \
|
basedll_core_mimetype.o \
|
||||||
basedll_cfstring.o \
|
basedll_cfstring.o \
|
||||||
basedll_gsockosx.o \
|
|
||||||
basedll_stdpaths_cf.o \
|
basedll_stdpaths_cf.o \
|
||||||
basedll_strconv_cf.o \
|
basedll_strconv_cf.o \
|
||||||
basedll_utilsexc_base.o \
|
basedll_utilsexc_base.o \
|
||||||
@@ -7738,14 +7729,13 @@ COND_MONOLITHIC_0_SHARED_0___baselib___depname = \
|
|||||||
@COND_MONOLITHIC_0_SHARED_0@__uninstall_baselib___depname \
|
@COND_MONOLITHIC_0_SHARED_0@__uninstall_baselib___depname \
|
||||||
@COND_MONOLITHIC_0_SHARED_0@ = uninstall_baselib
|
@COND_MONOLITHIC_0_SHARED_0@ = uninstall_baselib
|
||||||
@COND_GCC_PCH_1@__baselib_PCH_INC = -I./.pch/wxprec_baselib
|
@COND_GCC_PCH_1@__baselib_PCH_INC = -I./.pch/wxprec_baselib
|
||||||
@COND_ICC_PCH_1@__baselib_PCH_INC = $(ICC_PCH_USE_SWITCH) \
|
@COND_ICC_PCH_1@__baselib_PCH_INC = -use_pch \
|
||||||
@COND_ICC_PCH_1@ ./.pch/wxprec_baselib/wx/wxprec.h.gch
|
@COND_ICC_PCH_1@ ./.pch/wxprec_baselib/wx/wxprec.h.gch
|
||||||
@COND_USE_PCH_1@_____pch_wxprec_baselib_wx_wxprec_h_gch___depname \
|
@COND_USE_PCH_1@_____pch_wxprec_baselib_wx_wxprec_h_gch___depname \
|
||||||
@COND_USE_PCH_1@ = ./.pch/wxprec_baselib/wx/wxprec.h.gch
|
@COND_USE_PCH_1@ = ./.pch/wxprec_baselib/wx/wxprec.h.gch
|
||||||
COND_PLATFORM_MACOSX_1___BASE_PLATFORM_SRC_OBJECTS_3 = \
|
COND_PLATFORM_MACOSX_1___BASE_PLATFORM_SRC_OBJECTS_3 = \
|
||||||
baselib_core_mimetype.o \
|
baselib_core_mimetype.o \
|
||||||
baselib_cfstring.o \
|
baselib_cfstring.o \
|
||||||
baselib_gsockosx.o \
|
|
||||||
baselib_stdpaths_cf.o \
|
baselib_stdpaths_cf.o \
|
||||||
baselib_strconv_cf.o \
|
baselib_strconv_cf.o \
|
||||||
baselib_utilsexc_base.o \
|
baselib_utilsexc_base.o \
|
||||||
@@ -7843,7 +7833,7 @@ COND_WINDOWS_IMPLIB_1___netdll___importlib = \
|
|||||||
-Wl,--out-implib=$(LIBDIRNAME)/$(LIBPREFIX)wx_base$(WXBASEPORT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_net-$(WX_RELEASE)$(HOST_SUFFIX).$(DLLIMP_SUFFIX)
|
-Wl,--out-implib=$(LIBDIRNAME)/$(LIBPREFIX)wx_base$(WXBASEPORT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_net-$(WX_RELEASE)$(HOST_SUFFIX).$(DLLIMP_SUFFIX)
|
||||||
@COND_WINDOWS_IMPLIB_1@__netdll___importlib = $(COND_WINDOWS_IMPLIB_1___netdll___importlib)
|
@COND_WINDOWS_IMPLIB_1@__netdll___importlib = $(COND_WINDOWS_IMPLIB_1___netdll___importlib)
|
||||||
@COND_GCC_PCH_1@__netdll_PCH_INC = -I./.pch/wxprec_netdll
|
@COND_GCC_PCH_1@__netdll_PCH_INC = -I./.pch/wxprec_netdll
|
||||||
@COND_ICC_PCH_1@__netdll_PCH_INC = $(ICC_PCH_USE_SWITCH) \
|
@COND_ICC_PCH_1@__netdll_PCH_INC = -use_pch \
|
||||||
@COND_ICC_PCH_1@ ./.pch/wxprec_netdll/wx/wxprec.h.gch
|
@COND_ICC_PCH_1@ ./.pch/wxprec_netdll/wx/wxprec.h.gch
|
||||||
@COND_USE_PCH_1@_____pch_wxprec_netdll_wx_wxprec_h_gch___depname \
|
@COND_USE_PCH_1@_____pch_wxprec_netdll_wx_wxprec_h_gch___depname \
|
||||||
@COND_USE_PCH_1@ = ./.pch/wxprec_netdll/wx/wxprec.h.gch
|
@COND_USE_PCH_1@ = ./.pch/wxprec_netdll/wx/wxprec.h.gch
|
||||||
@@ -7879,7 +7869,7 @@ COND_USE_SOSYMLINKS_1___netdll___so_symlinks_uninst_cmd = rm -f \
|
|||||||
@COND_USE_SOSYMLINKS_1@__netdll___so_symlinks_uninst_cmd = $(COND_USE_SOSYMLINKS_1___netdll___so_symlinks_uninst_cmd)
|
@COND_USE_SOSYMLINKS_1@__netdll___so_symlinks_uninst_cmd = $(COND_USE_SOSYMLINKS_1___netdll___so_symlinks_uninst_cmd)
|
||||||
@COND_PLATFORM_WIN32_1@__netdll___win32rc = netdll_version_rc.o
|
@COND_PLATFORM_WIN32_1@__netdll___win32rc = netdll_version_rc.o
|
||||||
@COND_PLATFORM_MACOSX_1@__NET_PLATFORM_SRC_OBJECTS_2 \
|
@COND_PLATFORM_MACOSX_1@__NET_PLATFORM_SRC_OBJECTS_2 \
|
||||||
@COND_PLATFORM_MACOSX_1@ = netdll_unix_gsocket.o
|
@COND_PLATFORM_MACOSX_1@ = netdll_unix_gsocket.o netdll_gsockosx.o
|
||||||
@COND_PLATFORM_OS2_1@__NET_PLATFORM_SRC_OBJECTS_2 = netdll_unix_gsocket.o
|
@COND_PLATFORM_OS2_1@__NET_PLATFORM_SRC_OBJECTS_2 = netdll_unix_gsocket.o
|
||||||
@COND_PLATFORM_UNIX_1@__NET_PLATFORM_SRC_OBJECTS_2 = netdll_unix_gsocket.o
|
@COND_PLATFORM_UNIX_1@__NET_PLATFORM_SRC_OBJECTS_2 = netdll_unix_gsocket.o
|
||||||
COND_PLATFORM_WIN32_1___NET_PLATFORM_SRC_OBJECTS_2 = \
|
COND_PLATFORM_WIN32_1___NET_PLATFORM_SRC_OBJECTS_2 = \
|
||||||
@@ -7895,12 +7885,12 @@ COND_MONOLITHIC_0_SHARED_0___netlib___depname = \
|
|||||||
@COND_MONOLITHIC_0_SHARED_0@__install_netlib___depname = install_netlib
|
@COND_MONOLITHIC_0_SHARED_0@__install_netlib___depname = install_netlib
|
||||||
@COND_MONOLITHIC_0_SHARED_0@__uninstall_netlib___depname = uninstall_netlib
|
@COND_MONOLITHIC_0_SHARED_0@__uninstall_netlib___depname = uninstall_netlib
|
||||||
@COND_GCC_PCH_1@__netlib_PCH_INC = -I./.pch/wxprec_netlib
|
@COND_GCC_PCH_1@__netlib_PCH_INC = -I./.pch/wxprec_netlib
|
||||||
@COND_ICC_PCH_1@__netlib_PCH_INC = $(ICC_PCH_USE_SWITCH) \
|
@COND_ICC_PCH_1@__netlib_PCH_INC = -use_pch \
|
||||||
@COND_ICC_PCH_1@ ./.pch/wxprec_netlib/wx/wxprec.h.gch
|
@COND_ICC_PCH_1@ ./.pch/wxprec_netlib/wx/wxprec.h.gch
|
||||||
@COND_USE_PCH_1@_____pch_wxprec_netlib_wx_wxprec_h_gch___depname \
|
@COND_USE_PCH_1@_____pch_wxprec_netlib_wx_wxprec_h_gch___depname \
|
||||||
@COND_USE_PCH_1@ = ./.pch/wxprec_netlib/wx/wxprec.h.gch
|
@COND_USE_PCH_1@ = ./.pch/wxprec_netlib/wx/wxprec.h.gch
|
||||||
@COND_PLATFORM_MACOSX_1@__NET_PLATFORM_SRC_OBJECTS_3 \
|
@COND_PLATFORM_MACOSX_1@__NET_PLATFORM_SRC_OBJECTS_3 \
|
||||||
@COND_PLATFORM_MACOSX_1@ = netlib_unix_gsocket.o
|
@COND_PLATFORM_MACOSX_1@ = netlib_unix_gsocket.o netlib_gsockosx.o
|
||||||
@COND_PLATFORM_OS2_1@__NET_PLATFORM_SRC_OBJECTS_3 = netlib_unix_gsocket.o
|
@COND_PLATFORM_OS2_1@__NET_PLATFORM_SRC_OBJECTS_3 = netlib_unix_gsocket.o
|
||||||
@COND_PLATFORM_UNIX_1@__NET_PLATFORM_SRC_OBJECTS_3 = netlib_unix_gsocket.o
|
@COND_PLATFORM_UNIX_1@__NET_PLATFORM_SRC_OBJECTS_3 = netlib_unix_gsocket.o
|
||||||
COND_PLATFORM_WIN32_1___NET_PLATFORM_SRC_OBJECTS_3 = \
|
COND_PLATFORM_WIN32_1___NET_PLATFORM_SRC_OBJECTS_3 = \
|
||||||
@@ -7929,7 +7919,7 @@ COND_WINDOWS_IMPLIB_1___coredll___importlib = \
|
|||||||
-Wl,--out-implib=$(LIBDIRNAME)/$(LIBPREFIX)wx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core-$(WX_RELEASE)$(HOST_SUFFIX).$(DLLIMP_SUFFIX)
|
-Wl,--out-implib=$(LIBDIRNAME)/$(LIBPREFIX)wx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core-$(WX_RELEASE)$(HOST_SUFFIX).$(DLLIMP_SUFFIX)
|
||||||
@COND_WINDOWS_IMPLIB_1@__coredll___importlib = $(COND_WINDOWS_IMPLIB_1___coredll___importlib)
|
@COND_WINDOWS_IMPLIB_1@__coredll___importlib = $(COND_WINDOWS_IMPLIB_1___coredll___importlib)
|
||||||
@COND_GCC_PCH_1@__coredll_PCH_INC = -I./.pch/wxprec_coredll
|
@COND_GCC_PCH_1@__coredll_PCH_INC = -I./.pch/wxprec_coredll
|
||||||
@COND_ICC_PCH_1@__coredll_PCH_INC = $(ICC_PCH_USE_SWITCH) \
|
@COND_ICC_PCH_1@__coredll_PCH_INC = -use_pch \
|
||||||
@COND_ICC_PCH_1@ ./.pch/wxprec_coredll/wx/wxprec.h.gch
|
@COND_ICC_PCH_1@ ./.pch/wxprec_coredll/wx/wxprec.h.gch
|
||||||
@COND_USE_PCH_1@_____pch_wxprec_coredll_wx_wxprec_h_gch___depname \
|
@COND_USE_PCH_1@_____pch_wxprec_coredll_wx_wxprec_h_gch___depname \
|
||||||
@COND_USE_PCH_1@ = ./.pch/wxprec_coredll/wx/wxprec.h.gch
|
@COND_USE_PCH_1@ = ./.pch/wxprec_coredll/wx/wxprec.h.gch
|
||||||
@@ -9464,7 +9454,7 @@ COND_MONOLITHIC_0_SHARED_0_USE_GUI_1___corelib___depname = \
|
|||||||
@COND_MONOLITHIC_0_SHARED_0_USE_GUI_1@__uninstall_corelib___depname \
|
@COND_MONOLITHIC_0_SHARED_0_USE_GUI_1@__uninstall_corelib___depname \
|
||||||
@COND_MONOLITHIC_0_SHARED_0_USE_GUI_1@ = uninstall_corelib
|
@COND_MONOLITHIC_0_SHARED_0_USE_GUI_1@ = uninstall_corelib
|
||||||
@COND_GCC_PCH_1@__corelib_PCH_INC = -I./.pch/wxprec_corelib
|
@COND_GCC_PCH_1@__corelib_PCH_INC = -I./.pch/wxprec_corelib
|
||||||
@COND_ICC_PCH_1@__corelib_PCH_INC = $(ICC_PCH_USE_SWITCH) \
|
@COND_ICC_PCH_1@__corelib_PCH_INC = -use_pch \
|
||||||
@COND_ICC_PCH_1@ ./.pch/wxprec_corelib/wx/wxprec.h.gch
|
@COND_ICC_PCH_1@ ./.pch/wxprec_corelib/wx/wxprec.h.gch
|
||||||
@COND_USE_PCH_1@_____pch_wxprec_corelib_wx_wxprec_h_gch___depname \
|
@COND_USE_PCH_1@_____pch_wxprec_corelib_wx_wxprec_h_gch___depname \
|
||||||
@COND_USE_PCH_1@ = ./.pch/wxprec_corelib/wx/wxprec.h.gch
|
@COND_USE_PCH_1@ = ./.pch/wxprec_corelib/wx/wxprec.h.gch
|
||||||
@@ -10979,7 +10969,7 @@ COND_WINDOWS_IMPLIB_1___advdll___importlib = \
|
|||||||
-Wl,--out-implib=$(LIBDIRNAME)/$(LIBPREFIX)wx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_adv-$(WX_RELEASE)$(HOST_SUFFIX).$(DLLIMP_SUFFIX)
|
-Wl,--out-implib=$(LIBDIRNAME)/$(LIBPREFIX)wx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_adv-$(WX_RELEASE)$(HOST_SUFFIX).$(DLLIMP_SUFFIX)
|
||||||
@COND_WINDOWS_IMPLIB_1@__advdll___importlib = $(COND_WINDOWS_IMPLIB_1___advdll___importlib)
|
@COND_WINDOWS_IMPLIB_1@__advdll___importlib = $(COND_WINDOWS_IMPLIB_1___advdll___importlib)
|
||||||
@COND_GCC_PCH_1@__advdll_PCH_INC = -I./.pch/wxprec_advdll
|
@COND_GCC_PCH_1@__advdll_PCH_INC = -I./.pch/wxprec_advdll
|
||||||
@COND_ICC_PCH_1@__advdll_PCH_INC = $(ICC_PCH_USE_SWITCH) \
|
@COND_ICC_PCH_1@__advdll_PCH_INC = -use_pch \
|
||||||
@COND_ICC_PCH_1@ ./.pch/wxprec_advdll/wx/wxprec.h.gch
|
@COND_ICC_PCH_1@ ./.pch/wxprec_advdll/wx/wxprec.h.gch
|
||||||
@COND_USE_PCH_1@_____pch_wxprec_advdll_wx_wxprec_h_gch___depname \
|
@COND_USE_PCH_1@_____pch_wxprec_advdll_wx_wxprec_h_gch___depname \
|
||||||
@COND_USE_PCH_1@ = ./.pch/wxprec_advdll/wx/wxprec.h.gch
|
@COND_USE_PCH_1@ = ./.pch/wxprec_advdll/wx/wxprec.h.gch
|
||||||
@@ -11100,7 +11090,7 @@ COND_MONOLITHIC_0_SHARED_0_USE_GUI_1___advlib___depname = \
|
|||||||
@COND_MONOLITHIC_0_SHARED_0_USE_GUI_1@__uninstall_advlib___depname \
|
@COND_MONOLITHIC_0_SHARED_0_USE_GUI_1@__uninstall_advlib___depname \
|
||||||
@COND_MONOLITHIC_0_SHARED_0_USE_GUI_1@ = uninstall_advlib
|
@COND_MONOLITHIC_0_SHARED_0_USE_GUI_1@ = uninstall_advlib
|
||||||
@COND_GCC_PCH_1@__advlib_PCH_INC = -I./.pch/wxprec_advlib
|
@COND_GCC_PCH_1@__advlib_PCH_INC = -I./.pch/wxprec_advlib
|
||||||
@COND_ICC_PCH_1@__advlib_PCH_INC = $(ICC_PCH_USE_SWITCH) \
|
@COND_ICC_PCH_1@__advlib_PCH_INC = -use_pch \
|
||||||
@COND_ICC_PCH_1@ ./.pch/wxprec_advlib/wx/wxprec.h.gch
|
@COND_ICC_PCH_1@ ./.pch/wxprec_advlib/wx/wxprec.h.gch
|
||||||
@COND_USE_PCH_1@_____pch_wxprec_advlib_wx_wxprec_h_gch___depname \
|
@COND_USE_PCH_1@_____pch_wxprec_advlib_wx_wxprec_h_gch___depname \
|
||||||
@COND_USE_PCH_1@ = ./.pch/wxprec_advlib/wx/wxprec.h.gch
|
@COND_USE_PCH_1@ = ./.pch/wxprec_advlib/wx/wxprec.h.gch
|
||||||
@@ -11201,7 +11191,7 @@ COND_WINDOWS_IMPLIB_1___mediadll___importlib = \
|
|||||||
-Wl,--out-implib=$(LIBDIRNAME)/$(LIBPREFIX)wx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_media-$(WX_RELEASE)$(HOST_SUFFIX).$(DLLIMP_SUFFIX)
|
-Wl,--out-implib=$(LIBDIRNAME)/$(LIBPREFIX)wx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_media-$(WX_RELEASE)$(HOST_SUFFIX).$(DLLIMP_SUFFIX)
|
||||||
@COND_WINDOWS_IMPLIB_1@__mediadll___importlib = $(COND_WINDOWS_IMPLIB_1___mediadll___importlib)
|
@COND_WINDOWS_IMPLIB_1@__mediadll___importlib = $(COND_WINDOWS_IMPLIB_1___mediadll___importlib)
|
||||||
@COND_GCC_PCH_1@__mediadll_PCH_INC = -I./.pch/wxprec_mediadll
|
@COND_GCC_PCH_1@__mediadll_PCH_INC = -I./.pch/wxprec_mediadll
|
||||||
@COND_ICC_PCH_1@__mediadll_PCH_INC = $(ICC_PCH_USE_SWITCH) \
|
@COND_ICC_PCH_1@__mediadll_PCH_INC = -use_pch \
|
||||||
@COND_ICC_PCH_1@ ./.pch/wxprec_mediadll/wx/wxprec.h.gch
|
@COND_ICC_PCH_1@ ./.pch/wxprec_mediadll/wx/wxprec.h.gch
|
||||||
@COND_USE_PCH_1@_____pch_wxprec_mediadll_wx_wxprec_h_gch___depname \
|
@COND_USE_PCH_1@_____pch_wxprec_mediadll_wx_wxprec_h_gch___depname \
|
||||||
@COND_USE_PCH_1@ = ./.pch/wxprec_mediadll/wx/wxprec.h.gch
|
@COND_USE_PCH_1@ = ./.pch/wxprec_mediadll/wx/wxprec.h.gch
|
||||||
@@ -11268,7 +11258,7 @@ COND_MONOLITHIC_0_SHARED_0_USE_GUI_1_USE_MEDIA_1___medialib___depname = \
|
|||||||
@COND_MONOLITHIC_0_SHARED_0_USE_GUI_1_USE_MEDIA_1@__uninstall_medialib___depname \
|
@COND_MONOLITHIC_0_SHARED_0_USE_GUI_1_USE_MEDIA_1@__uninstall_medialib___depname \
|
||||||
@COND_MONOLITHIC_0_SHARED_0_USE_GUI_1_USE_MEDIA_1@ = uninstall_medialib
|
@COND_MONOLITHIC_0_SHARED_0_USE_GUI_1_USE_MEDIA_1@ = uninstall_medialib
|
||||||
@COND_GCC_PCH_1@__medialib_PCH_INC = -I./.pch/wxprec_medialib
|
@COND_GCC_PCH_1@__medialib_PCH_INC = -I./.pch/wxprec_medialib
|
||||||
@COND_ICC_PCH_1@__medialib_PCH_INC = $(ICC_PCH_USE_SWITCH) \
|
@COND_ICC_PCH_1@__medialib_PCH_INC = -use_pch \
|
||||||
@COND_ICC_PCH_1@ ./.pch/wxprec_medialib/wx/wxprec.h.gch
|
@COND_ICC_PCH_1@ ./.pch/wxprec_medialib/wx/wxprec.h.gch
|
||||||
@COND_USE_PCH_1@_____pch_wxprec_medialib_wx_wxprec_h_gch___depname \
|
@COND_USE_PCH_1@_____pch_wxprec_medialib_wx_wxprec_h_gch___depname \
|
||||||
@COND_USE_PCH_1@ = ./.pch/wxprec_medialib/wx/wxprec.h.gch
|
@COND_USE_PCH_1@ = ./.pch/wxprec_medialib/wx/wxprec.h.gch
|
||||||
@@ -11315,7 +11305,7 @@ COND_WINDOWS_IMPLIB_1___htmldll___importlib = \
|
|||||||
-Wl,--out-implib=$(LIBDIRNAME)/$(LIBPREFIX)wx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_html-$(WX_RELEASE)$(HOST_SUFFIX).$(DLLIMP_SUFFIX)
|
-Wl,--out-implib=$(LIBDIRNAME)/$(LIBPREFIX)wx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_html-$(WX_RELEASE)$(HOST_SUFFIX).$(DLLIMP_SUFFIX)
|
||||||
@COND_WINDOWS_IMPLIB_1@__htmldll___importlib = $(COND_WINDOWS_IMPLIB_1___htmldll___importlib)
|
@COND_WINDOWS_IMPLIB_1@__htmldll___importlib = $(COND_WINDOWS_IMPLIB_1___htmldll___importlib)
|
||||||
@COND_GCC_PCH_1@__htmldll_PCH_INC = -I./.pch/wxprec_htmldll
|
@COND_GCC_PCH_1@__htmldll_PCH_INC = -I./.pch/wxprec_htmldll
|
||||||
@COND_ICC_PCH_1@__htmldll_PCH_INC = $(ICC_PCH_USE_SWITCH) \
|
@COND_ICC_PCH_1@__htmldll_PCH_INC = -use_pch \
|
||||||
@COND_ICC_PCH_1@ ./.pch/wxprec_htmldll/wx/wxprec.h.gch
|
@COND_ICC_PCH_1@ ./.pch/wxprec_htmldll/wx/wxprec.h.gch
|
||||||
@COND_USE_PCH_1@_____pch_wxprec_htmldll_wx_wxprec_h_gch___depname \
|
@COND_USE_PCH_1@_____pch_wxprec_htmldll_wx_wxprec_h_gch___depname \
|
||||||
@COND_USE_PCH_1@ = ./.pch/wxprec_htmldll/wx/wxprec.h.gch
|
@COND_USE_PCH_1@ = ./.pch/wxprec_htmldll/wx/wxprec.h.gch
|
||||||
@@ -11361,7 +11351,7 @@ COND_MONOLITHIC_0_SHARED_0_USE_GUI_1_USE_HTML_1___htmllib___depname = \
|
|||||||
@COND_MONOLITHIC_0_SHARED_0_USE_GUI_1_USE_HTML_1@__uninstall_htmllib___depname \
|
@COND_MONOLITHIC_0_SHARED_0_USE_GUI_1_USE_HTML_1@__uninstall_htmllib___depname \
|
||||||
@COND_MONOLITHIC_0_SHARED_0_USE_GUI_1_USE_HTML_1@ = uninstall_htmllib
|
@COND_MONOLITHIC_0_SHARED_0_USE_GUI_1_USE_HTML_1@ = uninstall_htmllib
|
||||||
@COND_GCC_PCH_1@__htmllib_PCH_INC = -I./.pch/wxprec_htmllib
|
@COND_GCC_PCH_1@__htmllib_PCH_INC = -I./.pch/wxprec_htmllib
|
||||||
@COND_ICC_PCH_1@__htmllib_PCH_INC = $(ICC_PCH_USE_SWITCH) \
|
@COND_ICC_PCH_1@__htmllib_PCH_INC = -use_pch \
|
||||||
@COND_ICC_PCH_1@ ./.pch/wxprec_htmllib/wx/wxprec.h.gch
|
@COND_ICC_PCH_1@ ./.pch/wxprec_htmllib/wx/wxprec.h.gch
|
||||||
@COND_USE_PCH_1@_____pch_wxprec_htmllib_wx_wxprec_h_gch___depname \
|
@COND_USE_PCH_1@_____pch_wxprec_htmllib_wx_wxprec_h_gch___depname \
|
||||||
@COND_USE_PCH_1@ = ./.pch/wxprec_htmllib/wx/wxprec.h.gch
|
@COND_USE_PCH_1@ = ./.pch/wxprec_htmllib/wx/wxprec.h.gch
|
||||||
@@ -11387,7 +11377,7 @@ COND_WINDOWS_IMPLIB_1___qadll___importlib = \
|
|||||||
-Wl,--out-implib=$(LIBDIRNAME)/$(LIBPREFIX)wx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_qa-$(WX_RELEASE)$(HOST_SUFFIX).$(DLLIMP_SUFFIX)
|
-Wl,--out-implib=$(LIBDIRNAME)/$(LIBPREFIX)wx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_qa-$(WX_RELEASE)$(HOST_SUFFIX).$(DLLIMP_SUFFIX)
|
||||||
@COND_WINDOWS_IMPLIB_1@__qadll___importlib = $(COND_WINDOWS_IMPLIB_1___qadll___importlib)
|
@COND_WINDOWS_IMPLIB_1@__qadll___importlib = $(COND_WINDOWS_IMPLIB_1___qadll___importlib)
|
||||||
@COND_GCC_PCH_1@__qadll_PCH_INC = -I./.pch/wxprec_qadll
|
@COND_GCC_PCH_1@__qadll_PCH_INC = -I./.pch/wxprec_qadll
|
||||||
@COND_ICC_PCH_1@__qadll_PCH_INC = $(ICC_PCH_USE_SWITCH) \
|
@COND_ICC_PCH_1@__qadll_PCH_INC = -use_pch \
|
||||||
@COND_ICC_PCH_1@ ./.pch/wxprec_qadll/wx/wxprec.h.gch
|
@COND_ICC_PCH_1@ ./.pch/wxprec_qadll/wx/wxprec.h.gch
|
||||||
@COND_USE_PCH_1@_____pch_wxprec_qadll_wx_wxprec_h_gch___depname \
|
@COND_USE_PCH_1@_____pch_wxprec_qadll_wx_wxprec_h_gch___depname \
|
||||||
@COND_USE_PCH_1@ = ./.pch/wxprec_qadll/wx/wxprec.h.gch
|
@COND_USE_PCH_1@ = ./.pch/wxprec_qadll/wx/wxprec.h.gch
|
||||||
@@ -11430,7 +11420,7 @@ COND_MONOLITHIC_0_SHARED_0_USE_GUI_1_USE_QA_1___qalib___depname = \
|
|||||||
@COND_MONOLITHIC_0_SHARED_0_USE_GUI_1_USE_QA_1@__uninstall_qalib___depname \
|
@COND_MONOLITHIC_0_SHARED_0_USE_GUI_1_USE_QA_1@__uninstall_qalib___depname \
|
||||||
@COND_MONOLITHIC_0_SHARED_0_USE_GUI_1_USE_QA_1@ = uninstall_qalib
|
@COND_MONOLITHIC_0_SHARED_0_USE_GUI_1_USE_QA_1@ = uninstall_qalib
|
||||||
@COND_GCC_PCH_1@__qalib_PCH_INC = -I./.pch/wxprec_qalib
|
@COND_GCC_PCH_1@__qalib_PCH_INC = -I./.pch/wxprec_qalib
|
||||||
@COND_ICC_PCH_1@__qalib_PCH_INC = $(ICC_PCH_USE_SWITCH) \
|
@COND_ICC_PCH_1@__qalib_PCH_INC = -use_pch \
|
||||||
@COND_ICC_PCH_1@ ./.pch/wxprec_qalib/wx/wxprec.h.gch
|
@COND_ICC_PCH_1@ ./.pch/wxprec_qalib/wx/wxprec.h.gch
|
||||||
@COND_USE_PCH_1@_____pch_wxprec_qalib_wx_wxprec_h_gch___depname \
|
@COND_USE_PCH_1@_____pch_wxprec_qalib_wx_wxprec_h_gch___depname \
|
||||||
@COND_USE_PCH_1@ = ./.pch/wxprec_qalib/wx/wxprec.h.gch
|
@COND_USE_PCH_1@ = ./.pch/wxprec_qalib/wx/wxprec.h.gch
|
||||||
@@ -11451,7 +11441,7 @@ COND_WINDOWS_IMPLIB_1___xmldll___importlib = \
|
|||||||
-Wl,--out-implib=$(LIBDIRNAME)/$(LIBPREFIX)wx_base$(WXBASEPORT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xml-$(WX_RELEASE)$(HOST_SUFFIX).$(DLLIMP_SUFFIX)
|
-Wl,--out-implib=$(LIBDIRNAME)/$(LIBPREFIX)wx_base$(WXBASEPORT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xml-$(WX_RELEASE)$(HOST_SUFFIX).$(DLLIMP_SUFFIX)
|
||||||
@COND_WINDOWS_IMPLIB_1@__xmldll___importlib = $(COND_WINDOWS_IMPLIB_1___xmldll___importlib)
|
@COND_WINDOWS_IMPLIB_1@__xmldll___importlib = $(COND_WINDOWS_IMPLIB_1___xmldll___importlib)
|
||||||
@COND_GCC_PCH_1@__xmldll_PCH_INC = -I./.pch/wxprec_xmldll
|
@COND_GCC_PCH_1@__xmldll_PCH_INC = -I./.pch/wxprec_xmldll
|
||||||
@COND_ICC_PCH_1@__xmldll_PCH_INC = $(ICC_PCH_USE_SWITCH) \
|
@COND_ICC_PCH_1@__xmldll_PCH_INC = -use_pch \
|
||||||
@COND_ICC_PCH_1@ ./.pch/wxprec_xmldll/wx/wxprec.h.gch
|
@COND_ICC_PCH_1@ ./.pch/wxprec_xmldll/wx/wxprec.h.gch
|
||||||
@COND_USE_PCH_1@_____pch_wxprec_xmldll_wx_wxprec_h_gch___depname \
|
@COND_USE_PCH_1@_____pch_wxprec_xmldll_wx_wxprec_h_gch___depname \
|
||||||
@COND_USE_PCH_1@ = ./.pch/wxprec_xmldll/wx/wxprec.h.gch
|
@COND_USE_PCH_1@ = ./.pch/wxprec_xmldll/wx/wxprec.h.gch
|
||||||
@@ -11492,7 +11482,7 @@ COND_MONOLITHIC_0_SHARED_0___xmllib___depname = \
|
|||||||
@COND_MONOLITHIC_0_SHARED_0@__install_xmllib___depname = install_xmllib
|
@COND_MONOLITHIC_0_SHARED_0@__install_xmllib___depname = install_xmllib
|
||||||
@COND_MONOLITHIC_0_SHARED_0@__uninstall_xmllib___depname = uninstall_xmllib
|
@COND_MONOLITHIC_0_SHARED_0@__uninstall_xmllib___depname = uninstall_xmllib
|
||||||
@COND_GCC_PCH_1@__xmllib_PCH_INC = -I./.pch/wxprec_xmllib
|
@COND_GCC_PCH_1@__xmllib_PCH_INC = -I./.pch/wxprec_xmllib
|
||||||
@COND_ICC_PCH_1@__xmllib_PCH_INC = $(ICC_PCH_USE_SWITCH) \
|
@COND_ICC_PCH_1@__xmllib_PCH_INC = -use_pch \
|
||||||
@COND_ICC_PCH_1@ ./.pch/wxprec_xmllib/wx/wxprec.h.gch
|
@COND_ICC_PCH_1@ ./.pch/wxprec_xmllib/wx/wxprec.h.gch
|
||||||
@COND_USE_PCH_1@_____pch_wxprec_xmllib_wx_wxprec_h_gch___depname \
|
@COND_USE_PCH_1@_____pch_wxprec_xmllib_wx_wxprec_h_gch___depname \
|
||||||
@COND_USE_PCH_1@ = ./.pch/wxprec_xmllib/wx/wxprec.h.gch
|
@COND_USE_PCH_1@ = ./.pch/wxprec_xmllib/wx/wxprec.h.gch
|
||||||
@@ -11515,7 +11505,7 @@ COND_WINDOWS_IMPLIB_1___xrcdll___importlib = \
|
|||||||
-Wl,--out-implib=$(LIBDIRNAME)/$(LIBPREFIX)wx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xrc-$(WX_RELEASE)$(HOST_SUFFIX).$(DLLIMP_SUFFIX)
|
-Wl,--out-implib=$(LIBDIRNAME)/$(LIBPREFIX)wx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xrc-$(WX_RELEASE)$(HOST_SUFFIX).$(DLLIMP_SUFFIX)
|
||||||
@COND_WINDOWS_IMPLIB_1@__xrcdll___importlib = $(COND_WINDOWS_IMPLIB_1___xrcdll___importlib)
|
@COND_WINDOWS_IMPLIB_1@__xrcdll___importlib = $(COND_WINDOWS_IMPLIB_1___xrcdll___importlib)
|
||||||
@COND_GCC_PCH_1@__xrcdll_PCH_INC = -I./.pch/wxprec_xrcdll
|
@COND_GCC_PCH_1@__xrcdll_PCH_INC = -I./.pch/wxprec_xrcdll
|
||||||
@COND_ICC_PCH_1@__xrcdll_PCH_INC = $(ICC_PCH_USE_SWITCH) \
|
@COND_ICC_PCH_1@__xrcdll_PCH_INC = -use_pch \
|
||||||
@COND_ICC_PCH_1@ ./.pch/wxprec_xrcdll/wx/wxprec.h.gch
|
@COND_ICC_PCH_1@ ./.pch/wxprec_xrcdll/wx/wxprec.h.gch
|
||||||
@COND_USE_PCH_1@_____pch_wxprec_xrcdll_wx_wxprec_h_gch___depname \
|
@COND_USE_PCH_1@_____pch_wxprec_xrcdll_wx_wxprec_h_gch___depname \
|
||||||
@COND_USE_PCH_1@ = ./.pch/wxprec_xrcdll/wx/wxprec.h.gch
|
@COND_USE_PCH_1@ = ./.pch/wxprec_xrcdll/wx/wxprec.h.gch
|
||||||
@@ -11558,7 +11548,7 @@ COND_MONOLITHIC_0_SHARED_0_USE_XRC_1___xrclib___depname = \
|
|||||||
@COND_MONOLITHIC_0_SHARED_0_USE_XRC_1@__uninstall_xrclib___depname \
|
@COND_MONOLITHIC_0_SHARED_0_USE_XRC_1@__uninstall_xrclib___depname \
|
||||||
@COND_MONOLITHIC_0_SHARED_0_USE_XRC_1@ = uninstall_xrclib
|
@COND_MONOLITHIC_0_SHARED_0_USE_XRC_1@ = uninstall_xrclib
|
||||||
@COND_GCC_PCH_1@__xrclib_PCH_INC = -I./.pch/wxprec_xrclib
|
@COND_GCC_PCH_1@__xrclib_PCH_INC = -I./.pch/wxprec_xrclib
|
||||||
@COND_ICC_PCH_1@__xrclib_PCH_INC = $(ICC_PCH_USE_SWITCH) \
|
@COND_ICC_PCH_1@__xrclib_PCH_INC = -use_pch \
|
||||||
@COND_ICC_PCH_1@ ./.pch/wxprec_xrclib/wx/wxprec.h.gch
|
@COND_ICC_PCH_1@ ./.pch/wxprec_xrclib/wx/wxprec.h.gch
|
||||||
@COND_USE_PCH_1@_____pch_wxprec_xrclib_wx_wxprec_h_gch___depname \
|
@COND_USE_PCH_1@_____pch_wxprec_xrclib_wx_wxprec_h_gch___depname \
|
||||||
@COND_USE_PCH_1@ = ./.pch/wxprec_xrclib/wx/wxprec.h.gch
|
@COND_USE_PCH_1@ = ./.pch/wxprec_xrclib/wx/wxprec.h.gch
|
||||||
@@ -11581,7 +11571,7 @@ COND_WINDOWS_IMPLIB_1___auidll___importlib = \
|
|||||||
-Wl,--out-implib=$(LIBDIRNAME)/$(LIBPREFIX)wx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_aui-$(WX_RELEASE)$(HOST_SUFFIX).$(DLLIMP_SUFFIX)
|
-Wl,--out-implib=$(LIBDIRNAME)/$(LIBPREFIX)wx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_aui-$(WX_RELEASE)$(HOST_SUFFIX).$(DLLIMP_SUFFIX)
|
||||||
@COND_WINDOWS_IMPLIB_1@__auidll___importlib = $(COND_WINDOWS_IMPLIB_1___auidll___importlib)
|
@COND_WINDOWS_IMPLIB_1@__auidll___importlib = $(COND_WINDOWS_IMPLIB_1___auidll___importlib)
|
||||||
@COND_GCC_PCH_1@__auidll_PCH_INC = -I./.pch/wxprec_auidll
|
@COND_GCC_PCH_1@__auidll_PCH_INC = -I./.pch/wxprec_auidll
|
||||||
@COND_ICC_PCH_1@__auidll_PCH_INC = $(ICC_PCH_USE_SWITCH) \
|
@COND_ICC_PCH_1@__auidll_PCH_INC = -use_pch \
|
||||||
@COND_ICC_PCH_1@ ./.pch/wxprec_auidll/wx/wxprec.h.gch
|
@COND_ICC_PCH_1@ ./.pch/wxprec_auidll/wx/wxprec.h.gch
|
||||||
@COND_USE_PCH_1@_____pch_wxprec_auidll_wx_wxprec_h_gch___depname \
|
@COND_USE_PCH_1@_____pch_wxprec_auidll_wx_wxprec_h_gch___depname \
|
||||||
@COND_USE_PCH_1@ = ./.pch/wxprec_auidll/wx/wxprec.h.gch
|
@COND_USE_PCH_1@ = ./.pch/wxprec_auidll/wx/wxprec.h.gch
|
||||||
@@ -11624,7 +11614,7 @@ COND_MONOLITHIC_0_SHARED_0_USE_AUI_1___auilib___depname = \
|
|||||||
@COND_MONOLITHIC_0_SHARED_0_USE_AUI_1@__uninstall_auilib___depname \
|
@COND_MONOLITHIC_0_SHARED_0_USE_AUI_1@__uninstall_auilib___depname \
|
||||||
@COND_MONOLITHIC_0_SHARED_0_USE_AUI_1@ = uninstall_auilib
|
@COND_MONOLITHIC_0_SHARED_0_USE_AUI_1@ = uninstall_auilib
|
||||||
@COND_GCC_PCH_1@__auilib_PCH_INC = -I./.pch/wxprec_auilib
|
@COND_GCC_PCH_1@__auilib_PCH_INC = -I./.pch/wxprec_auilib
|
||||||
@COND_ICC_PCH_1@__auilib_PCH_INC = $(ICC_PCH_USE_SWITCH) \
|
@COND_ICC_PCH_1@__auilib_PCH_INC = -use_pch \
|
||||||
@COND_ICC_PCH_1@ ./.pch/wxprec_auilib/wx/wxprec.h.gch
|
@COND_ICC_PCH_1@ ./.pch/wxprec_auilib/wx/wxprec.h.gch
|
||||||
@COND_USE_PCH_1@_____pch_wxprec_auilib_wx_wxprec_h_gch___depname \
|
@COND_USE_PCH_1@_____pch_wxprec_auilib_wx_wxprec_h_gch___depname \
|
||||||
@COND_USE_PCH_1@ = ./.pch/wxprec_auilib/wx/wxprec.h.gch
|
@COND_USE_PCH_1@ = ./.pch/wxprec_auilib/wx/wxprec.h.gch
|
||||||
@@ -11647,8 +11637,7 @@ COND_WINDOWS_IMPLIB_1___propgriddll___importlib = \
|
|||||||
-Wl,--out-implib=$(LIBDIRNAME)/$(LIBPREFIX)wx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_propgrid-$(WX_RELEASE)$(HOST_SUFFIX).$(DLLIMP_SUFFIX)
|
-Wl,--out-implib=$(LIBDIRNAME)/$(LIBPREFIX)wx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_propgrid-$(WX_RELEASE)$(HOST_SUFFIX).$(DLLIMP_SUFFIX)
|
||||||
@COND_WINDOWS_IMPLIB_1@__propgriddll___importlib = $(COND_WINDOWS_IMPLIB_1___propgriddll___importlib)
|
@COND_WINDOWS_IMPLIB_1@__propgriddll___importlib = $(COND_WINDOWS_IMPLIB_1___propgriddll___importlib)
|
||||||
@COND_GCC_PCH_1@__propgriddll_PCH_INC = -I./.pch/wxprec_propgriddll
|
@COND_GCC_PCH_1@__propgriddll_PCH_INC = -I./.pch/wxprec_propgriddll
|
||||||
@COND_ICC_PCH_1@__propgriddll_PCH_INC = \
|
@COND_ICC_PCH_1@__propgriddll_PCH_INC = -use_pch \
|
||||||
@COND_ICC_PCH_1@ $(ICC_PCH_USE_SWITCH) \
|
|
||||||
@COND_ICC_PCH_1@ ./.pch/wxprec_propgriddll/wx/wxprec.h.gch
|
@COND_ICC_PCH_1@ ./.pch/wxprec_propgriddll/wx/wxprec.h.gch
|
||||||
@COND_USE_PCH_1@_____pch_wxprec_propgriddll_wx_wxprec_h_gch___depname \
|
@COND_USE_PCH_1@_____pch_wxprec_propgriddll_wx_wxprec_h_gch___depname \
|
||||||
@COND_USE_PCH_1@ = ./.pch/wxprec_propgriddll/wx/wxprec.h.gch
|
@COND_USE_PCH_1@ = ./.pch/wxprec_propgriddll/wx/wxprec.h.gch
|
||||||
@@ -11692,8 +11681,7 @@ COND_MONOLITHIC_0_SHARED_0_USE_PROPGRID_1___propgridlib___depname = \
|
|||||||
@COND_MONOLITHIC_0_SHARED_0_USE_PROPGRID_1@__uninstall_propgridlib___depname \
|
@COND_MONOLITHIC_0_SHARED_0_USE_PROPGRID_1@__uninstall_propgridlib___depname \
|
||||||
@COND_MONOLITHIC_0_SHARED_0_USE_PROPGRID_1@ = uninstall_propgridlib
|
@COND_MONOLITHIC_0_SHARED_0_USE_PROPGRID_1@ = uninstall_propgridlib
|
||||||
@COND_GCC_PCH_1@__propgridlib_PCH_INC = -I./.pch/wxprec_propgridlib
|
@COND_GCC_PCH_1@__propgridlib_PCH_INC = -I./.pch/wxprec_propgridlib
|
||||||
@COND_ICC_PCH_1@__propgridlib_PCH_INC = \
|
@COND_ICC_PCH_1@__propgridlib_PCH_INC = -use_pch \
|
||||||
@COND_ICC_PCH_1@ $(ICC_PCH_USE_SWITCH) \
|
|
||||||
@COND_ICC_PCH_1@ ./.pch/wxprec_propgridlib/wx/wxprec.h.gch
|
@COND_ICC_PCH_1@ ./.pch/wxprec_propgridlib/wx/wxprec.h.gch
|
||||||
@COND_USE_PCH_1@_____pch_wxprec_propgridlib_wx_wxprec_h_gch___depname \
|
@COND_USE_PCH_1@_____pch_wxprec_propgridlib_wx_wxprec_h_gch___depname \
|
||||||
@COND_USE_PCH_1@ = ./.pch/wxprec_propgridlib/wx/wxprec.h.gch
|
@COND_USE_PCH_1@ = ./.pch/wxprec_propgridlib/wx/wxprec.h.gch
|
||||||
@@ -11716,8 +11704,7 @@ COND_WINDOWS_IMPLIB_1___richtextdll___importlib = \
|
|||||||
-Wl,--out-implib=$(LIBDIRNAME)/$(LIBPREFIX)wx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_richtext-$(WX_RELEASE)$(HOST_SUFFIX).$(DLLIMP_SUFFIX)
|
-Wl,--out-implib=$(LIBDIRNAME)/$(LIBPREFIX)wx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_richtext-$(WX_RELEASE)$(HOST_SUFFIX).$(DLLIMP_SUFFIX)
|
||||||
@COND_WINDOWS_IMPLIB_1@__richtextdll___importlib = $(COND_WINDOWS_IMPLIB_1___richtextdll___importlib)
|
@COND_WINDOWS_IMPLIB_1@__richtextdll___importlib = $(COND_WINDOWS_IMPLIB_1___richtextdll___importlib)
|
||||||
@COND_GCC_PCH_1@__richtextdll_PCH_INC = -I./.pch/wxprec_richtextdll
|
@COND_GCC_PCH_1@__richtextdll_PCH_INC = -I./.pch/wxprec_richtextdll
|
||||||
@COND_ICC_PCH_1@__richtextdll_PCH_INC = \
|
@COND_ICC_PCH_1@__richtextdll_PCH_INC = -use_pch \
|
||||||
@COND_ICC_PCH_1@ $(ICC_PCH_USE_SWITCH) \
|
|
||||||
@COND_ICC_PCH_1@ ./.pch/wxprec_richtextdll/wx/wxprec.h.gch
|
@COND_ICC_PCH_1@ ./.pch/wxprec_richtextdll/wx/wxprec.h.gch
|
||||||
@COND_USE_PCH_1@_____pch_wxprec_richtextdll_wx_wxprec_h_gch___depname \
|
@COND_USE_PCH_1@_____pch_wxprec_richtextdll_wx_wxprec_h_gch___depname \
|
||||||
@COND_USE_PCH_1@ = ./.pch/wxprec_richtextdll/wx/wxprec.h.gch
|
@COND_USE_PCH_1@ = ./.pch/wxprec_richtextdll/wx/wxprec.h.gch
|
||||||
@@ -11761,8 +11748,7 @@ COND_MONOLITHIC_0_SHARED_0_USE_RICHTEXT_1___richtextlib___depname = \
|
|||||||
@COND_MONOLITHIC_0_SHARED_0_USE_RICHTEXT_1@__uninstall_richtextlib___depname \
|
@COND_MONOLITHIC_0_SHARED_0_USE_RICHTEXT_1@__uninstall_richtextlib___depname \
|
||||||
@COND_MONOLITHIC_0_SHARED_0_USE_RICHTEXT_1@ = uninstall_richtextlib
|
@COND_MONOLITHIC_0_SHARED_0_USE_RICHTEXT_1@ = uninstall_richtextlib
|
||||||
@COND_GCC_PCH_1@__richtextlib_PCH_INC = -I./.pch/wxprec_richtextlib
|
@COND_GCC_PCH_1@__richtextlib_PCH_INC = -I./.pch/wxprec_richtextlib
|
||||||
@COND_ICC_PCH_1@__richtextlib_PCH_INC = \
|
@COND_ICC_PCH_1@__richtextlib_PCH_INC = -use_pch \
|
||||||
@COND_ICC_PCH_1@ $(ICC_PCH_USE_SWITCH) \
|
|
||||||
@COND_ICC_PCH_1@ ./.pch/wxprec_richtextlib/wx/wxprec.h.gch
|
@COND_ICC_PCH_1@ ./.pch/wxprec_richtextlib/wx/wxprec.h.gch
|
||||||
@COND_USE_PCH_1@_____pch_wxprec_richtextlib_wx_wxprec_h_gch___depname \
|
@COND_USE_PCH_1@_____pch_wxprec_richtextlib_wx_wxprec_h_gch___depname \
|
||||||
@COND_USE_PCH_1@ = ./.pch/wxprec_richtextlib/wx/wxprec.h.gch
|
@COND_USE_PCH_1@ = ./.pch/wxprec_richtextlib/wx/wxprec.h.gch
|
||||||
@@ -11785,7 +11771,7 @@ COND_WINDOWS_IMPLIB_1___stcdll___importlib = \
|
|||||||
-Wl,--out-implib=$(LIBDIRNAME)/$(LIBPREFIX)wx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc-$(WX_RELEASE)$(HOST_SUFFIX).$(DLLIMP_SUFFIX)
|
-Wl,--out-implib=$(LIBDIRNAME)/$(LIBPREFIX)wx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc-$(WX_RELEASE)$(HOST_SUFFIX).$(DLLIMP_SUFFIX)
|
||||||
@COND_WINDOWS_IMPLIB_1@__stcdll___importlib = $(COND_WINDOWS_IMPLIB_1___stcdll___importlib)
|
@COND_WINDOWS_IMPLIB_1@__stcdll___importlib = $(COND_WINDOWS_IMPLIB_1___stcdll___importlib)
|
||||||
@COND_GCC_PCH_1@__stcdll_PCH_INC = -I./.pch/wxprec_stcdll
|
@COND_GCC_PCH_1@__stcdll_PCH_INC = -I./.pch/wxprec_stcdll
|
||||||
@COND_ICC_PCH_1@__stcdll_PCH_INC = $(ICC_PCH_USE_SWITCH) \
|
@COND_ICC_PCH_1@__stcdll_PCH_INC = -use_pch \
|
||||||
@COND_ICC_PCH_1@ ./.pch/wxprec_stcdll/wx/wxprec.h.gch
|
@COND_ICC_PCH_1@ ./.pch/wxprec_stcdll/wx/wxprec.h.gch
|
||||||
@COND_USE_PCH_1@_____pch_wxprec_stcdll_wx_wxprec_h_gch___depname \
|
@COND_USE_PCH_1@_____pch_wxprec_stcdll_wx_wxprec_h_gch___depname \
|
||||||
@COND_USE_PCH_1@ = ./.pch/wxprec_stcdll/wx/wxprec.h.gch
|
@COND_USE_PCH_1@ = ./.pch/wxprec_stcdll/wx/wxprec.h.gch
|
||||||
@@ -11828,7 +11814,7 @@ COND_MONOLITHIC_0_SHARED_0_USE_STC_1___stclib___depname = \
|
|||||||
@COND_MONOLITHIC_0_SHARED_0_USE_STC_1@__uninstall_stclib___depname \
|
@COND_MONOLITHIC_0_SHARED_0_USE_STC_1@__uninstall_stclib___depname \
|
||||||
@COND_MONOLITHIC_0_SHARED_0_USE_STC_1@ = uninstall_stclib
|
@COND_MONOLITHIC_0_SHARED_0_USE_STC_1@ = uninstall_stclib
|
||||||
@COND_GCC_PCH_1@__stclib_PCH_INC = -I./.pch/wxprec_stclib
|
@COND_GCC_PCH_1@__stclib_PCH_INC = -I./.pch/wxprec_stclib
|
||||||
@COND_ICC_PCH_1@__stclib_PCH_INC = $(ICC_PCH_USE_SWITCH) \
|
@COND_ICC_PCH_1@__stclib_PCH_INC = -use_pch \
|
||||||
@COND_ICC_PCH_1@ ./.pch/wxprec_stclib/wx/wxprec.h.gch
|
@COND_ICC_PCH_1@ ./.pch/wxprec_stclib/wx/wxprec.h.gch
|
||||||
@COND_USE_PCH_1@_____pch_wxprec_stclib_wx_wxprec_h_gch___depname \
|
@COND_USE_PCH_1@_____pch_wxprec_stclib_wx_wxprec_h_gch___depname \
|
||||||
@COND_USE_PCH_1@ = ./.pch/wxprec_stclib/wx/wxprec.h.gch
|
@COND_USE_PCH_1@ = ./.pch/wxprec_stclib/wx/wxprec.h.gch
|
||||||
@@ -11851,7 +11837,7 @@ COND_WINDOWS_IMPLIB_1___gldll___importlib = \
|
|||||||
-Wl,--out-implib=$(LIBDIRNAME)/$(LIBPREFIX)wx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_gl-$(WX_RELEASE)$(HOST_SUFFIX).$(DLLIMP_SUFFIX)
|
-Wl,--out-implib=$(LIBDIRNAME)/$(LIBPREFIX)wx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_gl-$(WX_RELEASE)$(HOST_SUFFIX).$(DLLIMP_SUFFIX)
|
||||||
@COND_WINDOWS_IMPLIB_1@__gldll___importlib = $(COND_WINDOWS_IMPLIB_1___gldll___importlib)
|
@COND_WINDOWS_IMPLIB_1@__gldll___importlib = $(COND_WINDOWS_IMPLIB_1___gldll___importlib)
|
||||||
@COND_GCC_PCH_1@__gldll_PCH_INC = -I./.pch/wxprec_gldll
|
@COND_GCC_PCH_1@__gldll_PCH_INC = -I./.pch/wxprec_gldll
|
||||||
@COND_ICC_PCH_1@__gldll_PCH_INC = $(ICC_PCH_USE_SWITCH) \
|
@COND_ICC_PCH_1@__gldll_PCH_INC = -use_pch \
|
||||||
@COND_ICC_PCH_1@ ./.pch/wxprec_gldll/wx/wxprec.h.gch
|
@COND_ICC_PCH_1@ ./.pch/wxprec_gldll/wx/wxprec.h.gch
|
||||||
@COND_USE_PCH_1@_____pch_wxprec_gldll_wx_wxprec_h_gch___depname \
|
@COND_USE_PCH_1@_____pch_wxprec_gldll_wx_wxprec_h_gch___depname \
|
||||||
@COND_USE_PCH_1@ = ./.pch/wxprec_gldll/wx/wxprec.h.gch
|
@COND_USE_PCH_1@ = ./.pch/wxprec_gldll/wx/wxprec.h.gch
|
||||||
@@ -11920,7 +11906,7 @@ COND_SHARED_0_USE_GUI_1_USE_OPENGL_1___gllib___depname = \
|
|||||||
@COND_SHARED_0_USE_GUI_1_USE_OPENGL_1@__uninstall_gllib___depname \
|
@COND_SHARED_0_USE_GUI_1_USE_OPENGL_1@__uninstall_gllib___depname \
|
||||||
@COND_SHARED_0_USE_GUI_1_USE_OPENGL_1@ = uninstall_gllib
|
@COND_SHARED_0_USE_GUI_1_USE_OPENGL_1@ = uninstall_gllib
|
||||||
@COND_GCC_PCH_1@__gllib_PCH_INC = -I./.pch/wxprec_gllib
|
@COND_GCC_PCH_1@__gllib_PCH_INC = -I./.pch/wxprec_gllib
|
||||||
@COND_ICC_PCH_1@__gllib_PCH_INC = $(ICC_PCH_USE_SWITCH) \
|
@COND_ICC_PCH_1@__gllib_PCH_INC = -use_pch \
|
||||||
@COND_ICC_PCH_1@ ./.pch/wxprec_gllib/wx/wxprec.h.gch
|
@COND_ICC_PCH_1@ ./.pch/wxprec_gllib/wx/wxprec.h.gch
|
||||||
@COND_USE_PCH_1@_____pch_wxprec_gllib_wx_wxprec_h_gch___depname \
|
@COND_USE_PCH_1@_____pch_wxprec_gllib_wx_wxprec_h_gch___depname \
|
||||||
@COND_USE_PCH_1@ = ./.pch/wxprec_gllib/wx/wxprec.h.gch
|
@COND_USE_PCH_1@ = ./.pch/wxprec_gllib/wx/wxprec.h.gch
|
||||||
@@ -14445,9 +14431,6 @@ monodll_core_mimetype.o: $(srcdir)/src/osx/core/mimetype.cpp $(MONODLL_ODEP)
|
|||||||
monodll_cfstring.o: $(srcdir)/src/osx/core/cfstring.cpp $(MONODLL_ODEP)
|
monodll_cfstring.o: $(srcdir)/src/osx/core/cfstring.cpp $(MONODLL_ODEP)
|
||||||
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/osx/core/cfstring.cpp
|
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/osx/core/cfstring.cpp
|
||||||
|
|
||||||
monodll_gsockosx.o: $(srcdir)/src/osx/core/gsockosx.cpp $(MONODLL_ODEP)
|
|
||||||
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/osx/core/gsockosx.cpp
|
|
||||||
|
|
||||||
monodll_stdpaths_cf.o: $(srcdir)/src/osx/core/stdpaths_cf.cpp $(MONODLL_ODEP)
|
monodll_stdpaths_cf.o: $(srcdir)/src/osx/core/stdpaths_cf.cpp $(MONODLL_ODEP)
|
||||||
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/osx/core/stdpaths_cf.cpp
|
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/osx/core/stdpaths_cf.cpp
|
||||||
|
|
||||||
@@ -14559,6 +14542,9 @@ monodll_urlmsw.o: $(srcdir)/src/msw/urlmsw.cpp $(MONODLL_ODEP)
|
|||||||
monodll_net.o: $(srcdir)/src/msw/wince/net.cpp $(MONODLL_ODEP)
|
monodll_net.o: $(srcdir)/src/msw/wince/net.cpp $(MONODLL_ODEP)
|
||||||
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/wince/net.cpp
|
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/wince/net.cpp
|
||||||
|
|
||||||
|
monodll_gsockosx.o: $(srcdir)/src/osx/core/gsockosx.cpp $(MONODLL_ODEP)
|
||||||
|
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/osx/core/gsockosx.cpp
|
||||||
|
|
||||||
monodll_graphicc.o: $(srcdir)/src/generic/graphicc.cpp $(MONODLL_ODEP)
|
monodll_graphicc.o: $(srcdir)/src/generic/graphicc.cpp $(MONODLL_ODEP)
|
||||||
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/graphicc.cpp
|
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/graphicc.cpp
|
||||||
|
|
||||||
@@ -19125,9 +19111,6 @@ monolib_core_mimetype.o: $(srcdir)/src/osx/core/mimetype.cpp $(MONOLIB_ODEP)
|
|||||||
monolib_cfstring.o: $(srcdir)/src/osx/core/cfstring.cpp $(MONOLIB_ODEP)
|
monolib_cfstring.o: $(srcdir)/src/osx/core/cfstring.cpp $(MONOLIB_ODEP)
|
||||||
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/osx/core/cfstring.cpp
|
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/osx/core/cfstring.cpp
|
||||||
|
|
||||||
monolib_gsockosx.o: $(srcdir)/src/osx/core/gsockosx.cpp $(MONOLIB_ODEP)
|
|
||||||
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/osx/core/gsockosx.cpp
|
|
||||||
|
|
||||||
monolib_stdpaths_cf.o: $(srcdir)/src/osx/core/stdpaths_cf.cpp $(MONOLIB_ODEP)
|
monolib_stdpaths_cf.o: $(srcdir)/src/osx/core/stdpaths_cf.cpp $(MONOLIB_ODEP)
|
||||||
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/osx/core/stdpaths_cf.cpp
|
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/osx/core/stdpaths_cf.cpp
|
||||||
|
|
||||||
@@ -19239,6 +19222,9 @@ monolib_urlmsw.o: $(srcdir)/src/msw/urlmsw.cpp $(MONOLIB_ODEP)
|
|||||||
monolib_net.o: $(srcdir)/src/msw/wince/net.cpp $(MONOLIB_ODEP)
|
monolib_net.o: $(srcdir)/src/msw/wince/net.cpp $(MONOLIB_ODEP)
|
||||||
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/wince/net.cpp
|
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/wince/net.cpp
|
||||||
|
|
||||||
|
monolib_gsockosx.o: $(srcdir)/src/osx/core/gsockosx.cpp $(MONOLIB_ODEP)
|
||||||
|
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/osx/core/gsockosx.cpp
|
||||||
|
|
||||||
monolib_graphicc.o: $(srcdir)/src/generic/graphicc.cpp $(MONOLIB_ODEP)
|
monolib_graphicc.o: $(srcdir)/src/generic/graphicc.cpp $(MONOLIB_ODEP)
|
||||||
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/graphicc.cpp
|
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/graphicc.cpp
|
||||||
|
|
||||||
@@ -23805,9 +23791,6 @@ basedll_core_mimetype.o: $(srcdir)/src/osx/core/mimetype.cpp $(BASEDLL_ODEP)
|
|||||||
basedll_cfstring.o: $(srcdir)/src/osx/core/cfstring.cpp $(BASEDLL_ODEP)
|
basedll_cfstring.o: $(srcdir)/src/osx/core/cfstring.cpp $(BASEDLL_ODEP)
|
||||||
$(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/osx/core/cfstring.cpp
|
$(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/osx/core/cfstring.cpp
|
||||||
|
|
||||||
basedll_gsockosx.o: $(srcdir)/src/osx/core/gsockosx.cpp $(BASEDLL_ODEP)
|
|
||||||
$(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/osx/core/gsockosx.cpp
|
|
||||||
|
|
||||||
basedll_stdpaths_cf.o: $(srcdir)/src/osx/core/stdpaths_cf.cpp $(BASEDLL_ODEP)
|
basedll_stdpaths_cf.o: $(srcdir)/src/osx/core/stdpaths_cf.cpp $(BASEDLL_ODEP)
|
||||||
$(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/osx/core/stdpaths_cf.cpp
|
$(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/osx/core/stdpaths_cf.cpp
|
||||||
|
|
||||||
@@ -24270,9 +24253,6 @@ baselib_core_mimetype.o: $(srcdir)/src/osx/core/mimetype.cpp $(BASELIB_ODEP)
|
|||||||
baselib_cfstring.o: $(srcdir)/src/osx/core/cfstring.cpp $(BASELIB_ODEP)
|
baselib_cfstring.o: $(srcdir)/src/osx/core/cfstring.cpp $(BASELIB_ODEP)
|
||||||
$(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/osx/core/cfstring.cpp
|
$(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/osx/core/cfstring.cpp
|
||||||
|
|
||||||
baselib_gsockosx.o: $(srcdir)/src/osx/core/gsockosx.cpp $(BASELIB_ODEP)
|
|
||||||
$(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/osx/core/gsockosx.cpp
|
|
||||||
|
|
||||||
baselib_stdpaths_cf.o: $(srcdir)/src/osx/core/stdpaths_cf.cpp $(BASELIB_ODEP)
|
baselib_stdpaths_cf.o: $(srcdir)/src/osx/core/stdpaths_cf.cpp $(BASELIB_ODEP)
|
||||||
$(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/osx/core/stdpaths_cf.cpp
|
$(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/osx/core/stdpaths_cf.cpp
|
||||||
|
|
||||||
@@ -24486,6 +24466,9 @@ netdll_urlmsw.o: $(srcdir)/src/msw/urlmsw.cpp $(NETDLL_ODEP)
|
|||||||
netdll_net.o: $(srcdir)/src/msw/wince/net.cpp $(NETDLL_ODEP)
|
netdll_net.o: $(srcdir)/src/msw/wince/net.cpp $(NETDLL_ODEP)
|
||||||
$(CXXC) -c -o $@ $(NETDLL_CXXFLAGS) $(srcdir)/src/msw/wince/net.cpp
|
$(CXXC) -c -o $@ $(NETDLL_CXXFLAGS) $(srcdir)/src/msw/wince/net.cpp
|
||||||
|
|
||||||
|
netdll_gsockosx.o: $(srcdir)/src/osx/core/gsockosx.cpp $(NETDLL_ODEP)
|
||||||
|
$(CXXC) -c -o $@ $(NETDLL_CXXFLAGS) $(srcdir)/src/osx/core/gsockosx.cpp
|
||||||
|
|
||||||
@COND_PLATFORM_UNIX_1@netdll_unix_gsocket.o: $(srcdir)/src/unix/gsocket.cpp $(NETDLL_ODEP)
|
@COND_PLATFORM_UNIX_1@netdll_unix_gsocket.o: $(srcdir)/src/unix/gsocket.cpp $(NETDLL_ODEP)
|
||||||
@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(NETDLL_CXXFLAGS) $(srcdir)/src/unix/gsocket.cpp
|
@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(NETDLL_CXXFLAGS) $(srcdir)/src/unix/gsocket.cpp
|
||||||
|
|
||||||
@@ -24537,6 +24520,9 @@ netlib_urlmsw.o: $(srcdir)/src/msw/urlmsw.cpp $(NETLIB_ODEP)
|
|||||||
netlib_net.o: $(srcdir)/src/msw/wince/net.cpp $(NETLIB_ODEP)
|
netlib_net.o: $(srcdir)/src/msw/wince/net.cpp $(NETLIB_ODEP)
|
||||||
$(CXXC) -c -o $@ $(NETLIB_CXXFLAGS) $(srcdir)/src/msw/wince/net.cpp
|
$(CXXC) -c -o $@ $(NETLIB_CXXFLAGS) $(srcdir)/src/msw/wince/net.cpp
|
||||||
|
|
||||||
|
netlib_gsockosx.o: $(srcdir)/src/osx/core/gsockosx.cpp $(NETLIB_ODEP)
|
||||||
|
$(CXXC) -c -o $@ $(NETLIB_CXXFLAGS) $(srcdir)/src/osx/core/gsockosx.cpp
|
||||||
|
|
||||||
@COND_PLATFORM_UNIX_1@netlib_unix_gsocket.o: $(srcdir)/src/unix/gsocket.cpp $(NETLIB_ODEP)
|
@COND_PLATFORM_UNIX_1@netlib_unix_gsocket.o: $(srcdir)/src/unix/gsocket.cpp $(NETLIB_ODEP)
|
||||||
@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(NETLIB_CXXFLAGS) $(srcdir)/src/unix/gsocket.cpp
|
@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(NETLIB_CXXFLAGS) $(srcdir)/src/unix/gsocket.cpp
|
||||||
|
|
||||||
|
@@ -184,7 +184,6 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
|
|||||||
<!-- Used on Mac OS X wxMac base, and Mac OS X darwin base -->
|
<!-- Used on Mac OS X wxMac base, and Mac OS X darwin base -->
|
||||||
<set var="BASE_COREFOUNDATION_SRC" hints="files">
|
<set var="BASE_COREFOUNDATION_SRC" hints="files">
|
||||||
src/osx/core/cfstring.cpp
|
src/osx/core/cfstring.cpp
|
||||||
src/osx/core/gsockosx.cpp
|
|
||||||
src/osx/core/stdpaths_cf.cpp
|
src/osx/core/stdpaths_cf.cpp
|
||||||
src/osx/core/strconv_cf.cpp
|
src/osx/core/strconv_cf.cpp
|
||||||
src/osx/core/utilsexc_base.cpp
|
src/osx/core/utilsexc_base.cpp
|
||||||
@@ -547,6 +546,10 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
|
|||||||
wx/unix/gsockunx.h
|
wx/unix/gsockunx.h
|
||||||
</set>
|
</set>
|
||||||
|
|
||||||
|
<set var="NET_OSX_SRC" hints="files">
|
||||||
|
src/osx/core/gsockosx.cpp
|
||||||
|
</set>
|
||||||
|
|
||||||
<set var="NET_WIN32_SRC" hints="files">
|
<set var="NET_WIN32_SRC" hints="files">
|
||||||
src/msw/gsocket.cpp
|
src/msw/gsocket.cpp
|
||||||
src/msw/gsockmsw.cpp
|
src/msw/gsockmsw.cpp
|
||||||
@@ -3615,7 +3618,7 @@ src/osx/iphone/window.mm
|
|||||||
<set var="NET_PLATFORM_SRC" hints="files">
|
<set var="NET_PLATFORM_SRC" hints="files">
|
||||||
<if cond="PLATFORM_UNIX=='1'">$(NET_UNIX_SRC)</if>
|
<if cond="PLATFORM_UNIX=='1'">$(NET_UNIX_SRC)</if>
|
||||||
<if cond="PLATFORM_WIN32=='1'">$(NET_WIN32_SRC) $(NET_WINCE_SRC)</if>
|
<if cond="PLATFORM_WIN32=='1'">$(NET_WIN32_SRC) $(NET_WINCE_SRC)</if>
|
||||||
<if cond="PLATFORM_MACOSX=='1'">$(NET_UNIX_SRC)</if>
|
<if cond="PLATFORM_MACOSX=='1'">$(NET_UNIX_SRC) $(NET_OSX_SRC)</if>
|
||||||
<if cond="PLATFORM_OS2=='1'">$(NET_OS2_SRC)</if>
|
<if cond="PLATFORM_OS2=='1'">$(NET_OS2_SRC)</if>
|
||||||
</set>
|
</set>
|
||||||
<set var="NET_PLATFORM_HDR" hints="files">
|
<set var="NET_PLATFORM_HDR" hints="files">
|
||||||
@@ -3828,7 +3831,8 @@ src/osx/iphone/window.mm
|
|||||||
$(BASE_AND_GUI_OSX_CARBON_SRC)
|
$(BASE_AND_GUI_OSX_CARBON_SRC)
|
||||||
$(BASE_AND_GUI_OSX_COCOA_SRC)
|
$(BASE_AND_GUI_OSX_COCOA_SRC)
|
||||||
$(BASE_AND_GUI_WIN32_SRC)
|
$(BASE_AND_GUI_WIN32_SRC)
|
||||||
$(NET_CMN_SRC) $(NET_UNIX_SRC) $(NET_WIN32_SRC) $(NET_WINCE_SRC)
|
$(NET_CMN_SRC) $(NET_UNIX_SRC) $(NET_OSX_SRC)
|
||||||
|
$(NET_WIN32_SRC) $(NET_WINCE_SRC)
|
||||||
$(XML_SRC)
|
$(XML_SRC)
|
||||||
</set>
|
</set>
|
||||||
|
|
||||||
|
@@ -30,7 +30,7 @@ class WXDLLIMPEXP_FWD_BASE wxString;
|
|||||||
class WXDLLIMPEXP_FWD_BASE wxTimer;
|
class WXDLLIMPEXP_FWD_BASE wxTimer;
|
||||||
class WXDLLIMPEXP_FWD_BASE wxTimerImpl;
|
class WXDLLIMPEXP_FWD_BASE wxTimerImpl;
|
||||||
|
|
||||||
class GSocketManager;
|
class wxSocketManager;
|
||||||
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
@@ -116,9 +116,21 @@ public:
|
|||||||
virtual void RemoveFromPendingDelete(wxObject *object) = 0;
|
virtual void RemoveFromPendingDelete(wxObject *object) = 0;
|
||||||
|
|
||||||
#if wxUSE_SOCKETS
|
#if wxUSE_SOCKETS
|
||||||
|
// this function is used by wxNet library to set the default socket manager
|
||||||
|
// to use: doing it like this allows us to keep all socket-related code in
|
||||||
|
// wxNet instead of having to pull it in wxBase itself as we'd have to do
|
||||||
|
// if we really implemented wxSocketManager here
|
||||||
|
//
|
||||||
|
// we don't take ownership of this pointer, it should have a lifetime
|
||||||
|
// greater than that of any socket (e.g. be a pointer to a static object)
|
||||||
|
static void SetDefaultSocketManager(wxSocketManager *manager)
|
||||||
|
{
|
||||||
|
ms_manager = manager;
|
||||||
|
}
|
||||||
|
|
||||||
// return socket manager: this is usually different for console and GUI
|
// return socket manager: this is usually different for console and GUI
|
||||||
// applications (although some ports use the same implementation for both)
|
// applications (although some ports use the same implementation for both)
|
||||||
virtual GSocketManager *GetSocketManager() = 0;
|
virtual wxSocketManager *GetSocketManager() { return ms_manager; }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// create a new, port specific, instance of the event loop used by wxApp
|
// create a new, port specific, instance of the event loop used by wxApp
|
||||||
@@ -169,6 +181,9 @@ protected:
|
|||||||
// utility function: returns the stack frame as a plain wxString
|
// utility function: returns the stack frame as a plain wxString
|
||||||
virtual wxString GetAssertStackTrace();
|
virtual wxString GetAssertStackTrace();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
private:
|
||||||
|
static wxSocketManager *ms_manager;
|
||||||
};
|
};
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
@@ -46,26 +46,6 @@ public:
|
|||||||
virtual WXDWORD WaitForThread(WXHANDLE hThread) = 0;
|
virtual WXDWORD WaitForThread(WXHANDLE hThread) = 0;
|
||||||
|
|
||||||
|
|
||||||
// wxSocket support
|
|
||||||
// ----------------
|
|
||||||
|
|
||||||
#if wxUSE_SOCKETS
|
|
||||||
// this function is used by wxNet library to set the default socket manager
|
|
||||||
// to use: doing it like this allows us to keep all socket-related code in
|
|
||||||
// wxNet instead of having to pull it in wxBase itself as we'd have to do
|
|
||||||
// if we really implemented GSocketManager here
|
|
||||||
//
|
|
||||||
// we don't take ownership of this pointer, it should have a lifetime
|
|
||||||
// greater than that of any socket (e.g. be a pointer to a static object)
|
|
||||||
static void SetDefaultSocketManager(GSocketManager *manager)
|
|
||||||
{
|
|
||||||
ms_manager = manager;
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual GSocketManager *GetSocketManager() { return ms_manager; }
|
|
||||||
#endif // wxUSE_SOCKETS
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef __WXWINCE__
|
#ifndef __WXWINCE__
|
||||||
// console helpers
|
// console helpers
|
||||||
// ---------------
|
// ---------------
|
||||||
@@ -86,8 +66,6 @@ protected:
|
|||||||
// implementation of WaitForThread() for the console applications which is
|
// implementation of WaitForThread() for the console applications which is
|
||||||
// also used by the GUI code if it doesn't [yet|already} dispatch events
|
// also used by the GUI code if it doesn't [yet|already} dispatch events
|
||||||
WXDWORD DoSimpleWaitForThread(WXHANDLE hThread);
|
WXDWORD DoSimpleWaitForThread(WXHANDLE hThread);
|
||||||
|
|
||||||
static GSocketManager *ms_manager;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // _WX_MSW_APPTBASE_H_
|
#endif // _WX_MSW_APPTBASE_H_
|
||||||
|
@@ -1,12 +1,15 @@
|
|||||||
/* -------------------------------------------------------------------------
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
* Project: GSocket (Generic Socket) for WX
|
// Name: wx/msw/gsockmsw.h
|
||||||
* Name: gsockmsw.h
|
// Purpose: MSW-specific socket implementation
|
||||||
* Copyright: (c) Guilhem Lavaux
|
// Authors: Guilhem Lavaux, Guillermo Rodriguez Garcia, Vadim Zeitlin
|
||||||
* Licence: wxWindows Licence
|
// Created: April 1997
|
||||||
* Purpose: GSocket MSW header
|
// Copyright: (C) 1999-1997, Guilhem Lavaux
|
||||||
* CVSID: $Id$
|
// (C) 1999-2000, Guillermo Rodriguez Garcia
|
||||||
* -------------------------------------------------------------------------
|
// (C) 2008 Vadim Zeitlin
|
||||||
*/
|
// RCS_ID: $Id$
|
||||||
|
// License: wxWindows licence
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
#ifndef _WX_MSW_GSOCKMSW_H_
|
#ifndef _WX_MSW_GSOCKMSW_H_
|
||||||
#define _WX_MSW_GSOCKMSW_H_
|
#define _WX_MSW_GSOCKMSW_H_
|
||||||
@@ -20,53 +23,50 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__WXWINCE__) || defined(__CYGWIN__)
|
#if defined(__WXWINCE__) || defined(__CYGWIN__)
|
||||||
#include <winsock.h>
|
#include <winsock.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Definition of GSocket */
|
// ----------------------------------------------------------------------------
|
||||||
class GSocket : public GSocketBase
|
// MSW-specific socket implementation
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class wxSocketImplMSW : public wxSocketImpl
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
GSocket(wxSocketBase& wxsocket)
|
wxSocketImplMSW(wxSocketBase& wxsocket);
|
||||||
: GSocketBase(wxsocket)
|
|
||||||
{
|
|
||||||
m_msgnumber = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual GSocket *WaitConnection(wxSocketBase& wxsocket);
|
virtual ~wxSocketImplMSW();
|
||||||
|
|
||||||
|
virtual wxSocketImpl *WaitConnection(wxSocketBase& wxsocket);
|
||||||
|
|
||||||
|
|
||||||
GSocketError SetServer();
|
|
||||||
|
|
||||||
// not used under MSW
|
|
||||||
void Notify(bool) { }
|
|
||||||
bool SetReusable();
|
|
||||||
bool SetBroadcast();
|
|
||||||
bool DontDoBind();
|
|
||||||
GSocketError Connect(GSocketStream stream);
|
|
||||||
GSocketError SetNonOriented();
|
|
||||||
int Read(char *buffer, int size);
|
int Read(char *buffer, int size);
|
||||||
int Write(const char *buffer, int size);
|
int Write(const char *buffer, int size);
|
||||||
void SetNonBlocking(bool non_block);
|
|
||||||
GSocketError WXDLLIMPEXP_NET GetError();
|
|
||||||
GSocketError GetSockOpt(int level, int optname,
|
|
||||||
void *optval, int *optlen);
|
|
||||||
GSocketError SetSockOpt(int level, int optname,
|
|
||||||
const void *optval, int optlen);
|
|
||||||
|
|
||||||
protected:
|
private:
|
||||||
GSocketError Input_Timeout();
|
virtual wxSocketError DoHandleConnect(int ret);
|
||||||
GSocketError Output_Timeout();
|
virtual void DoClose();
|
||||||
GSocketError Connect_Timeout();
|
|
||||||
|
virtual void UnblockAndRegisterWithEventLoop()
|
||||||
|
{
|
||||||
|
// no need to make the socket non-blocking, Install_Callback() will do
|
||||||
|
// it
|
||||||
|
wxSocketManager::Get()->Install_Callback(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
wxSocketError Input_Timeout();
|
||||||
|
wxSocketError Output_Timeout();
|
||||||
|
wxSocketError Connect_Timeout();
|
||||||
int Recv_Stream(char *buffer, int size);
|
int Recv_Stream(char *buffer, int size);
|
||||||
int Recv_Dgram(char *buffer, int size);
|
int Recv_Dgram(char *buffer, int size);
|
||||||
int Send_Stream(const char *buffer, int size);
|
int Send_Stream(const char *buffer, int size);
|
||||||
int Send_Dgram(const char *buffer, int size);
|
int Send_Dgram(const char *buffer, int size);
|
||||||
|
|
||||||
/* TODO: Make these protected */
|
|
||||||
public:
|
|
||||||
|
|
||||||
int m_msgnumber;
|
int m_msgnumber;
|
||||||
|
|
||||||
|
friend class wxSocketMSWManager;
|
||||||
|
|
||||||
|
DECLARE_NO_COPY_CLASS(wxSocketImplMSW)
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* _WX_MSW_GSOCKMSW_H_ */
|
#endif /* _WX_MSW_GSOCKMSW_H_ */
|
||||||
|
@@ -31,7 +31,7 @@ public:
|
|||||||
// returns the select()-based socket manager for console applications which
|
// returns the select()-based socket manager for console applications which
|
||||||
// is also used by some ports (wxX11, wxDFB) in the GUI build (hence it is
|
// is also used by some ports (wxX11, wxDFB) in the GUI build (hence it is
|
||||||
// here and not in wxConsoleAppTraits)
|
// here and not in wxConsoleAppTraits)
|
||||||
virtual GSocketManager *GetSocketManager();
|
virtual wxSocketManager *GetSocketManager();
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -50,7 +50,7 @@ public:
|
|||||||
virtual wxString GetDesktopEnvironment() const;
|
virtual wxString GetDesktopEnvironment() const;
|
||||||
#endif
|
#endif
|
||||||
#if wxUSE_SOCKETS
|
#if wxUSE_SOCKETS
|
||||||
virtual GSocketManager *GetSocketManager();
|
virtual wxSocketManager *GetSocketManager();
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
// Name: wx/private/gsocket.h
|
// Name: wx/private/gsocket.h
|
||||||
// Purpose: GSocket implementation
|
// Purpose: wxSocketImpl nd related declarations
|
||||||
// Authors: Guilhem Lavaux, Vadim Zeitlin
|
// Authors: Guilhem Lavaux, Vadim Zeitlin
|
||||||
// Created: April 1997
|
// Created: April 1997
|
||||||
// RCS-ID: $Id$
|
// RCS-ID: $Id$
|
||||||
@@ -9,6 +9,31 @@
|
|||||||
// Licence: wxWindows licence
|
// Licence: wxWindows licence
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
/*
|
||||||
|
Brief overview of different socket classes:
|
||||||
|
|
||||||
|
- wxSocketBase is the public class representing a socket ("Base" here
|
||||||
|
refers to the fact that wxSocketClient and wxSocketServer are derived
|
||||||
|
from it and predates the convention of using "Base" for common base
|
||||||
|
classes for platform-specific classes in wxWidgets) with implementation
|
||||||
|
common to all platforms and forwarding methods whose implementation
|
||||||
|
differs between platforms to wxSocketImpl which it contains.
|
||||||
|
|
||||||
|
- wxSocketImpl is actually just an abstract base class having only code
|
||||||
|
common to all platforms, the concrete implementation classes derive from
|
||||||
|
it and are created by wxSocketManager::CreateSocket().
|
||||||
|
|
||||||
|
- Some socket operations have different implementations in console-mode and
|
||||||
|
GUI applications. wxSocketManager class exists to abstract this in such
|
||||||
|
way that console applications (using wxBase) don't depend on wxNet. An
|
||||||
|
object of this class is made available via wxApp and GUI applications set
|
||||||
|
up a different kind of global socket manager from console ones.
|
||||||
|
|
||||||
|
TODO: it looks like wxSocketManager could be eliminated by providing
|
||||||
|
methods for registering/unregistering sockets directly in
|
||||||
|
wxEventLoop.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef _WX_PRIVATE_GSOCKET_H_
|
#ifndef _WX_PRIVATE_GSOCKET_H_
|
||||||
#define _WX_PRIVATE_GSOCKET_H_
|
#define _WX_PRIVATE_GSOCKET_H_
|
||||||
|
|
||||||
@@ -16,9 +41,7 @@
|
|||||||
|
|
||||||
#if wxUSE_SOCKETS
|
#if wxUSE_SOCKETS
|
||||||
|
|
||||||
#include "wx/dlimpexp.h" /* for WXDLLIMPEXP_NET */
|
#include "wx/socket.h"
|
||||||
|
|
||||||
class WXDLLIMPEXP_FWD_NET wxSocketBase;
|
|
||||||
|
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
|
|
||||||
@@ -43,61 +66,48 @@ class WXDLLIMPEXP_FWD_NET wxSocketBase;
|
|||||||
#include <sys/time.h> // for timeval
|
#include <sys/time.h> // for timeval
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// these definitions are for MSW when we don't use configure, otherwise these
|
||||||
|
// symbols are defined by configure
|
||||||
|
#ifndef WX_SOCKLEN_T
|
||||||
|
#define WX_SOCKLEN_T int
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SOCKOPTLEN_T
|
||||||
|
#define SOCKOPTLEN_T int
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// define some symbols which winsock.h defines but traditional BSD headers
|
||||||
|
// don't
|
||||||
|
#ifndef SOCKET
|
||||||
|
#define SOCKET int
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef INVALID_SOCKET
|
||||||
|
#define INVALID_SOCKET (-1)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SOCKET_ERROR
|
||||||
|
#define SOCKET_ERROR (-1)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if wxUSE_IPV6
|
||||||
|
typedef struct sockaddr_storage wxSockAddr;
|
||||||
|
#else
|
||||||
|
typedef struct sockaddr wxSockAddr;
|
||||||
|
#endif
|
||||||
|
|
||||||
enum GAddressType
|
enum GAddressType
|
||||||
{
|
{
|
||||||
GSOCK_NOFAMILY = 0,
|
wxSOCKET_NOFAMILY = 0,
|
||||||
GSOCK_INET,
|
wxSOCKET_INET,
|
||||||
GSOCK_INET6,
|
wxSOCKET_INET6,
|
||||||
GSOCK_UNIX
|
wxSOCKET_UNIX
|
||||||
};
|
};
|
||||||
|
|
||||||
enum GSocketStream
|
typedef int wxSocketEventFlags;
|
||||||
{
|
|
||||||
GSOCK_STREAMED,
|
|
||||||
GSOCK_UNSTREAMED
|
|
||||||
};
|
|
||||||
|
|
||||||
enum GSocketError
|
|
||||||
{
|
|
||||||
GSOCK_NOERROR = 0,
|
|
||||||
GSOCK_INVOP,
|
|
||||||
GSOCK_IOERR,
|
|
||||||
GSOCK_INVADDR,
|
|
||||||
GSOCK_INVSOCK,
|
|
||||||
GSOCK_NOHOST,
|
|
||||||
GSOCK_INVPORT,
|
|
||||||
GSOCK_WOULDBLOCK,
|
|
||||||
GSOCK_TIMEDOUT,
|
|
||||||
GSOCK_MEMERR,
|
|
||||||
GSOCK_OPTERR
|
|
||||||
};
|
|
||||||
|
|
||||||
/* See below for an explanation on how events work.
|
|
||||||
*/
|
|
||||||
enum GSocketEvent
|
|
||||||
{
|
|
||||||
GSOCK_INPUT = 0,
|
|
||||||
GSOCK_OUTPUT = 1,
|
|
||||||
GSOCK_CONNECTION = 2,
|
|
||||||
GSOCK_LOST = 3,
|
|
||||||
GSOCK_MAX_EVENT = 4
|
|
||||||
};
|
|
||||||
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
GSOCK_INPUT_FLAG = 1 << GSOCK_INPUT,
|
|
||||||
GSOCK_OUTPUT_FLAG = 1 << GSOCK_OUTPUT,
|
|
||||||
GSOCK_CONNECTION_FLAG = 1 << GSOCK_CONNECTION,
|
|
||||||
GSOCK_LOST_FLAG = 1 << GSOCK_LOST
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef int GSocketEventFlags;
|
|
||||||
|
|
||||||
struct GAddress;
|
struct GAddress;
|
||||||
class GSocket;
|
class wxSocketImpl;
|
||||||
|
|
||||||
typedef void (*GSocketCallback)(GSocket *socket, GSocketEvent event,
|
|
||||||
char *cdata);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Class providing hooks abstracting the differences between console and GUI
|
Class providing hooks abstracting the differences between console and GUI
|
||||||
@@ -108,23 +118,23 @@ typedef void (*GSocketCallback)(GSocket *socket, GSocketEvent event,
|
|||||||
its existence is that we want the same socket code work differently
|
its existence is that we want the same socket code work differently
|
||||||
depending on whether it's used from a console or a GUI program. This is
|
depending on whether it's used from a console or a GUI program. This is
|
||||||
achieved by implementing the virtual methods of this class differently in
|
achieved by implementing the virtual methods of this class differently in
|
||||||
the objects returned by wxConsoleAppTraits::GetSocketFunctionsTable() and
|
the objects returned by wxConsoleAppTraits::GetSocketManager() and the same
|
||||||
the same method in wxGUIAppTraits.
|
method in wxGUIAppTraits.
|
||||||
*/
|
*/
|
||||||
class GSocketManager
|
class wxSocketManager
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// set the manager to use, we don't take ownership of it
|
// set the manager to use, we don't take ownership of it
|
||||||
//
|
//
|
||||||
// this should be called before GSocket_Init(), i.e. before the first
|
// this should be called before creating the first wxSocket object,
|
||||||
// wxSocket object is created, otherwise the manager returned by
|
// otherwise the manager returned by wxAppTraits::GetSocketManager() will
|
||||||
// wxAppTraits::GetSocketManager() will be used
|
// be used
|
||||||
static void Set(GSocketManager *manager);
|
static void Set(wxSocketManager *manager);
|
||||||
|
|
||||||
// return the manager to use
|
// return the manager to use
|
||||||
//
|
//
|
||||||
// this initializes the manager at first use
|
// this initializes the manager at first use
|
||||||
static GSocketManager *Get()
|
static wxSocketManager *Get()
|
||||||
{
|
{
|
||||||
if ( !ms_manager )
|
if ( !ms_manager )
|
||||||
Init();
|
Init();
|
||||||
@@ -135,29 +145,20 @@ public:
|
|||||||
// called before the first wxSocket is created and should do the
|
// called before the first wxSocket is created and should do the
|
||||||
// initializations needed in order to use the network
|
// initializations needed in order to use the network
|
||||||
//
|
//
|
||||||
// return true if initialized successfully
|
// return true if initialized successfully; if this returns false sockets
|
||||||
|
// can't be used at all
|
||||||
virtual bool OnInit() = 0;
|
virtual bool OnInit() = 0;
|
||||||
|
|
||||||
// undo the initializations of OnInit()
|
// undo the initializations of OnInit()
|
||||||
virtual void OnExit() = 0;
|
virtual void OnExit() = 0;
|
||||||
|
|
||||||
|
|
||||||
// do manager-specific socket initializations: called in the beginning of
|
// create a concrete socket implementation associated with the given
|
||||||
// the socket initialization
|
// wxSocket object
|
||||||
virtual bool Init_Socket(GSocket *socket) = 0;
|
|
||||||
|
|
||||||
// called when the socket is being closed
|
|
||||||
//
|
//
|
||||||
// TODO: merge this with Destroy_Socket(), currently 2 separate functions
|
// the returned object must be deleted by the caller
|
||||||
// are needed because Init_Socket() always allocates manager-specific
|
virtual wxSocketImpl *CreateSocket(wxSocketBase& wxsocket) = 0;
|
||||||
// resources in GSocket and Destroy_Socket() must be called even if
|
|
||||||
// the socket has never been opened, but if the allocation were done
|
|
||||||
// on demand, then Destroy_Socket() could be called from
|
|
||||||
// GSocket::Close() and we wouldn't need Close_Socket() at all
|
|
||||||
virtual void Close_Socket(GSocket *socket) = 0;
|
|
||||||
|
|
||||||
// undo Init_Socket(): called from GSocket dtor
|
|
||||||
virtual void Destroy_Socket(GSocket *socket) = 0;
|
|
||||||
|
|
||||||
|
|
||||||
// these functions enable or disable monitoring of the given socket for the
|
// these functions enable or disable monitoring of the given socket for the
|
||||||
@@ -165,77 +166,134 @@ public:
|
|||||||
// that both BSD and Winsock implementations actually use socket->m_server
|
// that both BSD and Winsock implementations actually use socket->m_server
|
||||||
// value to determine what exactly should be monitored so it needs to be
|
// value to determine what exactly should be monitored so it needs to be
|
||||||
// set before calling these functions)
|
// set before calling these functions)
|
||||||
virtual void Install_Callback(GSocket *socket,
|
virtual void Install_Callback(wxSocketImpl *socket,
|
||||||
GSocketEvent event = GSOCK_MAX_EVENT) = 0;
|
wxSocketNotify event = wxSOCKET_MAX_EVENT) = 0;
|
||||||
virtual void Uninstall_Callback(GSocket *socket,
|
virtual void Uninstall_Callback(wxSocketImpl *socket,
|
||||||
GSocketEvent event = GSOCK_MAX_EVENT) = 0;
|
wxSocketNotify event = wxSOCKET_MAX_EVENT) = 0;
|
||||||
|
|
||||||
virtual ~GSocketManager() { }
|
virtual ~wxSocketManager() { }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// get the manager to use if we don't have it yet
|
// get the manager to use if we don't have it yet
|
||||||
static void Init();
|
static void Init();
|
||||||
|
|
||||||
static GSocketManager *ms_manager;
|
static wxSocketManager *ms_manager;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Base class providing functionality common to BSD and Winsock sockets.
|
Base class for all socket implementations providing functionality common to
|
||||||
|
BSD and Winsock sockets.
|
||||||
|
|
||||||
TODO: merge this in wxSocket itself, there is no reason to maintain the
|
Objects of this class are not created directly but only via its static
|
||||||
separation between wxSocket and GSocket.
|
Create() method which in turn forwards to wxSocketManager::CreateSocket().
|
||||||
*/
|
*/
|
||||||
class GSocketBase
|
class wxSocketImpl
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// static factory function: creates the low-level socket associated with
|
// static factory function: creates the low-level socket associated with
|
||||||
// the given wxSocket (and inherits its attributes such as timeout)
|
// the given wxSocket (and inherits its attributes such as timeout)
|
||||||
static GSocket *Create(wxSocketBase& wxsocket);
|
static wxSocketImpl *Create(wxSocketBase& wxsocket);
|
||||||
|
|
||||||
virtual ~GSocketBase();
|
virtual ~wxSocketImpl();
|
||||||
|
|
||||||
|
// set various socket properties: all of those can only be called before
|
||||||
|
// creating the socket
|
||||||
void SetTimeout(unsigned long millisec);
|
void SetTimeout(unsigned long millisec);
|
||||||
|
void SetNonBlocking(bool non_blocking) { m_non_blocking = non_blocking; }
|
||||||
GSocketError SetLocal(GAddress *address);
|
void SetReusable() { m_reusable = true; }
|
||||||
GSocketError SetPeer(GAddress *address);
|
void SetBroadcast() { m_broadcast = true; }
|
||||||
GAddress *GetLocal();
|
void DontDoBind() { m_dobind = false; }
|
||||||
GAddress *GetPeer();
|
|
||||||
|
|
||||||
GSocketEventFlags Select(GSocketEventFlags flags);
|
|
||||||
|
|
||||||
virtual GSocket *WaitConnection(wxSocketBase& wxsocket) = 0;
|
|
||||||
|
|
||||||
void Close();
|
|
||||||
virtual void Shutdown();
|
|
||||||
|
|
||||||
void SetInitialSocketBuffers(int recv, int send)
|
void SetInitialSocketBuffers(int recv, int send)
|
||||||
{
|
{
|
||||||
m_initialRecvBufferSize = recv;
|
m_initialRecvBufferSize = recv;
|
||||||
m_initialSendBufferSize = send;
|
m_initialSendBufferSize = send;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wxSocketError SetLocal(GAddress *address);
|
||||||
|
wxSocketError SetPeer(GAddress *address);
|
||||||
|
|
||||||
|
// accessors
|
||||||
|
// ---------
|
||||||
|
|
||||||
|
GAddress *GetLocal();
|
||||||
|
GAddress *GetPeer();
|
||||||
|
|
||||||
|
wxSocketError GetError() const { return m_error; }
|
||||||
|
bool IsOk() const { return m_error == wxSOCKET_NOERROR; }
|
||||||
|
|
||||||
|
|
||||||
|
// creating/closing the socket
|
||||||
|
// --------------------------
|
||||||
|
|
||||||
|
// notice that SetLocal() must be called before creating the socket using
|
||||||
|
// any of the functions below
|
||||||
|
//
|
||||||
|
// all of Create() functions return wxSOCKET_NOERROR if the operation
|
||||||
|
// completed successfully or one of:
|
||||||
|
// wxSOCKET_INVSOCK - the socket is in use.
|
||||||
|
// wxSOCKET_INVADDR - the local (server) or peer (client) address has not
|
||||||
|
// been set.
|
||||||
|
// wxSOCKET_IOERR - any other error.
|
||||||
|
|
||||||
|
// create a socket listening on the local address specified by SetLocal()
|
||||||
|
// (notice that DontDoBind() is ignored by this function)
|
||||||
|
wxSocketError CreateServer();
|
||||||
|
|
||||||
|
// create a socket connected to the peer address specified by SetPeer()
|
||||||
|
// (notice that DontDoBind() is ignored by this function)
|
||||||
|
//
|
||||||
|
// this function may return wxSOCKET_WOULDBLOCK in addition to the return
|
||||||
|
// values listed above
|
||||||
|
wxSocketError CreateClient();
|
||||||
|
|
||||||
|
// create (and bind unless DontDoBind() had been called) an UDP socket
|
||||||
|
// associated with the given local address
|
||||||
|
wxSocketError CreateUDP();
|
||||||
|
|
||||||
|
// may be called whether the socket was created or not, calls DoClose() if
|
||||||
|
// it was indeed created
|
||||||
|
void Close();
|
||||||
|
|
||||||
|
virtual void Shutdown();
|
||||||
|
|
||||||
|
|
||||||
|
// IO operations
|
||||||
|
// -------------
|
||||||
|
|
||||||
|
virtual int Read(char *buffer, int size) = 0;
|
||||||
|
virtual int Write(const char *buffer, int size) = 0;
|
||||||
|
|
||||||
|
wxSocketEventFlags Select(wxSocketEventFlags flags);
|
||||||
|
|
||||||
|
virtual wxSocketImpl *WaitConnection(wxSocketBase& wxsocket) = 0;
|
||||||
|
|
||||||
|
|
||||||
|
// notifications
|
||||||
|
// -------------
|
||||||
|
|
||||||
// notify m_wxsocket about the given socket event by calling its (inaptly
|
// notify m_wxsocket about the given socket event by calling its (inaptly
|
||||||
// named) OnRequest() method
|
// named) OnRequest() method
|
||||||
void NotifyOnStateChange(GSocketEvent event);
|
void NotifyOnStateChange(wxSocketNotify event);
|
||||||
|
|
||||||
// FIXME: making these functions virtual is a hack necessary to make the
|
// FIXME: making these functions virtual is a hack necessary to make the
|
||||||
// wxBase library link without requiring wxNet under Unix where
|
// wxBase library link without requiring wxNet under Unix where
|
||||||
// GSocketSelectManager (part of wxBase) uses them, they don't
|
// wxSocketSelectManager (part of wxBase) uses them, they don't
|
||||||
// really need to be virtual at all
|
// really need to be virtual at all
|
||||||
virtual void Detected_Read() { }
|
virtual void Detected_Read() { }
|
||||||
virtual void Detected_Write() { }
|
virtual void Detected_Write() { }
|
||||||
|
virtual void Notify(bool WXUNUSED(notify)) { }
|
||||||
|
|
||||||
// this is officially SOCKET (unsigned int) under Windows but we don't want
|
// TODO: make these fields protected and provide accessors for those of
|
||||||
// to include winsock.h which defines SOCKET from here so just use int
|
// them that wxSocketBase really needs
|
||||||
// under all platforms
|
//protected:
|
||||||
int m_fd;
|
SOCKET m_fd;
|
||||||
|
|
||||||
int m_initialRecvBufferSize;
|
int m_initialRecvBufferSize;
|
||||||
int m_initialSendBufferSize;
|
int m_initialSendBufferSize;
|
||||||
|
|
||||||
GAddress *m_local;
|
GAddress *m_local;
|
||||||
GAddress *m_peer;
|
GAddress *m_peer;
|
||||||
GSocketError m_error;
|
wxSocketError m_error;
|
||||||
|
|
||||||
bool m_non_blocking;
|
bool m_non_blocking;
|
||||||
bool m_server;
|
bool m_server;
|
||||||
@@ -247,37 +305,71 @@ public:
|
|||||||
|
|
||||||
struct timeval m_timeout;
|
struct timeval m_timeout;
|
||||||
|
|
||||||
GSocketEventFlags m_detected;
|
wxSocketEventFlags m_detected;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
GSocketBase(wxSocketBase& wxsocket);
|
wxSocketImpl(wxSocketBase& wxsocket);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
// handle the given connect() return value (which may be 0 or EWOULDBLOCK
|
||||||
|
// or something else)
|
||||||
|
virtual wxSocketError DoHandleConnect(int ret) = 0;
|
||||||
|
|
||||||
|
// called by Close() if we have a valid m_fd
|
||||||
|
virtual void DoClose() = 0;
|
||||||
|
|
||||||
|
// put this socket into non-blocking mode and enable monitoring this socket
|
||||||
|
// as part of the event loop
|
||||||
|
virtual void UnblockAndRegisterWithEventLoop() = 0;
|
||||||
|
|
||||||
|
// check that the socket wasn't created yet and that the given address
|
||||||
|
// (either m_local or m_peer depending on the socket kind) is valid and
|
||||||
|
// set m_error and return false if this is not the case
|
||||||
|
bool PreCreateCheck(GAddress *addr);
|
||||||
|
|
||||||
|
// set the given socket option: this just wraps setsockopt(SOL_SOCKET)
|
||||||
|
int SetSocketOption(int optname, int optval)
|
||||||
|
{
|
||||||
|
// although modern Unix systems use "const void *" for the 4th
|
||||||
|
// parameter here, old systems and Winsock still use "const char *"
|
||||||
|
return setsockopt(m_fd, SOL_SOCKET, optname,
|
||||||
|
reinterpret_cast<const char *>(&optval),
|
||||||
|
sizeof(optval));
|
||||||
|
}
|
||||||
|
|
||||||
|
// set the given socket option to true value: this is an even simpler
|
||||||
|
// wrapper for setsockopt(SOL_SOCKET) for boolean options
|
||||||
|
int EnableSocketOption(int optname)
|
||||||
|
{
|
||||||
|
return SetSocketOption(optname, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// apply the options to the (just created) socket and register it with the
|
||||||
|
// event loop by calling UnblockAndRegisterWithEventLoop()
|
||||||
|
void PostCreation();
|
||||||
|
|
||||||
|
// update local address after binding/connecting
|
||||||
|
wxSocketError UpdateLocalAddress();
|
||||||
|
|
||||||
|
|
||||||
// set in ctor and never changed except that it's reset to NULL when the
|
// set in ctor and never changed except that it's reset to NULL when the
|
||||||
// socket is shut down
|
// socket is shut down
|
||||||
wxSocketBase *m_wxsocket;
|
wxSocketBase *m_wxsocket;
|
||||||
|
|
||||||
DECLARE_NO_COPY_CLASS(GSocketBase)
|
DECLARE_NO_COPY_CLASS(wxSocketImpl)
|
||||||
};
|
};
|
||||||
|
|
||||||
#if defined(__WINDOWS__)
|
#if defined(__WXMSW__)
|
||||||
#include "wx/msw/gsockmsw.h"
|
#include "wx/msw/gsockmsw.h"
|
||||||
#else
|
#else
|
||||||
#include "wx/unix/gsockunx.h"
|
#include "wx/unix/gsockunx.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Global initializers */
|
|
||||||
|
|
||||||
/* GSocket_Init() must be called at the beginning (but after calling
|
|
||||||
* GSocketManager::Set() if a custom manager should be used) */
|
|
||||||
bool GSocket_Init();
|
|
||||||
|
|
||||||
/* GSocket_Cleanup() must be called at the end */
|
|
||||||
void GSocket_Cleanup();
|
|
||||||
|
|
||||||
|
|
||||||
/* GAddress */
|
/* GAddress */
|
||||||
|
|
||||||
|
// TODO: make GAddress a real class instead of this mix of C and C++
|
||||||
|
|
||||||
// Represents a socket endpoint, i.e. -- in spite of its name -- not an address
|
// Represents a socket endpoint, i.e. -- in spite of its name -- not an address
|
||||||
// but an (address, port) pair
|
// but an (address, port) pair
|
||||||
struct GAddress
|
struct GAddress
|
||||||
@@ -288,7 +380,7 @@ struct GAddress
|
|||||||
GAddressType m_family;
|
GAddressType m_family;
|
||||||
int m_realfamily;
|
int m_realfamily;
|
||||||
|
|
||||||
GSocketError m_error;
|
wxSocketError m_error;
|
||||||
};
|
};
|
||||||
|
|
||||||
GAddress *GAddress_new();
|
GAddress *GAddress_new();
|
||||||
@@ -303,48 +395,48 @@ GAddressType GAddress_GetFamily(GAddress *address);
|
|||||||
* address family will be implicitly set to AF_INET.
|
* address family will be implicitly set to AF_INET.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
GSocketError GAddress_INET_SetHostName(GAddress *address, const char *hostname);
|
wxSocketError GAddress_INET_SetHostName(GAddress *address, const char *hostname);
|
||||||
GSocketError GAddress_INET_SetBroadcastAddress(GAddress *address);
|
wxSocketError GAddress_INET_SetBroadcastAddress(GAddress *address);
|
||||||
GSocketError GAddress_INET_SetAnyAddress(GAddress *address);
|
wxSocketError GAddress_INET_SetAnyAddress(GAddress *address);
|
||||||
GSocketError GAddress_INET_SetHostAddress(GAddress *address,
|
wxSocketError GAddress_INET_SetHostAddress(GAddress *address,
|
||||||
unsigned long hostaddr);
|
unsigned long hostaddr);
|
||||||
GSocketError GAddress_INET_SetPortName(GAddress *address, const char *port,
|
wxSocketError GAddress_INET_SetPortName(GAddress *address, const char *port,
|
||||||
const char *protocol);
|
const char *protocol);
|
||||||
GSocketError GAddress_INET_SetPort(GAddress *address, unsigned short port);
|
wxSocketError GAddress_INET_SetPort(GAddress *address, unsigned short port);
|
||||||
|
|
||||||
GSocketError GAddress_INET_GetHostName(GAddress *address, char *hostname,
|
wxSocketError GAddress_INET_GetHostName(GAddress *address, char *hostname,
|
||||||
size_t sbuf);
|
size_t sbuf);
|
||||||
unsigned long GAddress_INET_GetHostAddress(GAddress *address);
|
unsigned long GAddress_INET_GetHostAddress(GAddress *address);
|
||||||
unsigned short GAddress_INET_GetPort(GAddress *address);
|
unsigned short GAddress_INET_GetPort(GAddress *address);
|
||||||
|
|
||||||
GSocketError _GAddress_translate_from(GAddress *address,
|
wxSocketError _GAddress_translate_from(GAddress *address,
|
||||||
struct sockaddr *addr, int len);
|
struct sockaddr *addr, int len);
|
||||||
GSocketError _GAddress_translate_to (GAddress *address,
|
wxSocketError _GAddress_translate_to (GAddress *address,
|
||||||
struct sockaddr **addr, int *len);
|
struct sockaddr **addr, int *len);
|
||||||
GSocketError _GAddress_Init_INET(GAddress *address);
|
wxSocketError _GAddress_Init_INET(GAddress *address);
|
||||||
|
|
||||||
#if wxUSE_IPV6
|
#if wxUSE_IPV6
|
||||||
|
|
||||||
GSocketError GAddress_INET6_SetHostName(GAddress *address, const char *hostname);
|
wxSocketError GAddress_INET6_SetHostName(GAddress *address, const char *hostname);
|
||||||
GSocketError GAddress_INET6_SetAnyAddress(GAddress *address);
|
wxSocketError GAddress_INET6_SetAnyAddress(GAddress *address);
|
||||||
GSocketError GAddress_INET6_SetHostAddress(GAddress *address,
|
wxSocketError GAddress_INET6_SetHostAddress(GAddress *address,
|
||||||
struct in6_addr hostaddr);
|
struct in6_addr hostaddr);
|
||||||
GSocketError GAddress_INET6_SetPortName(GAddress *address, const char *port,
|
wxSocketError GAddress_INET6_SetPortName(GAddress *address, const char *port,
|
||||||
const char *protocol);
|
const char *protocol);
|
||||||
GSocketError GAddress_INET6_SetPort(GAddress *address, unsigned short port);
|
wxSocketError GAddress_INET6_SetPort(GAddress *address, unsigned short port);
|
||||||
|
|
||||||
GSocketError GAddress_INET6_GetHostName(GAddress *address, char *hostname,
|
wxSocketError GAddress_INET6_GetHostName(GAddress *address, char *hostname,
|
||||||
size_t sbuf);
|
size_t sbuf);
|
||||||
GSocketError GAddress_INET6_GetHostAddress(GAddress *address,struct in6_addr *hostaddr);
|
wxSocketError GAddress_INET6_GetHostAddress(GAddress *address,struct in6_addr *hostaddr);
|
||||||
unsigned short GAddress_INET6_GetPort(GAddress *address);
|
unsigned short GAddress_INET6_GetPort(GAddress *address);
|
||||||
|
|
||||||
#endif // wxUSE_IPV6
|
#endif // wxUSE_IPV6
|
||||||
|
|
||||||
// these functions are available under all platforms but only implemented under
|
// these functions are available under all platforms but only implemented under
|
||||||
// Unix ones, elsewhere they just return GSOCK_INVADDR
|
// Unix ones, elsewhere they just return wxSOCKET_INVADDR
|
||||||
GSocketError _GAddress_Init_UNIX(GAddress *address);
|
wxSocketError _GAddress_Init_UNIX(GAddress *address);
|
||||||
GSocketError GAddress_UNIX_SetPath(GAddress *address, const char *path);
|
wxSocketError GAddress_UNIX_SetPath(GAddress *address, const char *path);
|
||||||
GSocketError GAddress_UNIX_GetPath(GAddress *address, char *path, size_t sbuf);
|
wxSocketError GAddress_UNIX_GetPath(GAddress *address, char *path, size_t sbuf);
|
||||||
|
|
||||||
#endif /* wxUSE_SOCKETS */
|
#endif /* wxUSE_SOCKETS */
|
||||||
|
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
// Name: wx/private/gsocketiohandler.h
|
// Name: wx/private/gsocketiohandler.h
|
||||||
// Purpose: class for registering GSocket in wxSelectDispatcher
|
// Purpose: class for registering sockets with wxSelectDispatcher
|
||||||
// Authors: Lukasz Michalski
|
// Authors: Lukasz Michalski
|
||||||
// Created: December 2006
|
// Created: December 2006
|
||||||
// Copyright: (c) Lukasz Michalski
|
// Copyright: (c) Lukasz Michalski
|
||||||
@@ -18,10 +18,10 @@
|
|||||||
#include "wx/private/selectdispatcher.h"
|
#include "wx/private/selectdispatcher.h"
|
||||||
#include "wx/private/gsocket.h"
|
#include "wx/private/gsocket.h"
|
||||||
|
|
||||||
class WXDLLIMPEXP_BASE wxGSocketIOHandler : public wxFDIOHandler
|
class WXDLLIMPEXP_BASE wxSocketIOHandler : public wxFDIOHandler
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
wxGSocketIOHandler(GSocket* socket)
|
wxSocketIOHandler(wxSocketImpl *socket)
|
||||||
{
|
{
|
||||||
m_socket = socket;
|
m_socket = socket;
|
||||||
m_flags = 0;
|
m_flags = 0;
|
||||||
@@ -36,7 +36,7 @@ public:
|
|||||||
virtual void OnExceptionWaiting() { m_socket->Detected_Read(); }
|
virtual void OnExceptionWaiting() { m_socket->Detected_Read(); }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
GSocket* m_socket;
|
wxSocketImpl *m_socket;
|
||||||
int m_flags;
|
int m_flags;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -22,49 +22,54 @@
|
|||||||
|
|
||||||
#include "wx/event.h"
|
#include "wx/event.h"
|
||||||
#include "wx/sckaddr.h"
|
#include "wx/sckaddr.h"
|
||||||
#include "wx/private/gsocket.h"
|
|
||||||
#include "wx/list.h"
|
#include "wx/list.h"
|
||||||
|
|
||||||
|
class wxSocketImpl;
|
||||||
|
|
||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
// Types and constants
|
// Types and constants
|
||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// Types of different socket notifications or events.
|
||||||
|
//
|
||||||
|
// NB: the values here should be consecutive and start with 0 as they are
|
||||||
|
// used to construct the wxSOCKET_XXX_FLAG bit mask values below
|
||||||
enum wxSocketNotify
|
enum wxSocketNotify
|
||||||
{
|
{
|
||||||
wxSOCKET_INPUT = GSOCK_INPUT,
|
wxSOCKET_INPUT,
|
||||||
wxSOCKET_OUTPUT = GSOCK_OUTPUT,
|
wxSOCKET_OUTPUT,
|
||||||
wxSOCKET_CONNECTION = GSOCK_CONNECTION,
|
wxSOCKET_CONNECTION,
|
||||||
wxSOCKET_LOST = GSOCK_LOST
|
wxSOCKET_LOST,
|
||||||
|
wxSOCKET_MAX_EVENT
|
||||||
};
|
};
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
wxSOCKET_INPUT_FLAG = GSOCK_INPUT_FLAG,
|
wxSOCKET_INPUT_FLAG = 1 << wxSOCKET_INPUT,
|
||||||
wxSOCKET_OUTPUT_FLAG = GSOCK_OUTPUT_FLAG,
|
wxSOCKET_OUTPUT_FLAG = 1 << wxSOCKET_OUTPUT,
|
||||||
wxSOCKET_CONNECTION_FLAG = GSOCK_CONNECTION_FLAG,
|
wxSOCKET_CONNECTION_FLAG = 1 << wxSOCKET_CONNECTION,
|
||||||
wxSOCKET_LOST_FLAG = GSOCK_LOST_FLAG
|
wxSOCKET_LOST_FLAG = 1 << wxSOCKET_LOST
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef GSocketEventFlags wxSocketEventFlags;
|
// this is a combination of the bit masks defined above
|
||||||
|
typedef int wxSocketEventFlags;
|
||||||
|
|
||||||
enum wxSocketError
|
enum wxSocketError
|
||||||
{
|
{
|
||||||
// from GSocket
|
wxSOCKET_NOERROR = 0,
|
||||||
wxSOCKET_NOERROR = GSOCK_NOERROR,
|
wxSOCKET_INVOP,
|
||||||
wxSOCKET_INVOP = GSOCK_INVOP,
|
wxSOCKET_IOERR,
|
||||||
wxSOCKET_IOERR = GSOCK_IOERR,
|
wxSOCKET_INVADDR,
|
||||||
wxSOCKET_INVADDR = GSOCK_INVADDR,
|
wxSOCKET_INVSOCK,
|
||||||
wxSOCKET_INVSOCK = GSOCK_INVSOCK,
|
wxSOCKET_NOHOST,
|
||||||
wxSOCKET_NOHOST = GSOCK_NOHOST,
|
wxSOCKET_INVPORT,
|
||||||
wxSOCKET_INVPORT = GSOCK_INVPORT,
|
wxSOCKET_WOULDBLOCK,
|
||||||
wxSOCKET_WOULDBLOCK = GSOCK_WOULDBLOCK,
|
wxSOCKET_TIMEDOUT,
|
||||||
wxSOCKET_TIMEDOUT = GSOCK_TIMEDOUT,
|
wxSOCKET_MEMERR,
|
||||||
wxSOCKET_MEMERR = GSOCK_MEMERR,
|
wxSOCKET_OPTERR
|
||||||
|
|
||||||
// wxSocket-specific (not yet implemented)
|
|
||||||
wxSOCKET_DUMMY
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// socket options/flags bit masks
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
wxSOCKET_NONE = 0,
|
wxSOCKET_NONE = 0,
|
||||||
@@ -76,6 +81,9 @@ enum
|
|||||||
wxSOCKET_NOBIND = 32
|
wxSOCKET_NOBIND = 32
|
||||||
};
|
};
|
||||||
|
|
||||||
|
typedef int wxSocketFlags;
|
||||||
|
|
||||||
|
// socket kind values (badly defined, don't use)
|
||||||
enum wxSocketType
|
enum wxSocketType
|
||||||
{
|
{
|
||||||
wxSOCKET_UNINIT,
|
wxSOCKET_UNINIT,
|
||||||
@@ -85,8 +93,6 @@ enum wxSocketType
|
|||||||
wxSOCKET_DATAGRAM
|
wxSOCKET_DATAGRAM
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef int wxSocketFlags;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
@@ -111,14 +117,14 @@ public:
|
|||||||
|
|
||||||
// state
|
// state
|
||||||
bool Ok() const { return IsOk(); }
|
bool Ok() const { return IsOk(); }
|
||||||
bool IsOk() const { return (m_socket != NULL); }
|
bool IsOk() const { return m_impl != NULL; }
|
||||||
bool Error() const { return m_error; }
|
bool Error() const { return m_error; }
|
||||||
bool IsClosed() const { return m_closed; }
|
bool IsClosed() const { return m_closed; }
|
||||||
bool IsConnected() const { return m_connected; }
|
bool IsConnected() const { return m_connected; }
|
||||||
bool IsData() { return WaitForRead(0, 0); }
|
bool IsData() { return WaitForRead(0, 0); }
|
||||||
bool IsDisconnected() const { return !IsConnected(); }
|
bool IsDisconnected() const { return !IsConnected(); }
|
||||||
wxUint32 LastCount() const { return m_lcount; }
|
wxUint32 LastCount() const { return m_lcount; }
|
||||||
wxSocketError LastError() const { return (wxSocketError)m_socket->GetError(); }
|
wxSocketError LastError() const;
|
||||||
void SaveState();
|
void SaveState();
|
||||||
void RestoreState();
|
void RestoreState();
|
||||||
|
|
||||||
@@ -182,7 +188,7 @@ public:
|
|||||||
// Implementation from now on
|
// Implementation from now on
|
||||||
// --------------------------
|
// --------------------------
|
||||||
|
|
||||||
// do not use, should be private (called from GSocket)
|
// do not use, should be private (called from wxSocketImpl only)
|
||||||
void OnRequest(wxSocketNotify notify);
|
void OnRequest(wxSocketNotify notify);
|
||||||
|
|
||||||
// do not use, not documented nor supported
|
// do not use, not documented nor supported
|
||||||
@@ -201,7 +207,7 @@ private:
|
|||||||
// wait until the given flags are set for this socket or the given timeout
|
// wait until the given flags are set for this socket or the given timeout
|
||||||
// (or m_timeout) expires
|
// (or m_timeout) expires
|
||||||
//
|
//
|
||||||
// notice that GSOCK_LOST_FLAG is always taken into account but the return
|
// notice that wxSOCKET_LOST_FLAG is always taken into account but the return
|
||||||
// value depends on whether it is included in flags or not: if it is, and the
|
// value depends on whether it is included in flags or not: if it is, and the
|
||||||
// connection is indeed lost, true is returned, but if it isn't then the
|
// connection is indeed lost, true is returned, but if it isn't then the
|
||||||
// function returns false in this case
|
// function returns false in this case
|
||||||
@@ -215,7 +221,7 @@ private:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
// socket
|
// socket
|
||||||
GSocket *m_socket; // GSocket
|
wxSocketImpl *m_impl; // port-specific implementation
|
||||||
wxSocketType m_type; // wxSocket type
|
wxSocketType m_type; // wxSocket type
|
||||||
|
|
||||||
// state
|
// state
|
||||||
|
@@ -52,6 +52,4 @@ private:
|
|||||||
// the signal handlers
|
// the signal handlers
|
||||||
WX_DECLARE_HASH_MAP(int, SignalHandler, wxIntegerHash, wxIntegerEqual, SignalHandlerHash);
|
WX_DECLARE_HASH_MAP(int, SignalHandler, wxIntegerHash, wxIntegerEqual, SignalHandlerHash);
|
||||||
SignalHandlerHash m_signalHandlerHash;
|
SignalHandlerHash m_signalHandlerHash;
|
||||||
|
|
||||||
friend class GSocketGUIFunctionsTableBase;
|
|
||||||
};
|
};
|
||||||
|
@@ -46,13 +46,13 @@ public:
|
|||||||
// wxThread helpers
|
// wxThread helpers
|
||||||
// ----------------
|
// ----------------
|
||||||
|
|
||||||
// TODO
|
// Darwin uses the same wxSocketManager in console and GUI and, like MSW,
|
||||||
|
// uses SetDefaultSocketManager() to initialize it
|
||||||
#if wxUSE_SOCKETS
|
#if wxUSE_SOCKETS && !defined(__DARWIN__)
|
||||||
// returns the select()-based socket manager for console applications which
|
// returns the select()-based socket manager for console applications which
|
||||||
// is also used by some ports (wxX11, wxDFB) in the GUI build (hence it is
|
// is also used by some ports (wxX11, wxDFB) in the GUI build (hence it is
|
||||||
// here and not in wxConsoleAppTraits)
|
// here and not in wxConsoleAppTraits)
|
||||||
virtual GSocketManager *GetSocketManager();
|
virtual wxSocketManager *GetSocketManager();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
@@ -81,7 +81,7 @@ public:
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if wxUSE_SOCKETS && defined(wxHAS_GUI_SOCKET_MANAGER)
|
#if wxUSE_SOCKETS && defined(wxHAS_GUI_SOCKET_MANAGER)
|
||||||
virtual GSocketManager *GetSocketManager();
|
virtual wxSocketManager *GetSocketManager();
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -1,51 +1,62 @@
|
|||||||
/* -------------------------------------------------------------------------
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
* Project: GSocket (Generic Socket) for WX
|
// Name: wx/unix/gsockunx.h
|
||||||
* Name: gsockunx.h
|
// Purpose: wxSocketImpl implementation for Unix systems
|
||||||
* Copyright: (c) Guilhem Lavaux
|
// Authors: Guilhem Lavaux, Vadim Zeitlin
|
||||||
* Licence: wxWindows Licence
|
// Created: April 1997
|
||||||
* Purpose: GSocket Unix header
|
// RCS-ID: $Id$
|
||||||
* CVSID: $Id$
|
// Copyright: (c) 1997 Guilhem Lavaux
|
||||||
* -------------------------------------------------------------------------
|
// (c) 2008 Vadim Zeitlin
|
||||||
*/
|
// Licence: wxWindows licence
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#ifndef _WX_UNIX_GSOCKUNX_H_
|
#ifndef _WX_UNIX_GSOCKUNX_H_
|
||||||
#define _WX_UNIX_GSOCKUNX_H_
|
#define _WX_UNIX_GSOCKUNX_H_
|
||||||
|
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
#include <sys/ioctl.h>
|
||||||
|
|
||||||
class wxGSocketIOHandler;
|
class wxSocketIOHandler;
|
||||||
|
|
||||||
class GSocket : public GSocketBase
|
class wxSocketImplUnix : public wxSocketImpl
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
GSocket(wxSocketBase& wxsocket);
|
wxSocketImplUnix(wxSocketBase& wxsocket);
|
||||||
virtual ~GSocket();
|
|
||||||
|
|
||||||
virtual void Shutdown();
|
virtual void Shutdown();
|
||||||
virtual GSocket *WaitConnection(wxSocketBase& wxsocket);
|
virtual wxSocketImpl *WaitConnection(wxSocketBase& wxsocket);
|
||||||
|
|
||||||
GSocketError SetServer();
|
|
||||||
bool SetReusable();
|
|
||||||
bool SetBroadcast();
|
|
||||||
bool DontDoBind();
|
|
||||||
GSocketError Connect(GSocketStream stream);
|
|
||||||
GSocketError SetNonOriented();
|
|
||||||
int Read(char *buffer, int size);
|
int Read(char *buffer, int size);
|
||||||
int Write(const char *buffer, int size);
|
int Write(const char *buffer, int size);
|
||||||
void SetNonBlocking(bool non_block);
|
|
||||||
GSocketError WXDLLIMPEXP_NET GetError();
|
|
||||||
GSocketError GetSockOpt(int level, int optname, void *optval, int *optlen);
|
|
||||||
GSocketError SetSockOpt(int level, int optname,
|
|
||||||
const void *optval, int optlen);
|
|
||||||
//attach or detach from main loop
|
//attach or detach from main loop
|
||||||
void Notify(bool flag);
|
void Notify(bool flag);
|
||||||
void Detected_Read();
|
void Detected_Read();
|
||||||
void Detected_Write();
|
void Detected_Write();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
virtual wxSocketError DoHandleConnect(int ret);
|
||||||
|
virtual void DoClose()
|
||||||
|
{
|
||||||
|
wxSocketManager * const manager = wxSocketManager::Get();
|
||||||
|
if ( manager )
|
||||||
|
{
|
||||||
|
manager->Uninstall_Callback(this, wxSOCKET_INPUT);
|
||||||
|
manager->Uninstall_Callback(this, wxSOCKET_OUTPUT);
|
||||||
|
}
|
||||||
|
|
||||||
|
close(m_fd);
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void UnblockAndRegisterWithEventLoop()
|
||||||
|
{
|
||||||
|
int trueArg = 1;
|
||||||
|
ioctl(m_fd, FIONBIO, &trueArg);
|
||||||
|
|
||||||
|
EnableEvents();
|
||||||
|
}
|
||||||
|
|
||||||
// enable or disable notifications for socket input/output events but only
|
// enable or disable notifications for socket input/output events but only
|
||||||
// if m_use_events is true; do nothing otherwise
|
// if m_use_events is true; do nothing otherwise
|
||||||
void EnableEvents()
|
virtual void EnableEvents()
|
||||||
{
|
{
|
||||||
if ( m_use_events )
|
if ( m_use_events )
|
||||||
DoEnableEvents(true);
|
DoEnableEvents(true);
|
||||||
@@ -67,38 +78,36 @@ private:
|
|||||||
//
|
//
|
||||||
// notice that these functions also update m_detected: EnableEvent() clears
|
// notice that these functions also update m_detected: EnableEvent() clears
|
||||||
// the corresponding bit in it and DisableEvent() sets it
|
// the corresponding bit in it and DisableEvent() sets it
|
||||||
void EnableEvent(GSocketEvent event);
|
void EnableEvent(wxSocketNotify event);
|
||||||
void DisableEvent(GSocketEvent event);
|
void DisableEvent(wxSocketNotify event);
|
||||||
|
|
||||||
|
|
||||||
GSocketError Input_Timeout();
|
wxSocketError Input_Timeout();
|
||||||
GSocketError Output_Timeout();
|
wxSocketError Output_Timeout();
|
||||||
int Recv_Stream(char *buffer, int size);
|
int Recv_Stream(char *buffer, int size);
|
||||||
int Recv_Dgram(char *buffer, int size);
|
int Recv_Dgram(char *buffer, int size);
|
||||||
int Send_Stream(const char *buffer, int size);
|
int Send_Stream(const char *buffer, int size);
|
||||||
int Send_Dgram(const char *buffer, int size);
|
int Send_Dgram(const char *buffer, int size);
|
||||||
public:
|
|
||||||
/* DFE: We can't protect these data member until the GUI code is updated */
|
|
||||||
/* protected: */
|
|
||||||
wxGSocketIOHandler *m_handler;
|
|
||||||
|
|
||||||
|
protected:
|
||||||
// true if socket should fire events
|
// true if socket should fire events
|
||||||
bool m_use_events;
|
bool m_use_events;
|
||||||
|
|
||||||
// pointer for storing extra (usually GUI-specific) data
|
// descriptors for input and output event notification channels associated
|
||||||
void *m_gui_dependent;
|
// with the socket
|
||||||
|
int m_fds[2];
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// notify the associated wxSocket about a change in socket state and shut
|
// notify the associated wxSocket about a change in socket state and shut
|
||||||
// down the socket if the event is GSOCK_LOST
|
// down the socket if the event is wxSOCKET_LOST
|
||||||
void OnStateChange(GSocketEvent event);
|
void OnStateChange(wxSocketNotify event);
|
||||||
|
|
||||||
|
// give it access to our m_fds
|
||||||
|
friend class wxSocketFDBasedManager;
|
||||||
};
|
};
|
||||||
|
|
||||||
// A version of GSocketManager which uses FDs for socket IO
|
// A version of wxSocketManager which uses FDs for socket IO
|
||||||
//
|
class wxSocketFDBasedManager : public wxSocketManager
|
||||||
// This class uses GSocket::m_gui_dependent field to store the 2 (for input and
|
|
||||||
// output) FDs associated with the socket.
|
|
||||||
class GSocketFDBasedManager : public GSocketManager
|
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// no special initialization/cleanup needed when using FDs
|
// no special initialization/cleanup needed when using FDs
|
||||||
@@ -106,28 +115,9 @@ public:
|
|||||||
virtual void OnExit() { }
|
virtual void OnExit() { }
|
||||||
|
|
||||||
// allocate/free the storage we need
|
// allocate/free the storage we need
|
||||||
virtual bool Init_Socket(GSocket *socket)
|
virtual wxSocketImpl *CreateSocket(wxSocketBase& wxsocket)
|
||||||
{
|
{
|
||||||
socket->m_gui_dependent = malloc(sizeof(int)*2);
|
return new wxSocketImplUnix(wxsocket);
|
||||||
int * const fds = static_cast<int *>(socket->m_gui_dependent);
|
|
||||||
|
|
||||||
fds[0] = -1;
|
|
||||||
fds[1] = -1;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual void Close_Socket(GSocket *socket)
|
|
||||||
{
|
|
||||||
Uninstall_Callback(socket, GSOCK_INPUT);
|
|
||||||
Uninstall_Callback(socket, GSOCK_OUTPUT);
|
|
||||||
|
|
||||||
close(socket->m_fd);
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual void Destroy_Socket(GSocket *socket)
|
|
||||||
{
|
|
||||||
free(socket->m_gui_dependent);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
@@ -140,8 +130,8 @@ protected:
|
|||||||
FD_OUTPUT
|
FD_OUTPUT
|
||||||
};
|
};
|
||||||
|
|
||||||
// get the FD index corresponding to the given GSocketEvent
|
// get the FD index corresponding to the given wxSocketNotify
|
||||||
SocketDir GetDirForEvent(GSocket *socket, GSocketEvent event)
|
SocketDir GetDirForEvent(wxSocketImpl *socket, wxSocketNotify event)
|
||||||
{
|
{
|
||||||
switch ( event )
|
switch ( event )
|
||||||
{
|
{
|
||||||
@@ -149,34 +139,34 @@ protected:
|
|||||||
wxFAIL_MSG( "unexpected socket event" );
|
wxFAIL_MSG( "unexpected socket event" );
|
||||||
// fall through
|
// fall through
|
||||||
|
|
||||||
case GSOCK_LOST:
|
case wxSOCKET_LOST:
|
||||||
// fall through
|
// fall through
|
||||||
|
|
||||||
case GSOCK_INPUT:
|
case wxSOCKET_INPUT:
|
||||||
return FD_INPUT;
|
return FD_INPUT;
|
||||||
|
|
||||||
case GSOCK_OUTPUT:
|
case wxSOCKET_OUTPUT:
|
||||||
return FD_OUTPUT;
|
return FD_OUTPUT;
|
||||||
|
|
||||||
case GSOCK_CONNECTION:
|
case wxSOCKET_CONNECTION:
|
||||||
// FIXME: explain this?
|
// FIXME: explain this?
|
||||||
return socket->m_server ? FD_INPUT : FD_OUTPUT;
|
return socket->m_server ? FD_INPUT : FD_OUTPUT;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// access the FDs we store
|
// access the FDs we store
|
||||||
int& FD(GSocket *socket, SocketDir d)
|
int& FD(wxSocketImpl *socket, SocketDir d)
|
||||||
{
|
{
|
||||||
return static_cast<int *>(socket->m_gui_dependent)[d];
|
return static_cast<wxSocketImplUnix *>(socket)->m_fds[d];
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// Common base class for all ports using X11-like (and hence implemented in
|
// Common base class for all ports using X11-like (and hence implemented in
|
||||||
// X11, Motif and GTK) AddInput() and RemoveInput() functions
|
// X11, Motif and GTK) AddInput() and RemoveInput() functions
|
||||||
class GSocketInputBasedManager : public GSocketFDBasedManager
|
class wxSocketInputBasedManager : public wxSocketFDBasedManager
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual void Install_Callback(GSocket *socket, GSocketEvent event)
|
virtual void Install_Callback(wxSocketImpl *socket, wxSocketNotify event)
|
||||||
{
|
{
|
||||||
wxCHECK_RET( socket->m_fd != -1,
|
wxCHECK_RET( socket->m_fd != -1,
|
||||||
"shouldn't be called on invalid socket" );
|
"shouldn't be called on invalid socket" );
|
||||||
@@ -190,7 +180,7 @@ public:
|
|||||||
fd = AddInput(socket, d);
|
fd = AddInput(socket, d);
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void Uninstall_Callback(GSocket *socket, GSocketEvent event)
|
virtual void Uninstall_Callback(wxSocketImpl *socket, wxSocketNotify event)
|
||||||
{
|
{
|
||||||
const SocketDir d = GetDirForEvent(socket, event);
|
const SocketDir d = GetDirForEvent(socket, event);
|
||||||
|
|
||||||
@@ -205,7 +195,7 @@ public:
|
|||||||
private:
|
private:
|
||||||
// these functions map directly to XtAdd/RemoveInput() or
|
// these functions map directly to XtAdd/RemoveInput() or
|
||||||
// gdk_input_add/remove()
|
// gdk_input_add/remove()
|
||||||
virtual int AddInput(GSocket *socket, SocketDir d) = 0;
|
virtual int AddInput(wxSocketImpl *socket, SocketDir d) = 0;
|
||||||
virtual void RemoveInput(int fd) = 0;
|
virtual void RemoveInput(int fd) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -111,6 +111,8 @@ wxAppConsole *wxAppConsoleBase::ms_appInstance = NULL;
|
|||||||
|
|
||||||
wxAppInitializerFunction wxAppConsoleBase::ms_appInitFn = NULL;
|
wxAppInitializerFunction wxAppConsoleBase::ms_appInitFn = NULL;
|
||||||
|
|
||||||
|
wxSocketManager *wxAppTraitsBase::ms_manager = NULL;
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// wxEventLoopPtr
|
// wxEventLoopPtr
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
// Name: src/common/gsocketiohandler.cpp
|
// Name: src/common/gsocketiohandler.cpp
|
||||||
// Purpose: implementation of wxFDIOHandler for GSocket
|
// Purpose: implementation of wxFDIOHandler for wxSocket
|
||||||
// Author: Angel Vidal, Lukasz Michalski
|
// Author: Angel Vidal, Lukasz Michalski
|
||||||
// Created: 08.24.06
|
// Created: 08.24.06
|
||||||
// RCS-ID: $Id$
|
// RCS-ID: $Id$
|
||||||
@@ -31,19 +31,47 @@
|
|||||||
// ============================================================================
|
// ============================================================================
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// GSocketSelectManager
|
// wxSocketImplFDIO
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
class GSocketSelectManager : public GSocketFDBasedManager
|
class wxSocketImplFDIO : public wxSocketImplUnix
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual void Install_Callback(GSocket *socket, GSocketEvent event);
|
wxSocketImplFDIO(wxSocketBase& wxsocket)
|
||||||
virtual void Uninstall_Callback(GSocket *socket, GSocketEvent event);
|
: wxSocketImplUnix(wxsocket)
|
||||||
|
{
|
||||||
|
m_handler = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual ~wxSocketImplFDIO()
|
||||||
|
{
|
||||||
|
delete m_handler;
|
||||||
|
}
|
||||||
|
|
||||||
|
wxSocketIOHandler *m_handler;
|
||||||
};
|
};
|
||||||
|
|
||||||
void GSocketSelectManager::Install_Callback(GSocket *socket,
|
// ----------------------------------------------------------------------------
|
||||||
GSocketEvent event)
|
// wxSocketSelectManager
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class wxSocketSelectManager : public wxSocketFDBasedManager
|
||||||
{
|
{
|
||||||
|
public:
|
||||||
|
virtual wxSocketImpl *CreateSocket(wxSocketBase& wxsocket)
|
||||||
|
{
|
||||||
|
return new wxSocketImplFDIO(wxsocket);
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void Install_Callback(wxSocketImpl *socket, wxSocketNotify event);
|
||||||
|
virtual void Uninstall_Callback(wxSocketImpl *socket, wxSocketNotify event);
|
||||||
|
};
|
||||||
|
|
||||||
|
void wxSocketSelectManager::Install_Callback(wxSocketImpl *socket_,
|
||||||
|
wxSocketNotify event)
|
||||||
|
{
|
||||||
|
wxSocketImplFDIO * const socket = static_cast<wxSocketImplFDIO *>(socket_);
|
||||||
|
|
||||||
const int fd = socket->m_fd;
|
const int fd = socket->m_fd;
|
||||||
|
|
||||||
if ( fd == -1 )
|
if ( fd == -1 )
|
||||||
@@ -55,7 +83,7 @@ void GSocketSelectManager::Install_Callback(GSocket *socket,
|
|||||||
if ( !dispatcher )
|
if ( !dispatcher )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
wxGSocketIOHandler *& handler = socket->m_handler;
|
wxSocketIOHandler *& handler = socket->m_handler;
|
||||||
|
|
||||||
// we should register the new handlers but modify the existing ones in place
|
// we should register the new handlers but modify the existing ones in place
|
||||||
bool registerHandler;
|
bool registerHandler;
|
||||||
@@ -66,7 +94,7 @@ void GSocketSelectManager::Install_Callback(GSocket *socket,
|
|||||||
else // no existing handler
|
else // no existing handler
|
||||||
{
|
{
|
||||||
registerHandler = true;
|
registerHandler = true;
|
||||||
handler = new wxGSocketIOHandler(socket);
|
handler = new wxSocketIOHandler(socket);
|
||||||
}
|
}
|
||||||
|
|
||||||
FD(socket, d) = fd;
|
FD(socket, d) = fd;
|
||||||
@@ -85,9 +113,11 @@ void GSocketSelectManager::Install_Callback(GSocket *socket,
|
|||||||
dispatcher->ModifyFD(fd, handler, handler->GetFlags());
|
dispatcher->ModifyFD(fd, handler, handler->GetFlags());
|
||||||
}
|
}
|
||||||
|
|
||||||
void GSocketSelectManager::Uninstall_Callback(GSocket *socket,
|
void wxSocketSelectManager::Uninstall_Callback(wxSocketImpl *socket_,
|
||||||
GSocketEvent event)
|
wxSocketNotify event)
|
||||||
{
|
{
|
||||||
|
wxSocketImplFDIO * const socket = static_cast<wxSocketImplFDIO *>(socket_);
|
||||||
|
|
||||||
const SocketDir d = GetDirForEvent(socket, event);
|
const SocketDir d = GetDirForEvent(socket, event);
|
||||||
|
|
||||||
const int fd = FD(socket, d);
|
const int fd = FD(socket, d);
|
||||||
@@ -103,7 +133,7 @@ void GSocketSelectManager::Uninstall_Callback(GSocket *socket,
|
|||||||
if ( !dispatcher )
|
if ( !dispatcher )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
wxGSocketIOHandler *& handler = socket->m_handler;
|
wxSocketIOHandler *& handler = socket->m_handler;
|
||||||
if ( handler )
|
if ( handler )
|
||||||
{
|
{
|
||||||
handler->RemoveFlag(flag);
|
handler->RemoveFlag(flag);
|
||||||
@@ -125,9 +155,9 @@ void GSocketSelectManager::Uninstall_Callback(GSocket *socket,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
GSocketManager *wxAppTraits::GetSocketManager()
|
wxSocketManager *wxAppTraits::GetSocketManager()
|
||||||
{
|
{
|
||||||
static GSocketSelectManager s_manager;
|
static wxSocketSelectManager s_manager;
|
||||||
|
|
||||||
return &s_manager;
|
return &s_manager;
|
||||||
}
|
}
|
||||||
|
@@ -145,12 +145,12 @@ bool wxIPV4address::Hostname(const wxString& name)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
m_origHostname = name;
|
m_origHostname = name;
|
||||||
return (GAddress_INET_SetHostName(m_address, name.mb_str()) == GSOCK_NOERROR);
|
return (GAddress_INET_SetHostName(m_address, name.mb_str()) == wxSOCKET_NOERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxIPV4address::Hostname(unsigned long addr)
|
bool wxIPV4address::Hostname(unsigned long addr)
|
||||||
{
|
{
|
||||||
bool rv = (GAddress_INET_SetHostAddress(m_address, addr) == GSOCK_NOERROR);
|
bool rv = (GAddress_INET_SetHostAddress(m_address, addr) == wxSOCKET_NOERROR);
|
||||||
if (rv)
|
if (rv)
|
||||||
m_origHostname = Hostname();
|
m_origHostname = Hostname();
|
||||||
else
|
else
|
||||||
@@ -160,17 +160,17 @@ bool wxIPV4address::Hostname(unsigned long addr)
|
|||||||
|
|
||||||
bool wxIPV4address::Service(const wxString& name)
|
bool wxIPV4address::Service(const wxString& name)
|
||||||
{
|
{
|
||||||
return (GAddress_INET_SetPortName(m_address, name.mb_str(), "tcp") == GSOCK_NOERROR);
|
return (GAddress_INET_SetPortName(m_address, name.mb_str(), "tcp") == wxSOCKET_NOERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxIPV4address::Service(unsigned short port)
|
bool wxIPV4address::Service(unsigned short port)
|
||||||
{
|
{
|
||||||
return (GAddress_INET_SetPort(m_address, port) == GSOCK_NOERROR);
|
return (GAddress_INET_SetPort(m_address, port) == wxSOCKET_NOERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxIPV4address::LocalHost()
|
bool wxIPV4address::LocalHost()
|
||||||
{
|
{
|
||||||
return (GAddress_INET_SetHostName(m_address, "localhost") == GSOCK_NOERROR);
|
return (GAddress_INET_SetHostName(m_address, "localhost") == wxSOCKET_NOERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxIPV4address::IsLocalHost() const
|
bool wxIPV4address::IsLocalHost() const
|
||||||
@@ -180,12 +180,12 @@ bool wxIPV4address::IsLocalHost() const
|
|||||||
|
|
||||||
bool wxIPV4address::BroadcastAddress()
|
bool wxIPV4address::BroadcastAddress()
|
||||||
{
|
{
|
||||||
return (GAddress_INET_SetBroadcastAddress(m_address) == GSOCK_NOERROR);
|
return (GAddress_INET_SetBroadcastAddress(m_address) == wxSOCKET_NOERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxIPV4address::AnyAddress()
|
bool wxIPV4address::AnyAddress()
|
||||||
{
|
{
|
||||||
return (GAddress_INET_SetAnyAddress(m_address) == GSOCK_NOERROR);
|
return (GAddress_INET_SetAnyAddress(m_address) == wxSOCKET_NOERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
wxString wxIPV4address::Hostname() const
|
wxString wxIPV4address::Hostname() const
|
||||||
@@ -253,7 +253,7 @@ bool wxIPV6address::Hostname(const wxString& name)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
m_origHostname = name;
|
m_origHostname = name;
|
||||||
return (GAddress_INET6_SetHostName(m_address, name.mb_str()) == GSOCK_NOERROR);
|
return (GAddress_INET6_SetHostName(m_address, name.mb_str()) == wxSOCKET_NOERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxIPV6address::Hostname(unsigned char addr[16])
|
bool wxIPV6address::Hostname(unsigned char addr[16])
|
||||||
@@ -273,17 +273,17 @@ bool wxIPV6address::Hostname(unsigned char addr[16])
|
|||||||
|
|
||||||
bool wxIPV6address::Service(const wxString& name)
|
bool wxIPV6address::Service(const wxString& name)
|
||||||
{
|
{
|
||||||
return (GAddress_INET6_SetPortName(m_address, name.mb_str(), "tcp") == GSOCK_NOERROR);
|
return (GAddress_INET6_SetPortName(m_address, name.mb_str(), "tcp") == wxSOCKET_NOERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxIPV6address::Service(unsigned short port)
|
bool wxIPV6address::Service(unsigned short port)
|
||||||
{
|
{
|
||||||
return (GAddress_INET6_SetPort(m_address, port) == GSOCK_NOERROR);
|
return (GAddress_INET6_SetPort(m_address, port) == wxSOCKET_NOERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxIPV6address::LocalHost()
|
bool wxIPV6address::LocalHost()
|
||||||
{
|
{
|
||||||
return (GAddress_INET6_SetHostName(m_address, "localhost") == GSOCK_NOERROR);
|
return (GAddress_INET6_SetHostName(m_address, "localhost") == wxSOCKET_NOERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxIPV6address::IsLocalHost() const
|
bool wxIPV6address::IsLocalHost() const
|
||||||
@@ -306,7 +306,7 @@ bool wxIPV6address::BroadcastAddress()
|
|||||||
|
|
||||||
bool wxIPV6address::AnyAddress()
|
bool wxIPV6address::AnyAddress()
|
||||||
{
|
{
|
||||||
return (GAddress_INET6_SetAnyAddress(m_address) == GSOCK_NOERROR);
|
return (GAddress_INET6_SetAnyAddress(m_address) == wxSOCKET_NOERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
wxString wxIPV6address::IPAddress() const
|
wxString wxIPV6address::IPAddress() const
|
||||||
@@ -356,7 +356,7 @@ wxString wxIPV6address::Hostname() const
|
|||||||
|
|
||||||
if ( GAddress_INET6_GetHostName(m_address,
|
if ( GAddress_INET6_GetHostName(m_address,
|
||||||
hostname,
|
hostname,
|
||||||
WXSIZEOF(hostname)) != GSOCK_NOERROR )
|
WXSIZEOF(hostname)) != wxSOCKET_NOERROR )
|
||||||
return wxEmptyString;
|
return wxEmptyString;
|
||||||
|
|
||||||
return wxString::FromAscii(hostname);
|
return wxString::FromAscii(hostname);
|
||||||
|
File diff suppressed because it is too large
Load Diff
@@ -24,29 +24,29 @@
|
|||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
static
|
static
|
||||||
void _GSocket_GDK_Input(gpointer data,
|
void wxSocket_GDK_Input(gpointer data,
|
||||||
gint WXUNUSED(source),
|
gint WXUNUSED(source),
|
||||||
GdkInputCondition condition)
|
GdkInputCondition condition)
|
||||||
{
|
{
|
||||||
GSocket *socket = (GSocket *)data;
|
wxSocketImpl * const socket = static_cast<wxSocketImpl *>(data);
|
||||||
|
|
||||||
if (condition & GDK_INPUT_READ)
|
if ( condition & GDK_INPUT_READ )
|
||||||
socket->Detected_Read();
|
socket->Detected_Read();
|
||||||
if (condition & GDK_INPUT_WRITE)
|
if ( condition & GDK_INPUT_WRITE )
|
||||||
socket->Detected_Write();
|
socket->Detected_Write();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class GTKSocketManager : public GSocketInputBasedManager
|
class GTKSocketManager : public wxSocketInputBasedManager
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual int AddInput(GSocket *socket, SocketDir d)
|
virtual int AddInput(wxSocketImpl *socket, SocketDir d)
|
||||||
{
|
{
|
||||||
return gdk_input_add
|
return gdk_input_add
|
||||||
(
|
(
|
||||||
socket->m_fd,
|
socket->m_fd,
|
||||||
d == FD_OUTPUT ? GDK_INPUT_WRITE : GDK_INPUT_READ,
|
d == FD_OUTPUT ? GDK_INPUT_WRITE : GDK_INPUT_READ,
|
||||||
_GSocket_GDK_Input,
|
wxSocket_GDK_Input,
|
||||||
socket
|
socket
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -57,7 +57,7 @@ public:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
GSocketManager *wxGUIAppTraits::GetSocketManager()
|
wxSocketManager *wxGUIAppTraits::GetSocketManager()
|
||||||
{
|
{
|
||||||
static GTKSocketManager s_manager;
|
static GTKSocketManager s_manager;
|
||||||
return &s_manager;
|
return &s_manager;
|
||||||
|
@@ -24,29 +24,29 @@
|
|||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
static
|
static
|
||||||
void _GSocket_GDK_Input(gpointer data,
|
void wxSocket_GDK_Input(gpointer data,
|
||||||
gint WXUNUSED(source),
|
gint WXUNUSED(source),
|
||||||
GdkInputCondition condition)
|
GdkInputCondition condition)
|
||||||
{
|
{
|
||||||
GSocket *socket = (GSocket *)data;
|
wxSocketImpl const *socket = static_cast<wxSocketImpl *>(data);
|
||||||
|
|
||||||
if (condition & GDK_INPUT_READ)
|
if ( condition & GDK_INPUT_READ )
|
||||||
socket->Detected_Read();
|
socket->Detected_Read();
|
||||||
if (condition & GDK_INPUT_WRITE)
|
if ( condition & GDK_INPUT_WRITE )
|
||||||
socket->Detected_Write();
|
socket->Detected_Write();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class GTKSocketManager : public GSocketInputBasedManager
|
class GTKSocketManager : public wxSocketInputBasedManager
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual int AddInput(GSocket *socket, SocketDir d)
|
virtual int AddInput(wxSocketImpl *socket, SocketDir d)
|
||||||
{
|
{
|
||||||
return gdk_input_add
|
return gdk_input_add
|
||||||
(
|
(
|
||||||
socket->m_fd,
|
socket->m_fd,
|
||||||
d == FD_OUTPUT ? GDK_INPUT_WRITE : GDK_INPUT_READ,
|
d == FD_OUTPUT ? GDK_INPUT_WRITE : GDK_INPUT_READ,
|
||||||
_GSocket_GDK_Input,
|
wxSocket_GDK_Input,
|
||||||
socket
|
socket
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -57,7 +57,7 @@ public:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
GSocketManager *wxGUIAppTraits::GetSocketManager()
|
wxSocketManager *wxGUIAppTraits::GetSocketManager()
|
||||||
{
|
{
|
||||||
static GTKSocketManager s_manager;
|
static GTKSocketManager s_manager;
|
||||||
return &s_manager;
|
return &s_manager;
|
||||||
|
@@ -20,28 +20,28 @@
|
|||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
|
||||||
static void _GSocket_Motif_Input(XtPointer data, int *WXUNUSED(fid),
|
static void wxSocket_Motif_Input(XtPointer data, int *WXUNUSED(fid),
|
||||||
XtInputId *WXUNUSED(id))
|
XtInputId *WXUNUSED(id))
|
||||||
{
|
{
|
||||||
GSocket *socket = (GSocket *)data;
|
wxSocketImpl * const socket = static_cast<wxSocketImpl *>(data);
|
||||||
|
|
||||||
socket->Detected_Read();
|
socket->Detected_Read();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void _GSocket_Motif_Output(XtPointer data, int *WXUNUSED(fid),
|
static void wxSocket_Motif_Output(XtPointer data, int *WXUNUSED(fid),
|
||||||
XtInputId *WXUNUSED(id))
|
XtInputId *WXUNUSED(id))
|
||||||
{
|
{
|
||||||
GSocket *socket = (GSocket *)data;
|
wxSocketImpl * const socket = static_cast<wxSocketImpl *>(data);
|
||||||
|
|
||||||
socket->Detected_Write();
|
socket->Detected_Write();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class MotifSocketManager : public GSocketInputBasedManager
|
class MotifSocketManager : public wxSocketInputBasedManager
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual int AddInput(GSocket *socket, SocketDir d)
|
virtual int AddInput(wxSocketImpl *socket, SocketDir d)
|
||||||
{
|
{
|
||||||
return XtAppAddInput
|
return XtAppAddInput
|
||||||
(
|
(
|
||||||
@@ -49,8 +49,8 @@ public:
|
|||||||
socket->m_fd,
|
socket->m_fd,
|
||||||
(XtPointer)(d == FD_OUTPUT ? XtInputWriteMask
|
(XtPointer)(d == FD_OUTPUT ? XtInputWriteMask
|
||||||
: XtInputReadMask),
|
: XtInputReadMask),
|
||||||
d == FD_OUTPUT ? _GSocket_Motif_Output
|
d == FD_OUTPUT ? wxSocket_Motif_Output
|
||||||
: _GSocket_Motif_Input,
|
: wxSocket_Motif_Input,
|
||||||
socket
|
socket
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -61,7 +61,7 @@ public:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
GSocketManager *wxGUIAppTraits::GetSocketManager()
|
wxSocketManager *wxGUIAppTraits::GetSocketManager()
|
||||||
{
|
{
|
||||||
static MotifSocketManager s_manager;
|
static MotifSocketManager s_manager;
|
||||||
return &s_manager;
|
return &s_manager;
|
||||||
|
@@ -42,8 +42,6 @@
|
|||||||
// wxAppTraits implementation
|
// wxAppTraits implementation
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
|
|
||||||
GSocketManager *wxAppTraits::ms_manager = NULL;
|
|
||||||
|
|
||||||
WXDWORD wxAppTraits::DoSimpleWaitForThread(WXHANDLE hThread)
|
WXDWORD wxAppTraits::DoSimpleWaitForThread(WXHANDLE hThread)
|
||||||
{
|
{
|
||||||
return ::WaitForSingleObject((HANDLE)hThread, INFINITE);
|
return ::WaitForSingleObject((HANDLE)hThread, INFINITE);
|
||||||
|
File diff suppressed because it is too large
Load Diff
@@ -1,13 +1,15 @@
|
|||||||
/* -------------------------------------------------------------------------
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
* Project: GSocket (Generic Socket)
|
// Name: src/msw/gsockmsw.cpp
|
||||||
* Name: src/msw/gsockmsw.cpp
|
// Purpose: MSW-specific socket support
|
||||||
* Copyright: (c) Guilhem Lavaux
|
// Authors: Guilhem Lavaux, Guillermo Rodriguez Garcia
|
||||||
* Licence: wxWindows Licence
|
// Created: April 1997
|
||||||
* Author: Guillermo Rodriguez Garcia <guille@iies.es>
|
// Copyright: (C) 1999-1997, Guilhem Lavaux
|
||||||
* Purpose: GSocket GUI-specific MSW code
|
// (C) 1999-2000, Guillermo Rodriguez Garcia
|
||||||
* CVSID: $Id$
|
// (C) 2008 Vadim Zeitlin
|
||||||
* -------------------------------------------------------------------------
|
// RCS_ID: $Id$
|
||||||
*/
|
// License: wxWindows licence
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
// For compilers that support precompilation, includes "wx.h".
|
// For compilers that support precompilation, includes "wx.h".
|
||||||
#include "wx/wxprec.h"
|
#include "wx/wxprec.h"
|
||||||
@@ -64,13 +66,13 @@ WX_DECLARE_HASH_MAP(int,bool,wxIntegerHash,wxIntegerEqual,SocketHash);
|
|||||||
# pragma warning(default:4115) /* named type definition in parentheses */
|
# pragma warning(default:4115) /* named type definition in parentheses */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define CLASSNAME TEXT("_GSocket_Internal_Window_Class")
|
#define CLASSNAME TEXT("_wxSocket_Internal_Window_Class")
|
||||||
|
|
||||||
/* implemented in utils.cpp */
|
/* implemented in utils.cpp */
|
||||||
extern "C" WXDLLIMPEXP_BASE HWND
|
extern "C" WXDLLIMPEXP_BASE HWND
|
||||||
wxCreateHiddenWindow(LPCTSTR *pclassname, LPCTSTR classname, WNDPROC wndproc);
|
wxCreateHiddenWindow(LPCTSTR *pclassname, LPCTSTR classname, WNDPROC wndproc);
|
||||||
|
|
||||||
/* Maximum number of different GSocket objects at a given time.
|
/* Maximum number of different wxSocket objects at a given time.
|
||||||
* This value can be modified at will, but it CANNOT be greater
|
* This value can be modified at will, but it CANNOT be greater
|
||||||
* than (0x7FFF - WM_USER + 1)
|
* than (0x7FFF - WM_USER + 1)
|
||||||
*/
|
*/
|
||||||
@@ -95,13 +97,13 @@ typedef int (PASCAL *WSAWaitForMultipleEventsFunc)(long,HANDLE,BOOL,long,BOOL);
|
|||||||
typedef int (PASCAL *WSAEnumNetworkEventsFunc)(SOCKET,HANDLE,LPWSANETWORKEVENTS);
|
typedef int (PASCAL *WSAEnumNetworkEventsFunc)(SOCKET,HANDLE,LPWSANETWORKEVENTS);
|
||||||
#endif //__WXWINCE__
|
#endif //__WXWINCE__
|
||||||
|
|
||||||
LRESULT CALLBACK _GSocket_Internal_WinProc(HWND, UINT, WPARAM, LPARAM);
|
LRESULT CALLBACK wxSocket_Internal_WinProc(HWND, UINT, WPARAM, LPARAM);
|
||||||
|
|
||||||
/* Global variables */
|
/* Global variables */
|
||||||
|
|
||||||
static HWND hWin;
|
static HWND hWin;
|
||||||
static CRITICAL_SECTION critical;
|
static CRITICAL_SECTION critical;
|
||||||
static GSocket* socketList[MAXSOCKETS];
|
static wxSocketImplMSW *socketList[MAXSOCKETS];
|
||||||
static int firstAvailable;
|
static int firstAvailable;
|
||||||
|
|
||||||
#ifndef __WXWINCE__
|
#ifndef __WXWINCE__
|
||||||
@@ -175,32 +177,32 @@ DWORD WINAPI SocketThread(LPVOID data)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// MSW implementation of GSocketManager
|
// MSW implementation of wxSocketManager
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
class GSocketMSWManager : public GSocketManager
|
class wxSocketMSWManager : public wxSocketManager
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual bool OnInit();
|
virtual bool OnInit();
|
||||||
virtual void OnExit();
|
virtual void OnExit();
|
||||||
|
|
||||||
virtual bool Init_Socket(GSocket *socket);
|
virtual wxSocketImpl *CreateSocket(wxSocketBase& wxsocket)
|
||||||
virtual void Close_Socket(GSocket *socket);
|
{
|
||||||
virtual void Destroy_Socket(GSocket *socket);
|
return new wxSocketImplMSW(wxsocket);
|
||||||
|
}
|
||||||
virtual void Install_Callback(GSocket *socket, GSocketEvent event);
|
virtual void Install_Callback(wxSocketImpl *socket, wxSocketNotify event);
|
||||||
virtual void Uninstall_Callback(GSocket *socket, GSocketEvent event);
|
virtual void Uninstall_Callback(wxSocketImpl *socket, wxSocketNotify event);
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Global initializers */
|
/* Global initializers */
|
||||||
|
|
||||||
bool GSocketMSWManager::OnInit()
|
bool wxSocketMSWManager::OnInit()
|
||||||
{
|
{
|
||||||
static LPCTSTR pclassname = NULL;
|
static LPCTSTR pclassname = NULL;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
/* Create internal window for event notifications */
|
/* Create internal window for event notifications */
|
||||||
hWin = wxCreateHiddenWindow(&pclassname, CLASSNAME, _GSocket_Internal_WinProc);
|
hWin = wxCreateHiddenWindow(&pclassname, CLASSNAME, wxSocket_Internal_WinProc);
|
||||||
if (!hWin)
|
if (!hWin)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
@@ -253,10 +255,12 @@ bool GSocketMSWManager::OnInit()
|
|||||||
currSocket = 0;
|
currSocket = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return true;
|
// finally initialize WinSock
|
||||||
|
WSADATA wsaData;
|
||||||
|
return WSAStartup((1 << 8) | 1, &wsaData) == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void GSocketMSWManager::OnExit()
|
void wxSocketMSWManager::OnExit()
|
||||||
{
|
{
|
||||||
#ifdef __WXWINCE__
|
#ifdef __WXWINCE__
|
||||||
/* Delete the threads here */
|
/* Delete the threads here */
|
||||||
@@ -276,18 +280,19 @@ void GSocketMSWManager::OnExit()
|
|||||||
|
|
||||||
/* Delete critical section */
|
/* Delete critical section */
|
||||||
DeleteCriticalSection(&critical);
|
DeleteCriticalSection(&critical);
|
||||||
|
|
||||||
|
WSACleanup();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Per-socket GUI initialization / cleanup */
|
/* Per-socket GUI initialization / cleanup */
|
||||||
|
|
||||||
bool GSocketMSWManager::Init_Socket(GSocket *socket)
|
wxSocketImplMSW::wxSocketImplMSW(wxSocketBase& wxsocket)
|
||||||
|
: wxSocketImpl(wxsocket)
|
||||||
{
|
{
|
||||||
int i;
|
|
||||||
|
|
||||||
/* Allocate a new message number for this socket */
|
/* Allocate a new message number for this socket */
|
||||||
EnterCriticalSection(&critical);
|
EnterCriticalSection(&critical);
|
||||||
|
|
||||||
i = firstAvailable;
|
int i = firstAvailable;
|
||||||
while (socketList[i] != NULL)
|
while (socketList[i] != NULL)
|
||||||
{
|
{
|
||||||
i = (i + 1) % MAXSOCKETS;
|
i = (i + 1) % MAXSOCKETS;
|
||||||
@@ -295,41 +300,32 @@ bool GSocketMSWManager::Init_Socket(GSocket *socket)
|
|||||||
if (i == firstAvailable) /* abort! */
|
if (i == firstAvailable) /* abort! */
|
||||||
{
|
{
|
||||||
LeaveCriticalSection(&critical);
|
LeaveCriticalSection(&critical);
|
||||||
return false;
|
m_msgnumber = 0; // invalid
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
socketList[i] = socket;
|
socketList[i] = this;
|
||||||
firstAvailable = (i + 1) % MAXSOCKETS;
|
firstAvailable = (i + 1) % MAXSOCKETS;
|
||||||
socket->m_msgnumber = (i + WM_USER);
|
m_msgnumber = (i + WM_USER);
|
||||||
|
|
||||||
LeaveCriticalSection(&critical);
|
LeaveCriticalSection(&critical);
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void GSocketMSWManager::Close_Socket(GSocket *socket)
|
wxSocketImplMSW::~wxSocketImplMSW()
|
||||||
{
|
|
||||||
Uninstall_Callback(socket, GSOCK_MAX_EVENT /* unused anyhow */);
|
|
||||||
|
|
||||||
closesocket(socket->m_fd);
|
|
||||||
}
|
|
||||||
|
|
||||||
void GSocketMSWManager::Destroy_Socket(GSocket *socket)
|
|
||||||
{
|
{
|
||||||
/* Remove the socket from the list */
|
/* Remove the socket from the list */
|
||||||
EnterCriticalSection(&critical);
|
EnterCriticalSection(&critical);
|
||||||
|
|
||||||
const int msgnum = socket->m_msgnumber;
|
if ( m_msgnumber )
|
||||||
if ( msgnum )
|
|
||||||
{
|
{
|
||||||
// we need to remove any pending messages for this socket to avoid having
|
// we need to remove any pending messages for this socket to avoid having
|
||||||
// them sent to a new socket which could reuse the same message number as
|
// them sent to a new socket which could reuse the same message number as
|
||||||
// soon as we destroy this one
|
// soon as we destroy this one
|
||||||
MSG msg;
|
MSG msg;
|
||||||
while ( ::PeekMessage(&msg, hWin, msgnum, msgnum, PM_REMOVE) )
|
while ( ::PeekMessage(&msg, hWin, m_msgnumber, m_msgnumber, PM_REMOVE) )
|
||||||
;
|
;
|
||||||
|
|
||||||
socketList[msgnum - WM_USER] = NULL;
|
socketList[m_msgnumber - WM_USER] = NULL;
|
||||||
}
|
}
|
||||||
//else: the socket has never been created successfully
|
//else: the socket has never been created successfully
|
||||||
|
|
||||||
@@ -338,19 +334,19 @@ void GSocketMSWManager::Destroy_Socket(GSocket *socket)
|
|||||||
|
|
||||||
/* Windows proc for asynchronous event handling */
|
/* Windows proc for asynchronous event handling */
|
||||||
|
|
||||||
LRESULT CALLBACK _GSocket_Internal_WinProc(HWND hWnd,
|
LRESULT CALLBACK wxSocket_Internal_WinProc(HWND hWnd,
|
||||||
UINT uMsg,
|
UINT uMsg,
|
||||||
WPARAM wParam,
|
WPARAM wParam,
|
||||||
LPARAM lParam)
|
LPARAM lParam)
|
||||||
{
|
{
|
||||||
GSocket *socket;
|
wxSocketImplMSW *socket;
|
||||||
GSocketEvent event;
|
wxSocketNotify event;
|
||||||
|
|
||||||
if (uMsg >= WM_USER && uMsg <= (WM_USER + MAXSOCKETS - 1))
|
if (uMsg >= WM_USER && uMsg <= (WM_USER + MAXSOCKETS - 1))
|
||||||
{
|
{
|
||||||
EnterCriticalSection(&critical);
|
EnterCriticalSection(&critical);
|
||||||
socket = socketList[(uMsg - WM_USER)];
|
socket = socketList[(uMsg - WM_USER)];
|
||||||
event = (GSocketEvent) -1;
|
event = (wxSocketNotify) -1;
|
||||||
|
|
||||||
/* Check that the socket still exists (it has not been
|
/* Check that the socket still exists (it has not been
|
||||||
* destroyed) and for safety, check that the m_fd field
|
* destroyed) and for safety, check that the m_fd field
|
||||||
@@ -360,24 +356,24 @@ LRESULT CALLBACK _GSocket_Internal_WinProc(HWND hWnd,
|
|||||||
{
|
{
|
||||||
switch WSAGETSELECTEVENT(lParam)
|
switch WSAGETSELECTEVENT(lParam)
|
||||||
{
|
{
|
||||||
case FD_READ: event = GSOCK_INPUT; break;
|
case FD_READ: event = wxSOCKET_INPUT; break;
|
||||||
case FD_WRITE: event = GSOCK_OUTPUT; break;
|
case FD_WRITE: event = wxSOCKET_OUTPUT; break;
|
||||||
case FD_ACCEPT: event = GSOCK_CONNECTION; break;
|
case FD_ACCEPT: event = wxSOCKET_CONNECTION; break;
|
||||||
case FD_CONNECT:
|
case FD_CONNECT:
|
||||||
{
|
{
|
||||||
if (WSAGETSELECTERROR(lParam) != 0)
|
if (WSAGETSELECTERROR(lParam) != 0)
|
||||||
event = GSOCK_LOST;
|
event = wxSOCKET_LOST;
|
||||||
else
|
else
|
||||||
event = GSOCK_CONNECTION;
|
event = wxSOCKET_CONNECTION;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case FD_CLOSE: event = GSOCK_LOST; break;
|
case FD_CLOSE: event = wxSOCKET_LOST; break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (event != -1)
|
if (event != -1)
|
||||||
{
|
{
|
||||||
if (event == GSOCK_LOST)
|
if (event == wxSOCKET_LOST)
|
||||||
socket->m_detected = GSOCK_LOST_FLAG;
|
socket->m_detected = wxSOCKET_LOST_FLAG;
|
||||||
else
|
else
|
||||||
socket->m_detected |= (1 << event);
|
socket->m_detected |= (1 << event);
|
||||||
}
|
}
|
||||||
@@ -399,9 +395,11 @@ LRESULT CALLBACK _GSocket_Internal_WinProc(HWND hWnd,
|
|||||||
* events for internal processing, but we will only notify users
|
* events for internal processing, but we will only notify users
|
||||||
* when an appropriate callback function has been installed.
|
* when an appropriate callback function has been installed.
|
||||||
*/
|
*/
|
||||||
void GSocketMSWManager::Install_Callback(GSocket *socket,
|
void wxSocketMSWManager::Install_Callback(wxSocketImpl *socket_,
|
||||||
GSocketEvent WXUNUSED(event))
|
wxSocketNotify WXUNUSED(event))
|
||||||
{
|
{
|
||||||
|
wxSocketImplMSW * const socket = static_cast<wxSocketImplMSW *>(socket_);
|
||||||
|
|
||||||
if (socket->m_fd != INVALID_SOCKET)
|
if (socket->m_fd != INVALID_SOCKET)
|
||||||
{
|
{
|
||||||
/* We could probably just subscribe to all events regardless
|
/* We could probably just subscribe to all events regardless
|
||||||
@@ -431,9 +429,11 @@ void GSocketMSWManager::Install_Callback(GSocket *socket,
|
|||||||
/*
|
/*
|
||||||
* Disable event notifications (used when shutting down the socket)
|
* Disable event notifications (used when shutting down the socket)
|
||||||
*/
|
*/
|
||||||
void GSocketMSWManager::Uninstall_Callback(GSocket *socket,
|
void wxSocketMSWManager::Uninstall_Callback(wxSocketImpl *socket_,
|
||||||
GSocketEvent WXUNUSED(event))
|
wxSocketNotify WXUNUSED(event))
|
||||||
{
|
{
|
||||||
|
wxSocketImplMSW * const socket = static_cast<wxSocketImplMSW *>(socket_);
|
||||||
|
|
||||||
if (socket->m_fd != INVALID_SOCKET)
|
if (socket->m_fd != INVALID_SOCKET)
|
||||||
{
|
{
|
||||||
#ifndef __WXWINCE__
|
#ifndef __WXWINCE__
|
||||||
@@ -445,15 +445,15 @@ void GSocketMSWManager::Uninstall_Callback(GSocket *socket,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// set the wxBase variable to point to our GSocketManager implementation
|
// set the wxBase variable to point to our wxSocketManager implementation
|
||||||
//
|
//
|
||||||
// see comments in wx/msw/apptbase.h for the explanation of why do we do it
|
// see comments in wx/apptrait.h for the explanation of why do we do it
|
||||||
// like this
|
// like this
|
||||||
static struct ManagerSetter
|
static struct ManagerSetter
|
||||||
{
|
{
|
||||||
ManagerSetter()
|
ManagerSetter()
|
||||||
{
|
{
|
||||||
static GSocketMSWManager s_manager;
|
static wxSocketMSWManager s_manager;
|
||||||
wxAppTraits::SetDefaultSocketManager(&s_manager);
|
wxAppTraits::SetDefaultSocketManager(&s_manager);
|
||||||
}
|
}
|
||||||
} gs_managerSetter;
|
} gs_managerSetter;
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
/* -------------------------------------------------------------------------
|
/* -------------------------------------------------------------------------
|
||||||
* Project: GSocket (Generic Socket) for WX
|
* Project: wxSocketImpl (Generic Socket) for WX
|
||||||
* Name: gsockpm.c
|
* Name: gsockpm.c
|
||||||
* Purpose: GSocket: PM part
|
* Purpose: wxSocketImpl: PM part
|
||||||
* Licence: The wxWindows licence
|
* Licence: The wxWindows licence
|
||||||
* CVSID: $Id$
|
* CVSID: $Id$
|
||||||
* ------------------------------------------------------------------------- */
|
* ------------------------------------------------------------------------- */
|
||||||
@@ -19,30 +19,32 @@
|
|||||||
#define wxSockReadMask 0x01
|
#define wxSockReadMask 0x01
|
||||||
#define wxSockWriteMask 0x02
|
#define wxSockWriteMask 0x02
|
||||||
|
|
||||||
static void _GSocket_PM_Input(void *data)
|
static void wxSocket_PM_Input(void *data)
|
||||||
{
|
{
|
||||||
GSocket *socket = (GSocket *) data;
|
wxSocketImpl *socket = static_cast<wxSocketImpl *>(data);
|
||||||
|
|
||||||
socket->Detected_Read();
|
socket->Detected_Read();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void _GSocket_PM_Output(void *data)
|
static void wxSocket_PM_Output(void *data)
|
||||||
{
|
{
|
||||||
GSocket *socket = (GSocket *) data;
|
wxSocketImpl *socket = static_cast<wxSocketImpl *>(data);
|
||||||
|
|
||||||
socket->Detected_Write();
|
socket->Detected_Write();
|
||||||
}
|
}
|
||||||
|
|
||||||
class PMSocketManager : public GSocketInputBasedManager
|
class PMSocketManager : public wxSocketInputBasedManager
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual int AddInput(GSocket *socket, SocketDir d)
|
virtual int AddInput(wxSocketImpl *socket, SocketDir d)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (d == FD_OUTPUT)
|
if (d == FD_OUTPUT)
|
||||||
return wxTheApp->AddSocketHandler(socket->m_fd, wxSockWriteMask,
|
return wxTheApp->AddSocketHandler(socket->m_fd, wxSockWriteMask,
|
||||||
_GSocket_PM_Output, (void *)socket);
|
wxSocket_PM_Output, (void *)socket);
|
||||||
else
|
else
|
||||||
return wxTheApp->AddSocketHandler(socket->m_fd, wxSockReadMask,
|
return wxTheApp->AddSocketHandler(socket->m_fd, wxSockReadMask,
|
||||||
_GSocket_PM_Input, (void *)socket);
|
wxSocket_PM_Input, (void *)socket);
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void RemoveInput(int fd)
|
virtual void RemoveInput(int fd)
|
||||||
@@ -51,7 +53,7 @@ public:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
GSocketManager *wxGUIAppTraits::GetSocketManager()
|
wxSocketManager *wxGUIAppTraits::GetSocketManager()
|
||||||
{
|
{
|
||||||
static PMSocketManager s_manager;
|
static PMSocketManager s_manager;
|
||||||
return &s_manager;
|
return &s_manager;
|
||||||
|
@@ -1,16 +1,20 @@
|
|||||||
/* -------------------------------------------------------------------------
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
* Project: GSocket (Generic Socket) for WX
|
// Name: osx/core/gsockosx.cpp
|
||||||
* Name: src/osx/corefoundation/gsockosx.c
|
// Purpose: wxSocketImpl implementation for OS X
|
||||||
* Purpose: GSocket: Mac OS X mach-o part
|
// Authors: Brian Victor, Vadim Zeitlin
|
||||||
* CVSID: $Id$
|
// Created: February 2002
|
||||||
* Mac code by Brian Victor, February 2002. Email comments to bhv1@psu.edu
|
// RCS-ID: $Id$
|
||||||
* ------------------------------------------------------------------------- */
|
// Copyright: (c) 2002 Brian Victor
|
||||||
|
// (c) 2008 Vadim Zeitlin
|
||||||
|
// Licence: wxWindows licence
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#include "wx/wxprec.h"
|
#include "wx/wxprec.h"
|
||||||
|
|
||||||
#if wxUSE_SOCKETS
|
#if wxUSE_SOCKETS
|
||||||
|
|
||||||
#include "wx/private/gsocket.h"
|
#include "wx/private/gsocket.h"
|
||||||
|
#include "wx/unix/gsockunx.h"
|
||||||
#include "wx/apptrait.h"
|
#include "wx/apptrait.h"
|
||||||
|
|
||||||
#include <CoreFoundation/CoreFoundation.h>
|
#include <CoreFoundation/CoreFoundation.h>
|
||||||
@@ -27,32 +31,63 @@ namespace
|
|||||||
static CFRunLoopRef gs_mainRunLoop = NULL;
|
static CFRunLoopRef gs_mainRunLoop = NULL;
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// Mac-specific data associated with each socket by GSocketCFManager
|
// Mac-specific socket implementation
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
class MacGSocketData
|
class wxSocketImplMac : public wxSocketImplUnix
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// default ctor creates the object in uninitialized state, use Initialize()
|
wxSocketImplMac(wxSocketBase& wxsocket)
|
||||||
// later to make it usable
|
: wxSocketImplUnix(wxsocket)
|
||||||
MacGSocketData()
|
|
||||||
{
|
{
|
||||||
m_socket = NULL;
|
m_socket = NULL;
|
||||||
m_source = NULL;
|
m_source = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
// initialize the data associated with the given socket
|
virtual ~wxSocketImplMac()
|
||||||
bool Initialize(GSocket *socket)
|
|
||||||
{
|
{
|
||||||
wxASSERT_MSG( !IsInitialized(), "shouldn't be called twice" );
|
wxASSERT_MSG( !m_source && !m_socket, "forgot to call Close()?" );
|
||||||
|
}
|
||||||
|
|
||||||
|
// get the underlying socket: creates it on demand
|
||||||
|
CFSocketRef GetSocket() /* const */
|
||||||
|
{
|
||||||
|
if ( !m_socket )
|
||||||
|
Initialize();
|
||||||
|
|
||||||
|
return m_socket;
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
virtual void DoClose()
|
||||||
|
{
|
||||||
|
wxSocketManager * const manager = wxSocketManager::Get();
|
||||||
|
if ( manager )
|
||||||
|
{
|
||||||
|
manager->Uninstall_Callback(this, wxSOCKET_INPUT);
|
||||||
|
manager->Uninstall_Callback(this, wxSOCKET_OUTPUT);
|
||||||
|
}
|
||||||
|
|
||||||
|
// VZ: CFRunLoopRemoveSource() is probably unnecessary as
|
||||||
|
// CFSocketInvalidate() seems to do it internally from reading the
|
||||||
|
// docs, please remove it (and this comment) after testing
|
||||||
|
CFRunLoopRemoveSource(gs_mainRunLoop, m_source, kCFRunLoopCommonModes);
|
||||||
|
CFSocketInvalidate(m_socket);
|
||||||
|
|
||||||
|
CFRelease(m_source);
|
||||||
|
CFRelease(m_socket);
|
||||||
|
}
|
||||||
|
|
||||||
|
// initialize the data associated with the given socket
|
||||||
|
bool Initialize()
|
||||||
|
{
|
||||||
// we need a valid Unix socket to create a CFSocket
|
// we need a valid Unix socket to create a CFSocket
|
||||||
if ( socket->m_fd < 0 )
|
if ( m_fd < 0 )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
CFSocketContext cont;
|
CFSocketContext cont;
|
||||||
cont.version = 0; // this currently must be 0
|
cont.version = 0; // this currently must be 0
|
||||||
cont.info = socket; // pointer passed to our callback
|
cont.info = this; // pointer passed to our callback
|
||||||
cont.retain = NULL; // no need to retain/release/copy the
|
cont.retain = NULL; // no need to retain/release/copy the
|
||||||
cont.release = NULL; // socket pointer, so all callbacks
|
cont.release = NULL; // socket pointer, so all callbacks
|
||||||
cont.copyDescription = NULL; // can be left NULL
|
cont.copyDescription = NULL; // can be left NULL
|
||||||
@@ -60,7 +95,7 @@ public:
|
|||||||
m_socket = CFSocketCreateWithNative
|
m_socket = CFSocketCreateWithNative
|
||||||
(
|
(
|
||||||
NULL, // default allocator
|
NULL, // default allocator
|
||||||
socket->m_fd,
|
m_fd,
|
||||||
kCFSocketReadCallBack |
|
kCFSocketReadCallBack |
|
||||||
kCFSocketWriteCallBack |
|
kCFSocketWriteCallBack |
|
||||||
kCFSocketConnectCallBack,
|
kCFSocketConnectCallBack,
|
||||||
@@ -83,55 +118,13 @@ public:
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// close the socket if it was opened
|
|
||||||
void Close()
|
|
||||||
{
|
|
||||||
// VZ: CFRunLoopRemoveSource() is probably unnecessary as
|
|
||||||
// CFSocketInvalidate() seems to do it internally from reading the
|
|
||||||
// docs, please remove it (and this comment) after testing
|
|
||||||
CFRunLoopRemoveSource(gs_mainRunLoop, m_source, kCFRunLoopCommonModes);
|
|
||||||
CFSocketInvalidate(m_socket);
|
|
||||||
|
|
||||||
CFRelease(m_source);
|
|
||||||
CFRelease(m_socket);
|
|
||||||
}
|
|
||||||
|
|
||||||
~MacGSocketData()
|
|
||||||
{
|
|
||||||
wxASSERT_MSG( !m_source && !m_socket, "forgot to call Close()?" );
|
|
||||||
}
|
|
||||||
|
|
||||||
// return true if Initialize() had already been called successfully
|
|
||||||
bool IsInitialized() const { return m_source && m_socket; }
|
|
||||||
|
|
||||||
|
|
||||||
// accessors: should only be called if IsInitialized()
|
|
||||||
CFSocketRef GetSocket() const
|
|
||||||
{
|
|
||||||
wxASSERT( IsInitialized() );
|
|
||||||
|
|
||||||
return m_socket;
|
|
||||||
}
|
|
||||||
|
|
||||||
CFRunLoopSourceRef GetSource() const
|
|
||||||
{
|
|
||||||
wxASSERT( IsInitialized() );
|
|
||||||
|
|
||||||
return m_source;
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
static void SocketCallback(CFSocketRef WXUNUSED(s),
|
static void SocketCallback(CFSocketRef WXUNUSED(s),
|
||||||
CFSocketCallBackType callbackType,
|
CFSocketCallBackType callbackType,
|
||||||
CFDataRef WXUNUSED(address),
|
CFDataRef WXUNUSED(address),
|
||||||
const void* data,
|
const void* data,
|
||||||
void* info)
|
void* info)
|
||||||
{
|
{
|
||||||
GSocket * const socket = static_cast<GSocket *>(info);
|
wxSocketImplMac * const socket = static_cast<wxSocketImplMac *>(info);
|
||||||
MacGSocketData * const
|
|
||||||
macdata = static_cast<MacGSocketData *>(socket->m_gui_dependent);
|
|
||||||
if ( !macdata )
|
|
||||||
return;
|
|
||||||
|
|
||||||
switch (callbackType)
|
switch (callbackType)
|
||||||
{
|
{
|
||||||
@@ -163,66 +156,39 @@ private:
|
|||||||
CFSocketRef m_socket;
|
CFSocketRef m_socket;
|
||||||
CFRunLoopSourceRef m_source;
|
CFRunLoopSourceRef m_source;
|
||||||
|
|
||||||
DECLARE_NO_COPY_CLASS(MacGSocketData);
|
DECLARE_NO_COPY_CLASS(wxSocketImplMac)
|
||||||
};
|
};
|
||||||
|
|
||||||
} // anonymous namespace
|
} // anonymous namespace
|
||||||
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// CoreFoundation implementation of GSocketManager
|
// CoreFoundation implementation of wxSocketManager
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
class GSocketCFManager : public GSocketManager
|
class wxSocketManagerMac : public wxSocketManager
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual bool OnInit();
|
virtual bool OnInit();
|
||||||
virtual void OnExit();
|
virtual void OnExit();
|
||||||
|
|
||||||
virtual bool Init_Socket(GSocket *socket);
|
virtual wxSocketImpl *CreateSocket(wxSocketBase& wxsocket)
|
||||||
virtual void Close_Socket(GSocket *socket);
|
{
|
||||||
virtual void Destroy_Socket(GSocket *socket);
|
return new wxSocketImplMac(wxsocket);
|
||||||
|
}
|
||||||
|
|
||||||
virtual void Install_Callback(GSocket *socket, GSocketEvent event);
|
virtual void Install_Callback(wxSocketImpl *socket, wxSocketNotify event);
|
||||||
virtual void Uninstall_Callback(GSocket *socket, GSocketEvent event);
|
virtual void Uninstall_Callback(wxSocketImpl *socket, wxSocketNotify event);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// retrieve our custom data associated with the given socket
|
|
||||||
//
|
|
||||||
// this is a low level function, use GetInitializedData() instead if the
|
|
||||||
// data pointer should also be correctly initialized if it hadn't been done
|
|
||||||
// yet
|
|
||||||
//
|
|
||||||
// may return NULL if we hadn't created the data for this socket yet
|
|
||||||
MacGSocketData *GetData(GSocket *socket) const
|
|
||||||
{
|
|
||||||
return static_cast<MacGSocketData *>(socket->m_gui_dependent);
|
|
||||||
}
|
|
||||||
|
|
||||||
// return the custom data pointer initializing it if it hadn't been done
|
|
||||||
// yet
|
|
||||||
//
|
|
||||||
// may return NULL if there is no associated data
|
|
||||||
MacGSocketData *GetInitializedData(GSocket *socket) const
|
|
||||||
{
|
|
||||||
MacGSocketData * const data = GetData(socket);
|
|
||||||
if ( data && !data->IsInitialized() )
|
|
||||||
{
|
|
||||||
if ( !data->Initialize(socket) )
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
|
|
||||||
// return CFSocket callback mask corresponding to the given event (the
|
// return CFSocket callback mask corresponding to the given event (the
|
||||||
// socket parameter is needed because some events are interpreted
|
// socket parameter is needed because some events are interpreted
|
||||||
// differently depending on whether they happen on a server or on a client
|
// differently depending on whether they happen on a server or on a client
|
||||||
// socket)
|
// socket)
|
||||||
static int GetCFCallback(GSocket *socket, GSocketEvent event);
|
static int GetCFCallback(wxSocketImpl *socket, wxSocketNotify event);
|
||||||
};
|
};
|
||||||
|
|
||||||
bool GSocketCFManager::OnInit()
|
bool wxSocketManagerMac::OnInit()
|
||||||
{
|
{
|
||||||
// No need to store the main loop again
|
// No need to store the main loop again
|
||||||
if (gs_mainRunLoop != NULL)
|
if (gs_mainRunLoop != NULL)
|
||||||
@@ -240,88 +206,66 @@ bool GSocketCFManager::OnInit()
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void GSocketCFManager::OnExit()
|
void wxSocketManagerMac::OnExit()
|
||||||
{
|
{
|
||||||
// Release the reference count, and set the reference back to NULL
|
// Release the reference count, and set the reference back to NULL
|
||||||
CFRelease(gs_mainRunLoop);
|
CFRelease(gs_mainRunLoop);
|
||||||
gs_mainRunLoop = NULL;
|
gs_mainRunLoop = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool GSocketCFManager::Init_Socket(GSocket *socket)
|
|
||||||
{
|
|
||||||
socket->m_gui_dependent = new MacGSocketData;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void GSocketCFManager::Close_Socket(GSocket *socket)
|
|
||||||
{
|
|
||||||
Uninstall_Callback(socket, GSOCK_INPUT);
|
|
||||||
Uninstall_Callback(socket, GSOCK_OUTPUT);
|
|
||||||
|
|
||||||
MacGSocketData * const data = GetData(socket);
|
|
||||||
if ( data )
|
|
||||||
data->Close();
|
|
||||||
}
|
|
||||||
|
|
||||||
void GSocketCFManager::Destroy_Socket(GSocket *socket)
|
|
||||||
{
|
|
||||||
MacGSocketData * const data = GetData(socket);
|
|
||||||
if ( data )
|
|
||||||
{
|
|
||||||
delete data;
|
|
||||||
socket->m_gui_dependent = NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* static */
|
/* static */
|
||||||
int GSocketCFManager::GetCFCallback(GSocket *socket, GSocketEvent event)
|
int wxSocketManagerMac::GetCFCallback(wxSocketImpl *socket, wxSocketNotify event)
|
||||||
{
|
{
|
||||||
switch ( event )
|
switch ( event )
|
||||||
{
|
{
|
||||||
case GSOCK_CONNECTION:
|
case wxSOCKET_CONNECTION:
|
||||||
return socket->m_server ? kCFSocketReadCallBack
|
return socket->m_server ? kCFSocketReadCallBack
|
||||||
: kCFSocketConnectCallBack;
|
: kCFSocketConnectCallBack;
|
||||||
|
|
||||||
case GSOCK_LOST:
|
case wxSOCKET_LOST:
|
||||||
case GSOCK_INPUT:
|
case wxSOCKET_INPUT:
|
||||||
return kCFSocketReadCallBack;
|
return kCFSocketReadCallBack;
|
||||||
|
|
||||||
case GSOCK_OUTPUT:
|
case wxSOCKET_OUTPUT:
|
||||||
return kCFSocketWriteCallBack;
|
return kCFSocketWriteCallBack;
|
||||||
|
|
||||||
case GSOCK_MAX_EVENT:
|
case wxSOCKET_MAX_EVENT:
|
||||||
wxFAIL_MSG( "invalid GSocketEvent" );
|
wxFAIL_MSG( "invalid wxSocketNotify" );
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
wxFAIL_MSG( "unknown GSocketEvent" );
|
wxFAIL_MSG( "unknown wxSocketNotify" );
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void GSocketCFManager::Install_Callback(GSocket *socket, GSocketEvent event)
|
void wxSocketManagerMac::Install_Callback(wxSocketImpl *socket_,
|
||||||
|
wxSocketNotify event)
|
||||||
{
|
{
|
||||||
const MacGSocketData * const data = GetInitializedData(socket);
|
wxSocketImplMac * const socket = static_cast<wxSocketImplMac *>(socket_);
|
||||||
if ( !data )
|
|
||||||
return;
|
|
||||||
|
|
||||||
CFSocketEnableCallBacks(data->GetSocket(), GetCFCallback(socket, event));
|
CFSocketEnableCallBacks(socket->GetSocket(), GetCFCallback(socket, event));
|
||||||
}
|
}
|
||||||
|
|
||||||
void GSocketCFManager::Uninstall_Callback(GSocket *socket, GSocketEvent event)
|
void wxSocketManagerMac::Uninstall_Callback(wxSocketImpl *socket_,
|
||||||
|
wxSocketNotify event)
|
||||||
{
|
{
|
||||||
const MacGSocketData * const data = GetInitializedData(socket);
|
wxSocketImplMac * const socket = static_cast<wxSocketImplMac *>(socket_);
|
||||||
if ( !data )
|
|
||||||
return;
|
|
||||||
|
|
||||||
CFSocketDisableCallBacks(data->GetSocket(), GetCFCallback(socket, event));
|
CFSocketDisableCallBacks(socket->GetSocket(), GetCFCallback(socket, event));
|
||||||
}
|
}
|
||||||
|
|
||||||
GSocketManager *wxAppTraits::GetSocketManager()
|
// set the wxBase variable to point to our wxSocketManager implementation
|
||||||
|
//
|
||||||
|
// see comments in wx/apptrait.h for the explanation of why do we do it
|
||||||
|
// like this
|
||||||
|
static struct ManagerSetter
|
||||||
{
|
{
|
||||||
static GSocketCFManager s_manager;
|
ManagerSetter()
|
||||||
|
{
|
||||||
return &s_manager;
|
static wxSocketManagerMac s_manager;
|
||||||
};
|
wxAppTraits::SetDefaultSocketManager(&s_manager);
|
||||||
|
}
|
||||||
|
} gs_managerSetter;
|
||||||
|
|
||||||
#endif // wxUSE_SOCKETS
|
#endif // wxUSE_SOCKETS
|
||||||
|
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user