2 * Funambol is a mobile platform developed by Funambol, Inc.
3 * Copyright (C) 2003 - 2007 Funambol, Inc.
5 * This program is free software; you can redistribute it and/or modify it under
6 * the terms of the GNU Affero General Public License version 3 as published by
7 * the Free Software Foundation with the addition of the following permission
8 * added to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED
9 * WORK IN WHICH THE COPYRIGHT IS OWNED BY FUNAMBOL, FUNAMBOL DISCLAIMS THE
10 * WARRANTY OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
12 * This program is distributed in the hope that it will be useful, but WITHOUT
13 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
14 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
17 * You should have received a copy of the GNU Affero General Public License
18 * along with this program; if not, see http://www.gnu.org/licenses or write to
19 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
22 * You can contact Funambol, Inc. headquarters at 643 Bair Island Road, Suite
23 * 305, Redwood City, CA 94063, USA, or at email address info@funambol.com.
25 * The interactive user interfaces in modified source and object code versions
26 * of this program must display Appropriate Legal Notices, as required under
27 * Section 5 of the GNU Affero General Public License version 3.
29 * In accordance with Section 7(b) of the GNU Affero General Public License
30 * version 3, these Appropriate Legal Notices must retain the display of the
31 * "Powered by Funambol" logo. If the display of the logo is not reasonably
32 * feasible for technical reasons, the Appropriate Legal Notices must display
33 * the words "Powered by Funambol".
37 * IMPORTANT: make sure your compiler includes both the include
39 * <...>/src/include/<platform>
40 * <...>/src/include/common
41 * (in the given sequence)
50 #define MSG_NOSIGNAL SO_NOSIGPIPE
55 #include "base/posixadapter.h"
61 #include "base/symbianadapter.h"
64 #include "base/errors.h"
66 #if defined(_WIN32_WCE) || defined(WIN32)
67 // Windows common stuff
68 #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
71 #include "base/winadapter.h"
78 #if defined(WIN32) && !defined(_WIN32_WCE)
87 #include "base/time.h"
90 #if defined(__PALMOS__)
91 #include "base/palmadapter.h"
95 #pragma warning(disable:4291)
96 extern size_t dbgcounter;
97 void *operator new(size_t s);
98 void *operator new[](size_t s);
99 void *operator new(size_t s, char* file, int line);
100 void *operator new[](size_t s, char* file, int line);
101 void operator delete(void* p);
102 void operator delete[] (void* p);
104 #define new new(__FILE__, __LINE__)
107 #ifndef SYNC4J_LINEBREAK
108 // default encoding of line break in native strings,
109 // may be overridden by adapter header files above
110 # define SYNC4J_LINEBREAK TEXT("\r\n")
114 /** use in format string like this: printf( "str '%" WCHAR_PRINTF "'", (WCHAR *)foo) */
115 # define WCHAR_PRINTF "ls"
118 #if !defined(PLATFORM_VA_LIST)
119 #define PLATFORM_VA_LIST va_list
122 #if !defined(PLATFORM_VA_START)
123 #define PLATFORM_VA_START va_start
126 #if !defined(PLATFORM_VA_END)
127 #define PLATFORM_VA_END va_end
130 #if !defined(PLATFORM_VA_COPY)
131 #define PLATFORM_VA_COPY va_copy
136 * All platforms are expected to have assert.h and provide
137 * assert() in it. However, controlling whether assertions are
138 * enabled or not depends on the specific platform.
140 * On Windows, the Visual Studio project file enables assertions
141 * in debug builds and disables them in release builds.
143 * On systems using the autotools build, the --enable-assert
144 * option must be used to enable assertions. To be compatible with
145 * previous revisions they are disabled by default.
147 * @warning Source files should always include assert.h via
148 * fscapi.h so that the platform specific code above has a chance
149 * to control assertions.