| /*
|
| * Copyright 2004,2005 The Apache Software Foundation.
|
| *
|
| * Licensed under the Apache License, Version 2.0 (the "License");
|
| * you may not use this file except in compliance with the License.
|
| * You may obtain a copy of the License at
|
| *
|
| * http://www.apache.org/licenses/LICENSE-2.0
|
| *
|
| * Unless required by applicable law or agreed to in writing, software
|
| * distributed under the License is distributed on an "AS IS" BASIS,
|
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
| * See the License for the specific language governing permissions and
|
| * limitations under the License.
|
| */
|
|
|
|
|
| #ifndef AXIS2_WINDOWS_H
|
| #define AXIS2_WINDOWS_H
|
|
|
| /**
|
| * @file axis2_unix.h
|
| * @brief axis2 unix platform specific interface
|
| */
|
| #include <axis2_defines.h>
|
|
|
| #ifdef __cplusplus
|
| extern "C"
|
| {
|
| #endif
|
|
|
| /** @defgroup axis2_unix Platform Specific
|
| * @ingroup axis2_platforms_unix
|
| * @{
|
| */
|
|
|
| /*enum platform_error_codes
|
| {
|
| PLATFORM_ERROR_UUID_NO_ADDRESS = 0,
|
| PLATFORM_ERROR_OUT_OF_MEMORY = 1
|
| };*/
|
|
|
| #define _WINSOCKAPI_ /* Prevent inclusion of winsock.h in windows.h */
|
| #include <windows.h>
|
|
|
| /*for file access check*/
|
| #include <io.h>
|
| #include <sys/stat.h>
|
|
|
| /*for network handling*/
|
| #include <winsock2.h>
|
| #include <fcntl.h>
|
| #include <Mswsock.h>
|
| /* for time */
|
| #include <time.h>
|
| #include <sys/timeb.h>
|
| /* get opt */
|
| #include <axis2_getopt_windows.h>
|
|
|
| /***************************************************************
|
| * Default paths to shared library/DLLs and files
|
| ***************************************************************
|
| */
|
|
|
| #define AXIS2_PLATFORM_DEFAULT_DEPLOY_PATH ""
|
|
|
| #define AXIS2_PLATFORM_XMLPARSER_PATH "axis2_parser.dll"
|
| #define AXIS2_PLATFORM_TRANSPORTHTTP_PATH "http_transport.dll"
|
| #define AXIS2_PLATFORM_CHANNEL_PATH "http_channel.dll"
|
| #define AXIS2_PLATFORM_SSLCHANNEL_PATH "Unknown"
|
|
|
| #define AXIS2_PLATFORM_LOG_PATH "" /*/usr/local/axis2/log/axis2_log*/
|
| #define AXIS2_PLATFORM_CLIENTLOG_PATH "" /* /usr/local/axis2/log/axis2_client_log*/
|
| #define AXIS2_PLATFORM_CONFIG_PATH "" /* /etc/axiscpp.conf */
|
| #define AXIS2_PLATFORM_SECUREINFO ""
|
|
|
| /** |
| * Resource that contains the configuration |
| */ |
| #define AXIS2_CONFIGURATION_RESOURCE "" /* should be set */
|
|
|
| // =============================================================
|
| // Library loading and procedure resolution
|
| // =============================================================
|
| #define DLHandler HINSTANCE
|
| #define RTLD_LAZY 0 // not sure this is needed?
|
|
|
| #define AXIS2_PLATFORM_LOADLIBINIT()
|
| #define AXIS2_PLATFORM_LOADLIB(_lib) /*LoadLibrary(_lib) */ callLoadLib(_lib)
|
| #define AXIS2_PLATFORM_UNLOADLIB FreeLibrary
|
| #define AXIS2_PLATFORM_GETPROCADDR GetProcAddress
|
| #define AXIS2_PLATFORM_LOADLIBEXIT()
|
| #define AXIS2_PLATFORM_LOADLIB_ERROR ""
|
|
|
| #define AXIS2_DLHANDLER void*
|
|
|
| // =============================================================
|
| // National Language Support
|
| // =============================================================
|
|
|
| // STRTOASC is to translate single byte 'native' character representation to ASCII
|
| // ASCTOSTR is to translate single byte ascii representation to 'native' character
|
| // CANNOT be used with constants
|
| #define AXIS2_PLATFORM_STRTOASC( x ) ( x )
|
| #define AXIS2_PLATFORM_ASCTOSTR( x ) ( x )
|
|
|
| // =============================================================
|
| // Miscellaneous
|
| // =============================================================
|
|
|
| #define AXIS2_STRRCHR(x, y) (strrchr(x, y))
|
|
|
| #define AXIS2_PLATFORM_SLEEP(x) Sleep(0);
|
|
|
| /**
|
| * Get the last error code from the system.
|
| * Please ensure that this is a thread safe implementation
|
| * and that it returns a long
|
| * @return long the lsat error message for this thread
|
| */
|
| #define AXIS2_GETLASTERROR GetLastError();
|
|
|
| /**
|
| * From the last error number get a sensible std::string representing it
|
| * @param errorNumber the error Number you are trying to get a message for
|
| * @return the error message. NOTE: The caller is responsible for deleting the returned string
|
| */
|
| #define AXIS2_PLATFORM_GET_ERROR_MESSAGE(errorNumber) getPlatformErrorMessage(errorNumber);
|
|
|
| /**
|
| * type to be used for 64bit integers
|
| */
|
| #define AXIS2_LONGLONG __int64
|
|
|
| /**
|
| * Format string to be used in printf for 64bit integers
|
| */
|
| #define AXIS2_PRINTF_LONGLONG_FORMAT_SPECIFIER "%I64d"
|
| #define AXIS2_PRINTF_LONGLONG_FORMAT_SPECIFIER_CHARS "I64d"
|
|
|
| AXIS2_DECLARE(HMODULE) callLoadLib(LPCTSTR lib);
|
|
|
| /**
|
| * Platform specific path separator char
|
| */
|
| #define AXIS2_PATH_SEP_CHAR '/'
|
| #define AXIS2_PATH_SEP_STR "/"
|
| #define AXIS2_LIB_PREFIX ""
|
| #define AXIS2_LIB_SUFFIX ".dll"
|
|
|
| /**
|
| * Platform specific time
|
| */
|
| #define AXIS2_TIME_T time_t
|
| /**
|
| * Platform specific method to obtain current time in milli seconds
|
| */
|
| #define AXIS2_PLATFORM_GET_TIME_IN_MILLIS _ftime
|
| #define AXIS2_PLATFORM_TIMEB _timeb
|
| /**
|
| * Platform specific file handling
|
| */
|
| #define AXIS2_ACCESS(zpath,imode) _access(zpath,imode)
|
| #define AXIS2_R_OK 04 /* test for read permission */
|
| #define AXIS2_W_OK 02 /* test for write permission */
|
| #define AXIS2_X_OK 00 /* test for execute or search permission */
|
| #define AXIS2_F_OK 00 /* test whether the directories leading to the file can be
|
| searched and the file exists */
|
| /**
|
| * windows specific directory handling functions
|
| */
|
| #define AXIS2_SCANDIR scandir
|
| #define AXIS2_ALPHASORT alphasort
|
| #define AXIS2_OPENDIR opendir
|
| #define AXIS2_CLOSEDIR closedir
|
| #define AXIS2_READDIR readdir
|
| #define AXIS2_READDIR_R readdir_r
|
| #define AXIS2_REWINDDIR rewinddir
|
|
|
| /**
|
| * network specific functions and defs
|
| */
|
| #define axis2_socket_t SOCKET
|
|
|
| #define AXIS2_INVALID_SOCKET INVALID_SOCKET
|
| #define AXIS2_INADDR_NONE INADDR_NONE
|
| #define axis2_unsigned_short_t u_short
|
| #define AXIS2_CLOSE_SOCKET(sock) closesocket(sock)
|
| #define AXIS2_CLOSE_SOCKET_ON_EXIT(sock)
|
| #define axis2_socket_len_t int
|
|
|
| /** |
| * Platform specific environment variable access method |
| */ |
| #define AXIS2_GETENV(_env_var_name) getenv(_env_var_name)
|
|
|
| /**
|
| * handling variable number of arguments (for log.c)
|
| */
|
|
|
| /** getopt function */ |
| #define AXIS2_GETOPT axis2_getopt
|
| /** string functions */
|
| #define AXIS2_VSNPRINTF _vsnprintf
|
|
|
| #define AXIS2_SNPRINTF _snprintf
|
|
|
|
|
| /** @} */
|
| #ifdef __cplusplus
|
| }
|
| #endif
|
| #endif /* AXIS2_WINDOWS_H */
|
|
|
|
|