diff -r 000000000000 -r dd21522fd290 webengine/wmlengine/src/utils/include/nwx_defs.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/webengine/wmlengine/src/utils/include/nwx_defs.h Mon Mar 30 12:54:55 2009 +0300 @@ -0,0 +1,234 @@ +/* +* Copyright (c) 1999 - 2001 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +/*************************************************************************** +** File: nwx_defs.h +** Purpose: Contains definitions common to all components. +** Also contains defs for all of the Basic Scalar types +**************************************************************************/ +#ifndef NWX_DEFS_H +#define NWX_DEFS_H + +/* +**---------------------------------------------------------------------- +** Preprocessor Macro Definitions +**---------------------------------------------------------------------- +*/ +#ifdef __cplusplus +extern "C" { +#endif + +/* +**---------------------------------------------------------------------- +** Includes +**---------------------------------------------------------------------- +*/ + +/* + * ANSI/ISO C header files needed to define basic data types + * (ie. NULL, etc) + */ + +#include + + +/* +**---------------------------------------------------------------------- +** Type Declarations +**---------------------------------------------------------------------- +*/ + +#define _NW_STR(str) L ## str +#define NW_STR(str) _NW_STR(str) + +/* New type definitions with non-conflicting name scheme */ +typedef unsigned char NW_Bool; /* NW_FALSE, NW_TRUE */ +typedef unsigned char NW_Byte; /* 0 ... 0xFF */ +typedef unsigned short NW_Word; /* 0 ... 0xFFFF */ +typedef unsigned long NW_Dword; /* 0 ... 0xFFFFFFFF */ + +typedef unsigned char NW_Uint8; /* 0 ... 255 */ +typedef unsigned short NW_Uint16; /* 0 ... 65535 */ +typedef unsigned long NW_Uint32; /* 0 ... 4294967295 */ + +typedef signed char NW_Int8; /* -128 ... +127 */ +typedef signed short NW_Int16; /* -32768 ... +32767 */ +typedef signed long NW_Int32; /* -2147483648 ... +2147483647 */ + +typedef float NW_Float32; +typedef double NW_Float64; + +typedef unsigned short NW_Ucs2; /* 0 ... 65535 */ +typedef unsigned long NW_Ucs4; /* 0 ... 4294967295 */ + +/*This type can hold both TBrowserStatusCode and http status*/ +typedef NW_Int32 NW_WaeError_t; +typedef NW_Uint16 NW_WaeHttpStatus_t; + + +#define NW_TRUE ((NW_Bool) 0x01U) +#define NW_FALSE ((NW_Bool) 0x00U) + +#define NW_UINT8_MIN ((NW_Uint8) 0x00U) +#define NW_UINT8_MAX ((NW_Uint8) 0xFFU) + +#define NW_UINT16_MIN ((NW_Uint16) 0x0000U) +#define NW_UINT16_MAX ((NW_Uint16) 0xFFFFU) + +#define NW_UINT32_MIN ((NW_Uint32) 0x00000000U) +#define NW_UINT32_MAX ((NW_Uint32) 0xFFFFFFFFU) + +#define NW_INT8_MIN ((NW_Int8) 0x80U) +#define NW_INT8_MAX ((NW_Int8) 0x7FU) + +#define NW_INT16_MIN ((NW_Int16) 0x8000U) +#define NW_INT16_MAX ((NW_Int16) 0x7FFFU) + +#define NW_INT32_MIN ((NW_Int32) 0x80000000U) +#define NW_INT32_MAX ((NW_Int32) 0x7FFFFFFFU) + +/* + * Definitions needed by the script engine for + * performing IEEE floating point math. + * These *should* be platform independent constants defined + * by the IEEE specifications, but in all cases they + * can be found in the ANSI/ISO C header file + */ +#define NW_FLOAT32_DIG FLT_DIG +#define NW_FLOAT32_MIN FLT_MIN +#define NW_FLOAT32_MAX FLT_MAX +#define NW_FLOAT32_MIN_EXP FLT_MIN_10_EXP +#define NW_FLOAT32_MAX_EXP FLT_MAX_10_EXP + +#define NW_MIN(x, y) ( ((x) < (y)) ? (x) : (y) ) +#define NW_MAX(x, y) ( ((x) > (y)) ? (x) : (y) ) + +/* + * When casting to unsigned types, the comparison "-expr <= 0" is used + * rather than "expr >= 0" to prevent warnings about unnecessary + * comparisons on Epoc hardware. + */ +#define NW_UINT8_CAST(expr) \ + ( (NW_ASSERT((-(NW_Int32)(expr)) <= 0 && \ + ((NW_Uint32)(expr)) <= NW_UINT8_MAX)), \ + ((NW_Uint8)(expr)) ) + +#define NW_UINT16_CAST(expr) \ + ( (NW_ASSERT((-(NW_Int32)(expr)) <= 0 && \ + ((NW_Uint32)(expr)) <= NW_UINT16_MAX)), \ + ((NW_Uint16)(expr)) ) + +#define NW_UINT32_CAST(expr) \ + ( (NW_ASSERT((-(NW_Int32)(expr)) <= 0 && \ + ((NW_Uint32)(expr)) <= NW_UINT32_MAX)), \ + ((NW_Uint32)(expr)) ) + +#define NW_INT8_CAST(expr) \ + ( (NW_ASSERT(((NW_Int32)(expr)) >= NW_INT8_MIN && \ + ((NW_Int32)(expr)) <= NW_INT8_MAX)), \ + ((NW_Int8)(expr)) ) + +#define NW_INT16_CAST(expr) \ + ( (NW_ASSERT(((NW_Int32)(expr)) >= NW_INT16_MIN && \ + ((NW_Int32)(expr)) <= NW_INT16_MAX)), \ + ((NW_Int16)(expr)) ) + +#define NW_INT32_CAST(expr) \ + ( (NW_ASSERT(((NW_Int32)(expr)) >= NW_INT32_MIN && \ + ((NW_Int32)(expr)) <= NW_INT32_MAX)), \ + ((NW_Int32)(expr)) ) + +#define NW_BOOL_CAST(expr) \ + ( ((NW_Bool)(((NW_Int32)(expr) != 0) ? NW_TRUE : NW_FALSE)) ) + +/* + * Used to supress compiler warnings about required, + * but unused function parameters + */ +#define NW_REQUIRED_PARAM(param) if (param) {}; + +/* NW_Opaque_t is used for passing dynamically typed + values between the Script engine and the browser. */ + +typedef enum +{ + NW_OPAQUE_VALUE_TYPE_INT32, + NW_OPAQUE_VALUE_TYPE_STRING, + NW_OPAQUE_VALUE_TYPE_BOOL, + NW_OPAQUE_VALUE_TYPE_FLOAT, + NW_OPAQUE_VALUE_TYPE_INVALID +} NW_Opaque_Value_Type_t; + +typedef struct _NW_Opaque_t NW_Opaque_t; + +/* Note: use "volatile" keyword to suppress compiler optimizer bug */ +/* which changes store/load operation into a data-type cast */ +struct _NW_Opaque_t { + volatile union { + NW_Ucs2 *s; + NW_Int32 i; + NW_Float32 f; + NW_Bool b; + } value; + NW_Opaque_Value_Type_t type; +}; + +/* Facilitates run-time error checking */ +#define NW_THROWIF_MEM(_call) {if ((_call) == NULL) goto _NW_CATCH_MEM;} +#define NW_THROW_ERROR() { goto _NW_CATCH_ERROR;} +#define NW_THROWIF(_call) {if ((_call)) goto _NW_CATCH_ERROR;} +#define NW_THROWIF_ERROR(_call) {if ((_call) != KBrsrSuccess) goto _NW_CATCH_ERROR;} +#define NW_THROWIF_NULL(_call) {if ((_call) == NULL) goto _NW_CATCH_ERROR;} + +#define NW_CATCH_MEM _NW_CATCH_MEM: +#define NW_CATCH_ERROR _NW_CATCH_ERROR: + +/* +**---------------------------------------------------------------------- +** Includes +**---------------------------------------------------------------------- +*/ +#include "nwx_assert.h" +#include "nwx_mem.h" +#include "BrsrStatusCodes.h" + + +/* ------------------------------------------------------------------------- * + public constants + * ------------------------------------------------------------------------- */ +#define NW_HED_UrlRequest_Reason_Undefined 0 /* Shouldn't be used */ +#define NW_HED_UrlRequest_Reason_ShellLoad 1 /* used by goto and bookmark dialogs */ +#define NW_HED_UrlRequest_Reason_ShellPrev 2 /* used by history */ +#define NW_HED_UrlRequest_Reason_ShellNext 3 /* used by history */ +#define NW_HED_UrlRequest_Reason_ShellReload 4 /* used by history */ +#define NW_HED_UrlRequest_Reason_DocLoad 5 /* used by content-handlers to load new top-level documents */ +#define NW_HED_UrlRequest_Reason_DocPrev 6 /* used by Wml1x content-handler to load new top-level document as the result of the PREV task */ +#define NW_HED_UrlRequest_Reason_DocLoadChild 7 /* used by content-handlers to load embedded documents */ +#define NW_HED_UrlRequest_Reason_RestorePrev 8 /* used to restore a failed page */ +#define NW_HED_UrlRequest_Reason_RestoreNext 9 /* used to restore a failed page */ +#define NW_HED_UrlRequest_Reason_DocLoadHead 10 + + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* NWX_DEFS_H */ + + +