svn-gvsig-desktop / tags / v1_0_2_Build_904 / libraries / libjni-ecw / include / NCSUtil.h @ 43469
History | View | Annotate | Download (6.45 KB)
1 |
/********************************************************
|
---|---|
2 |
** Copyright 1999 Earth Resource Mapping Ltd.
|
3 |
** This document contains proprietary source code of
|
4 |
** Earth Resource Mapping Ltd, and can only be used under
|
5 |
** one of the three licenses as described in the
|
6 |
** license.txt file supplied with this distribution.
|
7 |
** See separate license.txt file for license details
|
8 |
** and conditions.
|
9 |
**
|
10 |
** This software is covered by US patent #6,442,298,
|
11 |
** #6,102,897 and #6,633,688. Rights to use these patents
|
12 |
** is included in the license agreements.
|
13 |
**
|
14 |
** FILE: NCSUtil.h
|
15 |
** CREATED: Thu Feb 25 09:19:00 WST 1999
|
16 |
** AUTHOR: Simon Cope
|
17 |
** PURPOSE: NCS Utility library header.
|
18 |
** EDITS:
|
19 |
** [01] ny 23May00 Modified NCSGetUserAndDomainName to be cross platform
|
20 |
** [02] ny 30Oct00 Merge CE/Palm modification in preparation for Macintosh port
|
21 |
** [03] ny 23Nov00 Mac port changes (Added NCSstrcasecmp)
|
22 |
** [04] sjc 28Aug01 Added NCSIsService() to detect if running as a service under WinNT/2K/XP Server.
|
23 |
** [05] sjc 11Mar02 Added NCSIsWebService() to detect if running as a web service under WinNT/2K/XP Server.
|
24 |
** [06] ajd 01Jul02 Added NCSNanVal() to generate NaNs
|
25 |
** [07] sjc 12Feb03 Added NCSLog2() to calculate log2() function
|
26 |
*******************************************************/
|
27 |
|
28 |
#ifndef NCSUTIL_H
|
29 |
#define NCSUTIL_H
|
30 |
|
31 |
// FIXME /**[02]**/
|
32 |
#ifdef __PALM__ /**[02]**/ |
33 |
#ifndef EMULATION_LEVEL /**[02]**/ |
34 |
#define EMULATION_LEVEL 0 /**[02]**/ |
35 |
#endif /**[02]**/ |
36 |
#endif /**[02]**/ |
37 |
|
38 |
#ifndef __PALM__ /**[02]**/ |
39 |
#include <math.h> |
40 |
#endif /**[02]**/ |
41 |
|
42 |
#ifndef NCSTYPES_H
|
43 |
#include "NCSTypes.h" |
44 |
#endif
|
45 |
#ifndef NCSDEFS_H
|
46 |
#include "NCSDefs.h" |
47 |
#endif
|
48 |
#ifndef NCSDYNAMICLIB_H
|
49 |
#include "NCSDynamicLib.h" |
50 |
#endif
|
51 |
#ifndef NCSERRORS_H
|
52 |
#include "NCSErrors.h" |
53 |
#endif
|
54 |
#ifndef NCSMALLOC_H
|
55 |
#include "NCSMalloc.h" |
56 |
#endif
|
57 |
#ifndef NCSARRAY_H
|
58 |
#include "NCSArray.h" |
59 |
#endif
|
60 |
#ifndef NCSTIMESTAMP_H
|
61 |
#include "NCSTimeStamp.h" |
62 |
#endif
|
63 |
#ifndef NCSMUTEX_H
|
64 |
#include "NCSMutex.h" |
65 |
#endif
|
66 |
#ifndef NCSMEMPOOL_H
|
67 |
#include "NCSMemPool.h" |
68 |
#endif
|
69 |
#ifndef NCSUTIL_H
|
70 |
#include "NCSUtil.h" |
71 |
#endif
|
72 |
#ifndef NCSTHREAD_H
|
73 |
#include "NCSThread.h" |
74 |
#endif
|
75 |
#ifndef NCSQUEUE_H
|
76 |
#include "NCSQueue.h" |
77 |
#endif
|
78 |
#ifndef NCSPACKETS_H
|
79 |
#include "NCSPackets.h" |
80 |
#endif
|
81 |
#ifndef NCSTIMER_H
|
82 |
#include "NCSTimer.h" |
83 |
#endif
|
84 |
#ifndef NCSPREFS_H
|
85 |
#include "NCSPrefs.h" |
86 |
#endif
|
87 |
#ifndef NCSFILEIO_H
|
88 |
#include "NCSFileIO.h" |
89 |
#endif
|
90 |
#ifndef NCSMISC_H
|
91 |
#include "NCSMisc.h" |
92 |
#endif
|
93 |
|
94 |
#ifdef MACINTOSH
|
95 |
#include <extras.h> |
96 |
#endif
|
97 |
|
98 |
#ifdef __cplusplus
|
99 |
extern "C" { |
100 |
#endif
|
101 |
|
102 |
INT32 NCSUtilInitialised(); |
103 |
void NCSUtilInit(void); |
104 |
void NCSUtilFini(void); |
105 |
void NCSSleep(NCSTimeStampMs tsSleepTime);
|
106 |
void NCSdbgOutputNewLeaks(void); |
107 |
void NCSdbgOutputNewHandles(void); |
108 |
char *NCSStrDup(char *pString); |
109 |
NCSError NCSFormatCoordStringsEN(double dEasting, double dNorthing, char **ppEastString, char **ppNorthString); |
110 |
NCSError NCSFormatCoordStringsLL(double dEasting, double dNorthing, char **ppEastString, char **ppNorthString); |
111 |
UINT32 NCSGetNumCPUs(void);
|
112 |
UINT32 NCSGetNumPhysicalCPUs(void);
|
113 |
#ifdef WIN32
|
114 |
BOOLEAN NCSGetUserAndDomainName(char *UserName, LPDWORD cchUserName, char* DomainName, LPDWORD cchDomainName); |
115 |
UINT32 NCSGetWebServerID(const char *szPath, DWORD nPathLen); |
116 |
#endif
|
117 |
BOOLEAN NCSIsNaN(IEEE8 dDoubleValue); |
118 |
BOOLEAN NCSIsService(void); /**[04]**/ |
119 |
BOOLEAN NCSIsWebService(void); /**[05]**/ |
120 |
|
121 |
double NCSNanVal(void); /**[06]**/ |
122 |
BOOLEAN NCSDoubleIsNan(double v);
|
123 |
|
124 |
#ifdef WIN32
|
125 |
#ifdef _WIN32_WCE
|
126 |
|
127 |
#if (_WIN32_WCE <= 211) |
128 |
#define strnicmp(a, b, c) _memicmp(a, b, c)
|
129 |
#define stricmp(a, b) _memicmp(a, b, MIN(strlen(a), strlen(b)))
|
130 |
#else
|
131 |
#define strnicmp(a, b, c) _strnicmp(a, b, c)
|
132 |
#define stricmp(a, b) _stricmp(a, b)
|
133 |
#endif
|
134 |
|
135 |
#endif /* _WIN32_CE */ |
136 |
|
137 |
#define vsnprintf _vsnprintf
|
138 |
#define snprintf _snprintf
|
139 |
|
140 |
#define NCSMessageBox(Window, Text, Caption, Type) ::MessageBox(Window, Text, Caption, Type)
|
141 |
|
142 |
#elif defined __PALM__
|
143 |
|
144 |
#define stricmp(a, b) StrCaselessCompare(a, b)
|
145 |
#define strnicmp(a, b, c) StrNCaselessCompare(a, b, c)
|
146 |
#define strcmp(a, b) StrCompare(a, b)
|
147 |
#define strncmp(a, b) StrNCompare(a, b)
|
148 |
#define strcpy(a, b) StrCopy(a, (const char*)b) |
149 |
#define strncpy(a, b, c) StrNCopy(a, (const char*)b, c) |
150 |
#define strlen(a) StrLen(a)
|
151 |
#define calloc(a, b) NCSMalloc(a * b, TRUE)
|
152 |
#define malloc(a) NCSMalloc(a, FALSE)
|
153 |
#define realloc(a, b) NCSRealloc((void*)a, b, TRUE) |
154 |
#define free(a) NCSFree(a)
|
155 |
#define memcpy(a, b, c) MemMove(a, b, c)
|
156 |
#define memset(a, b, c) MemSet(a, c, b)
|
157 |
#define isupper(a) ((((a) >= 'A') && ((a) <= 'Z')) ? TRUE : FALSE) |
158 |
#define tolower(a) ((a) -= ('A' - 'a')) |
159 |
int sscanf(const char *string, const char *format, ...); |
160 |
__inline double atof(char *s) |
161 |
{ |
162 |
double d;
|
163 |
sscanf(s, "%f", &d);
|
164 |
return(d);
|
165 |
} |
166 |
|
167 |
|
168 |
#elif defined MACINTOSH
|
169 |
|
170 |
#if TARGET_API_MAC_CARBON
|
171 |
# define _stricmp stricmp
|
172 |
# define _strnicmp strnicmp
|
173 |
# define _itoa itoa
|
174 |
#else
|
175 |
# define strncascmp _stricmp
|
176 |
# define NCSstrcasecmp _stricmp
|
177 |
# define strnicmp _strnicmp
|
178 |
# define stricmp _stricmp
|
179 |
#endif //TARGET_API_MAC_CARBON |
180 |
|
181 |
#else /* __PALM__ */ |
182 |
|
183 |
#define stricmp(a, b) strcasecmp(a, b)
|
184 |
#define strnicmp(a, b, c) strncasecmp(a, b, c)
|
185 |
|
186 |
#endif /* WIN32 */ |
187 |
|
188 |
#ifdef UNICODE
|
189 |
|
190 |
static NCS_INLINE wchar_t *NCSA2WHelper(wchar_t *lpw, const char *lpa, int nChars) |
191 |
{ |
192 |
lpw[0] = '\0'; |
193 |
#ifdef WIN32
|
194 |
MultiByteToWideChar(CP_ACP, 0, (LPSTR)lpa, -1, (LPWSTR)lpw, nChars); |
195 |
#else
|
196 |
mbstowcs(lpw, lpa, nChars); |
197 |
#endif
|
198 |
return lpw;
|
199 |
} |
200 |
|
201 |
static NCS_INLINE char *NCSW2AHelper(char *lpa, const wchar_t *lpw, int nChars) |
202 |
{ |
203 |
lpa[0] = '\0'; |
204 |
#ifdef WIN32
|
205 |
WideCharToMultiByte(CP_ACP, 0, (LPWSTR)lpw, -1, (LPSTR)lpa, nChars, NULL, NULL); |
206 |
#else
|
207 |
wcstombs(lpa, lpw, nChars); |
208 |
#endif
|
209 |
return lpa;
|
210 |
} |
211 |
|
212 |
#define OS_STRING(lpa) (((lpa) == NULL) ? NULL : NCSA2WHelper((wchar_t*) alloca(((int)strlen(lpa)+1)*2*sizeof(wchar_t)), (lpa), ((int)strlen(lpa)+1))) |
213 |
#define CHAR_STRING(lpw) (((lpw) == NULL) ? NULL : NCSW2AHelper((char*) alloca(((int)wcslen(lpw)+1)*2), (lpw), ((int)wcslen(lpw)+1)*2)) |
214 |
|
215 |
#ifndef WIN32
|
216 |
#define _tcscmp wcscmp
|
217 |
|
218 |
#ifdef SOLARIS
|
219 |
|
220 |
#include <wchar.h> |
221 |
|
222 |
static NCS_INLINE int wcsicmp(const wchar_t *s1, const wchar_t *s2) |
223 |
{ |
224 |
while ((*s2 != L'\0') && (towlower(*s1) == towlower(*s2))) { |
225 |
s1++; |
226 |
s2++; |
227 |
} |
228 |
return(towlower(*s1) - towlower(*s2));
|
229 |
} |
230 |
|
231 |
static NCS_INLINE wchar_t *wcsdup(const wchar_t *s1) |
232 |
{ |
233 |
size_t len = (wcslen(s1) + 1) * sizeof(wchar_t); |
234 |
wchar_t *s2 = (wchar_t*)malloc(len); |
235 |
memcpy(s2, s1, len); |
236 |
return(s2);
|
237 |
} |
238 |
|
239 |
#endif // SOLARIS |
240 |
|
241 |
#endif //!WIN32 |
242 |
|
243 |
#else /* UNICODE */ |
244 |
|
245 |
#define OS_STRING(lpa) (lpa)
|
246 |
#define CHAR_STRING(lpw) (lpw)
|
247 |
|
248 |
#ifndef WIN32
|
249 |
#define _tcscmp strcmp
|
250 |
#endif //!WIN32 |
251 |
|
252 |
#endif /* UNICODE */ |
253 |
|
254 |
#ifdef __cplusplus
|
255 |
} |
256 |
#endif
|
257 |
|
258 |
#endif /* NCSUTIL_H */ |