| xflaimtk.h | | xflaimtk.h | |
| //-------------------------------------------------------------------------
----- | | //-------------------------------------------------------------------------
----- | |
|
| // Desc: Placeholder for FLAIM's cross-platform toolkit public defini | | // Desc: FLAIM's cross-platform toolkit public definitions and interf | |
| tions | | aces | |
| // and interfaces | | | |
| // | | // | |
| // Tabs: 3 | | // Tabs: 3 | |
| // | | // | |
|
| // Copyright (c) 2006 Novell, Inc. All Rights Reserved. | | // Copyright (c) 2003-2006 Novell, Inc. All Rights Reserved. | |
| // | | // | |
| // This program is free software; you can redistribute it and/o
r | | // This program is free software; you can redistribute it and/o
r | |
| // modify it under the terms of version 2 of the GNU General Pu
blic | | // modify it under the terms of version 2 of the GNU General Pu
blic | |
| // License as published by the Free Software Foundation. | | // License as published by the Free Software Foundation. | |
| // | | // | |
| // This program is distributed in the hope that it will be usef
ul, | | // This program is distributed in the hope that it will be usef
ul, | |
| // but WITHOUT ANY WARRANTY; without even the implied warranty
of | | // but WITHOUT ANY WARRANTY; without even the implied warranty
of | |
| // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| // GNU General Public License for more details. | | // GNU General Public License for more details. | |
| // | | // | |
| // You should have received a copy of the GNU General Public Li
cense | | // You should have received a copy of the GNU General Public Li
cense | |
| // along with this program; if not, contact Novell, Inc. | | // along with this program; if not, contact Novell, Inc. | |
| // | | // | |
| // To contact Novell about this file by physical or electronic
mail, | | // To contact Novell about this file by physical or electronic
mail, | |
| // you may find current contact information at www.novell.com | | // you may find current contact information at www.novell.com | |
| // | | // | |
| // $Id$ | | // $Id$ | |
| //-------------------------------------------------------------------------
----- | | //-------------------------------------------------------------------------
----- | |
| | | | |
|
| #include "ftk.h" | | /// \file | |
| | | | |
| | | #ifndef FTK_H | |
| | | #define FTK_H | |
| | | | |
| | | /// \defgroup retcodes Return Codes | |
| | | | |
| | | #ifndef FLM_PLATFORM_CONFIGURED | |
| | | #define FLM_PLATFORM_CONFIGURED | |
| | | | |
| | | // Determine the build platform | |
| | | | |
| | | #undef FLM_WIN | |
| | | #undef FLM_NLM | |
| | | #undef FLM_UNIX | |
| | | #undef FLM_AIX | |
| | | #undef FLM_LINUX | |
| | | #undef FLM_SOLARIS | |
| | | #undef FLM_HPUX | |
| | | #undef FLM_OSX | |
| | | #undef FLM_S390 | |
| | | #undef FLM_IA64 | |
| | | #undef FLM_PPC | |
| | | #undef FLM_SPARC | |
| | | #undef FLM_SPARC_PLUS | |
| | | #undef FLM_X86 | |
| | | #undef FLM_BIG_ENDIAN | |
| | | #undef FLM_STRICT_ALIGNMENT | |
| | | #undef FLM_GNUC | |
| | | #undef FLM_HAS_ASYNC_IO | |
| | | #undef FLM_HAS_DIRECT_IO | |
| | | | |
| | | #if defined( __GNUC__) | |
| | | #define FLM_GNUC | |
| | | #if defined( __arch64__) | |
| | | #if !defined( FLM_64BIT) | |
| | | #define FLM_64BIT | |
| | | #endif | |
| | | #endif | |
| | | #endif | |
| | | | |
| | | #if defined( __NETWARE__) || defined( NLM) || defined( N_PLA | |
| | | T_NLM) | |
| | | #if defined( __WATCOMC__) && defined( __386__) | |
| | | #define FLM_X86 | |
| | | #else | |
| | | #error Platform architecture not supported | |
| | | #endif | |
| | | #define FLM_NLM | |
| | | #if !defined( FLM_RING_ZERO_NLM) && !defined( FLM_LI | |
| | | BC_NLM) | |
| | | #define FLM_RING_ZERO_NLM | |
| | | #endif | |
| | | #define FLM_OSTYPE_STR "NetWare" | |
| | | #if defined( __WATCOMC__) | |
| | | #define FLM_WATCOM_NLM | |
| | | #elif defined( __MWERKS__) | |
| | | #define FLM_MWERKS_NLM | |
| | | #endif | |
| | | #if defined( FLM_RING_ZERO_NLM) | |
| | | #define FLM_HAS_ASYNC_IO | |
| | | #define FLM_HAS_DIRECT_IO | |
| | | #endif | |
| | | #elif defined( _WIN64) | |
| | | #if defined( _M_IX6) || defined( _M_X64) | |
| | | #define FLM_X86 | |
| | | #endif | |
| | | #define FLM_WIN | |
| | | #define FLM_OSTYPE_STR "Windows" | |
| | | #ifndef FLM_64BIT | |
| | | #define FLM_64BIT | |
| | | #endif | |
| | | #define FLM_STRICT_ALIGNMENT | |
| | | #define FLM_HAS_ASYNC_IO | |
| | | #define FLM_HAS_DIRECT_IO | |
| | | #elif defined( _WIN32) | |
| | | #if defined( _M_IX86) || defined( _M_X64) | |
| | | #define FLM_X86 | |
| | | #else | |
| | | #error Platform architecture not supported | |
| | | #endif | |
| | | #define FLM_WIN | |
| | | #define FLM_OSTYPE_STR "Windows" | |
| | | #define FLM_HAS_ASYNC_IO | |
| | | #define FLM_HAS_DIRECT_IO | |
| | | #elif defined( _AIX) | |
| | | #define FLM_AIX | |
| | | #define FLM_OSTYPE_STR "AIX" | |
| | | #define FLM_UNIX | |
| | | #define FLM_BIG_ENDIAN | |
| | | #define FLM_STRICT_ALIGNMENT | |
| | | #elif defined( linux) | |
| | | #define FLM_LINUX | |
| | | #define FLM_OSTYPE_STR "Linux" | |
| | | #define FLM_UNIX | |
| | | #if defined( __PPC__) || defined( __ppc__) | |
| | | #define FLM_PPC | |
| | | #define FLM_BIG_ENDIAN | |
| | | #define FLM_STRICT_ALIGNMENT | |
| | | #elif defined( __s390__) | |
| | | #define FLM_S390 | |
| | | #define FLM_BIG_ENDIAN | |
| | | #define FLM_STRICT_ALIGNMENT | |
| | | #elif defined( __s390x__) | |
| | | #define FLM_S390 | |
| | | #ifndef FLM_64BIT | |
| | | #define FLM_64BIT | |
| | | #endif | |
| | | #define FLM_BIG_ENDIAN | |
| | | #define FLM_STRICT_ALIGNMENT | |
| | | #elif defined( __ia64__) | |
| | | #define FLM_IA64 | |
| | | #ifndef FLM_64BIT | |
| | | #define FLM_64BIT | |
| | | #endif | |
| | | #define FLM_STRICT_ALIGNMENT | |
| | | #elif defined( sparc) || defined( __sparc) || define | |
| | | d( __sparc__) | |
| | | #define FLM_SPARC | |
| | | #define FLM_BIG_ENDIAN | |
| | | #define FLM_STRICT_ALIGNMENT | |
| | | #if !defined ( FLM_SPARC_GENERIC) | |
| | | #if defined( __sparcv8plus) || defin | |
| | | ed( __sparcv9) || defined( __sparcv9__) || \ | |
| | | defined( __sparc_v8__) || d | |
| | | efined( __sparc_v9__) || defined( __arch64__) | |
| | | #define FLM_SPARC_PLUS | |
| | | #endif | |
| | | #endif | |
| | | #elif defined( __x86__) || defined( __i386__) || def | |
| | | ined( __x86_64__) | |
| | | #define FLM_X86 | |
| | | #else | |
| | | #error Platform architecture not supported | |
| | | #endif | |
| | | #define FLM_HAS_ASYNC_IO | |
| | | #define FLM_HAS_DIRECT_IO | |
| | | #elif defined( sun) | |
| | | #define FLM_SOLARIS | |
| | | #define FLM_OSTYPE_STR "Solaris" | |
| | | #define FLM_UNIX | |
| | | #define FLM_STRICT_ALIGNMENT | |
| | | #if defined( sparc) || defined( __sparc) || defined( | |
| | | __sparc__) | |
| | | #define FLM_SPARC | |
| | | #define FLM_BIG_ENDIAN | |
| | | #if !defined ( FLM_SPARC_GENERIC) | |
| | | #if defined( __sparcv8plus) || defin | |
| | | ed( __sparcv9) | |
| | | #define FLM_SPARC_PLUS | |
| | | #endif | |
| | | #endif | |
| | | #elif defined( i386) || defined( _i386) | |
| | | #define FLM_X86 | |
| | | #else | |
| | | #error Platform architecture not supported | |
| | | #endif | |
| | | #define FLM_HAS_ASYNC_IO | |
| | | #define FLM_HAS_DIRECT_IO | |
| | | #elif defined( __hpux) || defined( hpux) | |
| | | #define FLM_HPUX | |
| | | #define FLM_OSTYPE_STR "HPUX" | |
| | | #define FLM_UNIX | |
| | | #define FLM_BIG_ENDIAN | |
| | | #define FLM_STRICT_ALIGNMENT | |
| | | #define FLM_HAS_ASYNC_IO | |
| | | #define FLM_HAS_DIRECT_IO | |
| | | #elif defined( __APPLE__) | |
| | | #define FLM_OSX | |
| | | #define FLM_OSTYPE_STR "OSX" | |
| | | #define FLM_UNIX | |
| | | #if (defined( __ppc__) || defined( __ppc64__)) | |
| | | #define FLM_PPC | |
| | | #define FLM_BIG_ENDIAN | |
| | | #define FLM_STRICT_ALIGNMENT | |
| | | #elif defined( __x86__) || defined( __x86_64__) | |
| | | #define FLM_X86 | |
| | | #else | |
| | | #error Platform architecture not supported | |
| | | #endif | |
| | | #define FLM_HAS_ASYNC_IO | |
| | | #define FLM_HAS_DIRECT_IO | |
| | | #else | |
| | | #error Platform architecture is undefined. | |
| | | #endif | |
| | | | |
| | | #if !defined( FLM_64BIT) && !defined( FLM_32BIT) | |
| | | #if defined( FLM_UNIX) | |
| | | #if defined( __x86_64__) || defined( _M_X64) | |
| | | || \ | |
| | | defined( _LP64) || defined( __LP64_ | |
| | | _) || \ | |
| | | defined ( __64BIT__) || defined( __ | |
| | | arch64__) || \ | |
| | | defined( __sparcv9) || defined( __s | |
| | | parcv9__) | |
| | | #define FLM_64BIT | |
| | | #endif | |
| | | #endif | |
| | | #endif | |
| | | | |
| | | #if !defined( FLM_64BIT) | |
| | | #define FLM_32BIT | |
| | | #elif defined( FLM_32BIT) | |
| | | #error Cannot define both FLM_32BIT and FLM_64BIT | |
| | | #endif | |
| | | | |
| | | #if defined( __x86_64__) || defined( _M_X64) || \ | |
| | | defined( _LP64) || defined( __LP64__) || \ | |
| | | defined ( __64BIT__) || defined( __arch64__) || \ | |
| | | defined( __sparcv9) || defined( __sparcv9__) | |
| | | #if !defined( FLM_64BIT) | |
| | | #error Platform word size is incorrect | |
| | | #endif | |
| | | #else | |
| | | #if !defined( FLM_32BIT) | |
| | | #error Platform word size is incorrect | |
| | | #endif | |
| | | #endif | |
| | | | |
| | | #ifdef FLM_NLM | |
| | | #define FSTATIC | |
| | | #else | |
| | | #define FSTATIC static | |
| | | #endif | |
| | | | |
| | | // Debug or release build? | |
| | | | |
| | | #ifndef FLM_DEBUG | |
| | | #if defined( DEBUG) || (defined( PRECHECKIN) && PREC | |
| | | HECKIN != 0) | |
| | | #define FLM_DEBUG | |
| | | #endif | |
| | | #endif | |
| | | | |
| | | // Alignment | |
| | | | |
| | | #if defined( FLM_UNIX) || defined( FLM_64BIT) | |
| | | #define FLM_ALLOC_ALIGN | |
| | | 0x0007 | |
| | | #define FLM_ALIGN_SIZE | |
| | | 8 | |
| | | #elif defined( FLM_WIN) || defined( FLM_NLM) | |
| | | #define FLM_ALLOC_ALIGN | |
| | | 0x0003 | |
| | | #define FLM_ALIGN_SIZE | |
| | | 4 | |
| | | #else | |
| | | #error Platform not supported | |
| | | #endif | |
| | | | |
| | | // Basic type definitions | |
| | | | |
| | | #if defined( FLM_UNIX) | |
| | | typedef unsigned long | |
| | | FLMUINT; | |
| | | typedef long | |
| | | FLMINT; | |
| | | typedef unsigned char | |
| | | FLMBYTE; | |
| | | typedef unsigned short | |
| | | FLMUNICODE; | |
| | | | |
| | | typedef unsigned long long | |
| | | FLMUINT64; | |
| | | typedef unsigned int | |
| | | FLMUINT32; | |
| | | typedef unsigned short | |
| | | FLMUINT16; | |
| | | typedef unsigned char | |
| | | FLMUINT8; | |
| | | typedef long long | |
| | | FLMINT64; | |
| | | typedef int | |
| | | FLMINT32; | |
| | | typedef short | |
| | | FLMINT16; | |
| | | typedef signed char | |
| | | FLMINT8; | |
| | | | |
| | | #if defined( FLM_64BIT) || defined( FLM_OSX) || \ | |
| | | defined( FLM_S390) || defined( FLM_HPUX) || | |
| | | defined( FLM_AIX) | |
| | | typedef unsigned long | |
| | | FLMSIZET; | |
| | | #else | |
| | | typedef unsigned | |
| | | FLMSIZET; | |
| | | #endif | |
| | | #else | |
| | | | |
| | | #if defined( FLM_WIN) | |
| | | | |
| | | #if defined( FLM_64BIT) | |
| | | typedef unsigned __int64 | |
| | | FLMUINT; | |
| | | typedef __int64 | |
| | | FLMINT; | |
| | | typedef unsigned __int64 | |
| | | FLMSIZET; | |
| | | typedef unsigned int | |
| | | FLMUINT32; | |
| | | #elif _MSC_VER >= 1300 | |
| | | typedef unsigned long __w64 FLMU | |
| | | INT; | |
| | | typedef long __w64 | |
| | | FLMINT; | |
| | | typedef __w64 unsigned int | |
| | | FLMUINT32; | |
| | | typedef __w64 unsigned int | |
| | | FLMSIZET; | |
| | | #else | |
| | | typedef unsigned long | |
| | | FLMUINT; | |
| | | typedef long | |
| | | FLMINT; | |
| | | typedef unsigned int | |
| | | FLMUINT32; | |
| | | typedef unsigned int | |
| | | FLMSIZET; | |
| | | #endif | |
| | | #elif defined( FLM_NLM) | |
| | | | |
| | | typedef unsigned long int | |
| | | FLMUINT; | |
| | | typedef long int | |
| | | FLMINT; | |
| | | typedef unsigned long int | |
| | | FLMUINT32; | |
| | | typedef unsigned | |
| | | FLMSIZET; | |
| | | #else | |
| | | #error Platform not supported | |
| | | #endif | |
| | | | |
| | | typedef unsigned char | |
| | | FLMBYTE; | |
| | | typedef unsigned short int | |
| | | FLMUNICODE; | |
| | | | |
| | | typedef unsigned short int | |
| | | FLMUINT16; | |
| | | typedef unsigned char | |
| | | FLMUINT8; | |
| | | typedef signed int | |
| | | FLMINT32; | |
| | | typedef signed short int | |
| | | FLMINT16; | |
| | | typedef signed char | |
| | | FLMINT8; | |
| | | | |
| | | #if defined( __MWERKS__) | |
| | | typedef unsigned long long | |
| | | FLMUINT64; | |
| | | typedef long long | |
| | | FLMINT64; | |
| | | #else | |
| | | typedef unsigned __int64 | |
| | | FLMUINT64; | |
| | | typedef __int64 | |
| | | FLMINT64; | |
| | | #endif | |
| | | | |
| | | #endif | |
| | | | |
| | | #if defined( FLM_WIN) || defined( FLM_NLM) | |
| | | #define FLMATOMIC volatile long | |
| | | #else | |
| | | #define FLMATOMIC volatile int | |
| | | #endif | |
| | | | |
| | | /// \addtogroup retcodes | |
| | | /// @{ | |
| | | typedef FLMINT | |
| | | RCODE; ///< Return code | |
| | | /// @} | |
| | | typedef FLMINT | |
| | | FLMBOOL; | |
| | | | |
| | | #define F_FILENAME_SIZE | |
| | | 256 | |
| | | #define F_PATH_MAX_SIZE | |
| | | 256 | |
| | | #define F_WAITFOREVER | |
| | | (0xFFFFFFFF) | |
| | | | |
| | | #define FLM_MAX_UINT | |
| | | ((FLMUINT)(-1L)) | |
| | | #define FLM_MAX_INT | |
| | | ((FLMINT)(((FLMUINT)(-1L)) >> 1)) | |
| | | #define FLM_MIN_INT | |
| | | ((FLMINT)((((FLMUINT)(-1L)) >> 1) + 1)) | |
| | | #define FLM_MAX_UINT32 | |
| | | ((FLMUINT32)(0xFFFFFFFFL)) | |
| | | #define FLM_MAX_INT32 | |
| | | ((FLMINT32)(0x7FFFFFFFL)) | |
| | | #define FLM_MIN_INT32 | |
| | | ((FLMINT32)(0x80000000L)) | |
| | | #define FLM_MAX_UINT16 | |
| | | ((FLMUINT16)(0xFFFF)) | |
| | | #define FLM_MAX_INT16 | |
| | | ((FLMINT16)(0x7FFF)) | |
| | | #define FLM_MIN_INT16 | |
| | | ((FLMINT16)(0x8000)) | |
| | | #define FLM_MAX_UINT8 | |
| | | ((FLMUINT8)0xFF) | |
| | | | |
| | | #if ((_MSC_VER >= 1200) && (_MSC_VER < 1300)) || defined( FL | |
| | | M_NLM) | |
| | | #define FLM_MAX_UINT64 | |
| | | ((FLMUINT64)(0xFFFFFFFFFFFFFFFFL)) | |
| | | #define FLM_MAX_INT64 | |
| | | ((FLMINT64)(0x7FFFFFFFFFFFFFFFL)) | |
| | | #define FLM_MIN_INT64 | |
| | | ((FLMINT64)(0x8000000000000000L)) | |
| | | #else | |
| | | #define FLM_MAX_UINT64 | |
| | | ((FLMUINT64)(0xFFFFFFFFFFFFFFFFLL)) | |
| | | #define FLM_MAX_INT64 | |
| | | ((FLMINT64)(0x7FFFFFFFFFFFFFFFLL)) | |
| | | #define FLM_MIN_INT64 | |
| | | ((FLMINT64)(0x8000000000000000LL)) | |
| | | #endif | |
| | | | |
| | | #endif | |
| | | | |
| | | // xpcselany keeps MS compilers from complaining about multiple defi | |
| | | nitions | |
| | | | |
| | | #if defined(_MSC_VER) | |
| | | #define xpcselany __declspec(selectany) | |
| | | #else | |
| | | #define xpcselany | |
| | | #endif | |
| | | | |
| | | typedef struct | |
| | | { | |
| | | FLMUINT32 l; | |
| | | FLMUINT16 w1; | |
| | | FLMUINT16 w2; | |
| | | FLMUINT8 b[ 8]; | |
| | | } FLM_GUID; | |
| | | | |
| | | #define RFLMIID const FLM_GUID & | |
| | | #define RFLMCLSID const FLM_GUID & | |
| | | #define FLMGUID FLM_GUID | |
| | | #define FLMCLSID FLM_GUID | |
| | | | |
| | | // FLM_DEFINE_GUID may be used to define or declare a GUID | |
| | | // #define FLM_INIT_GUID before including this header file when | |
| | | // you want to define the guid, all other inclusions will only decla | |
| | | re | |
| | | // the guid, not define it. | |
| | | | |
| | | #if !defined( PCOM_INIT_GUID) | |
| | | #define FLM_DEFINE_GUID( name, l, w1, w2, b1, b2, b3, b4, b5 | |
| | | , b6, b7, b8) \ | |
| | | extern const FLMGUID name | |
| | | #else | |
| | | #define FLM_DEFINE_GUID( name, l, w1, w2, b1, b2, b3, b4, b5 | |
| | | , b6, b7, b8) \ | |
| | | extern const xpcselany FLMGUID name \ | |
| | | = { l, w1, w2, { b1, b2, b3 | |
| | | , b4, b5, b6, b7, b8 } } | |
| | | #endif | |
| | | | |
| | | #define FLMEXTC | |
| | | extern "C" | |
| | | | |
| | | #if defined( FLM_WIN) | |
| | | #define FLMAPI | |
| | | __stdcall | |
| | | #define FLMEXP | |
| | | __declspec(dllexport) | |
| | | #ifdef FLM_DEBUG | |
| | | #define FINLINE | |
| | | inline | |
| | | #else | |
| | | #define FINLINE | |
| | | __forceinline | |
| | | #endif | |
| | | #elif defined( FLM_NLM) | |
| | | #define FLMAPI | |
| | | __stdcall | |
| | | #define FLMEXP | |
| | | #define FINLINE | |
| | | inline | |
| | | #elif defined( FLM_UNIX) | |
| | | #define FLMAPI | |
| | | #define FLMEXP | |
| | | #define FINLINE | |
| | | inline | |
| | | #else | |
| | | #error Platform not supported | |
| | | #endif | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: Argument lists | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | | |
| | | #define f_alignedsize(n) \ | |
| | | ((sizeof(n) + FLM_ALIGN_SIZE - 1) & ~(FLM_ALIGN_SIZE - 1) ) | |
| | | | |
| | | #if defined( FLM_RING_ZERO_NLM) | |
| | | #define f_argsize(x) \ | |
| | | ((sizeof(x)+sizeof(int)-1) & ~(sizeof(int)-1)) | |
| | | | |
| | | typedef unsigned long f_va_list; | |
| | | | |
| | | #define f_va_start(ap, parmN) \ | |
| | | ((void)((ap) = (unsigned long)&(parmN) + f_argsize(p | |
| | | armN))) | |
| | | | |
| | | #define f_va_arg(ap, type) \ | |
| | | (*(type *)(((ap) += f_argsize(type)) - (f_argsize(ty | |
| | | pe)))) | |
| | | | |
| | | #define f_va_end(ap) ((void)0) | |
| | | #else | |
| | | #include <stdarg.h> | |
| | | #define f_va_list va_list | |
| | | #define f_va_start va_start | |
| | | #define f_va_arg va_arg | |
| | | #define f_va_end va_end | |
| | | #endif | |
| | | | |
| | | // flmnovtbl keeps MS compilers from generating vtables for interfac | |
| | | es | |
| | | | |
| | | #ifdef _MSC_VER | |
| | | #define flmnovtbl __declspec( novtable) | |
| | | #else | |
| | | #define flmnovtbl | |
| | | #endif | |
| | | | |
| | | #define flminterface struct flmnovtbl | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: General errors | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | /// \addtogroup retcodes | |
| | | /// @{ | |
| | | | |
| | | #define NE_FLM_OK | |
| | | 0 | |
| | | ///< 0 - Operation was successful. | |
| | | | |
| | | // Error codes that need to be the same as they were for FLAIM | |
| | | | |
| | | #define NE_FLM_BOF_HIT | |
| | | 0xC001 ///< 0xC001 - Beginning | |
| | | of results encountered. | |
| | | #define NE_FLM_EOF_HIT | |
| | | 0xC002 ///< 0xC002 - End of re | |
| | | sults encountered. | |
| | | #define NE_FLM_EXISTS | |
| | | 0xC004 ///< 0xC004 - Object al | |
| | | ready exists. | |
| | | #define NE_FLM_FAILURE | |
| | | 0xC005 ///< 0xC005 - Internal | |
| | | failure. | |
| | | #define NE_FLM_NOT_FOUND | |
| | | 0xC006 ///< 0xC006 - An object | |
| | | was not found. | |
| | | #define NE_FLM_BTREE_ERROR | |
| | | 0xC012 ///< 0xC012 - Corruptio | |
| | | n found in b-tree. | |
| | | #define NE_FLM_BTREE_FULL | |
| | | 0xC013 ///< 0xC013 - B-tree ca | |
| | | nnot grow beyond current size. | |
| | | #define NE_FLM_CONV_DEST_OVERFLOW | |
| | | 0xC01C ///< 0xC01C - Destination buffer not la | |
| | | rge enough to hold data. | |
| | | #define NE_FLM_CONV_ILLEGAL | |
| | | 0xC01D ///< 0xC01D - Attempt to conver | |
| | | t between data types is an unsupported conversion. | |
| | | #define NE_FLM_CONV_NUM_OVERFLOW | |
| | | 0xC020 ///< 0xC020 - Numeric overflow | |
| | | (> upper bound) converting to numeric type. | |
| | | #define NE_FLM_DATA_ERROR | |
| | | 0xC022 ///< 0xC022 - Corruptio | |
| | | n found in b-tree. | |
| | | #define NE_FLM_ILLEGAL_OP | |
| | | 0xC026 ///< 0xC026 - Illegal o | |
| | | peration | |
| | | #define NE_FLM_MEM | |
| | | 0xC037 ///< 0xC037 - A | |
| | | ttempt to allocate memory failed. | |
| | | #define NE_FLM_NOT_UNIQUE | |
| | | 0xC03E ///< 0xC03E - Non-uniqu | |
| | | e key. | |
| | | #define NE_FLM_SYNTAX | |
| | | 0xC045 ///< 0xC045 - Syntax er | |
| | | ror while parsing. | |
| | | #define NE_FLM_NOT_IMPLEMENTED | |
| | | 0xC05F ///< 0xC05F - Attempt was made to use a | |
| | | feature that is not implemented. | |
| | | #define NE_FLM_INVALID_PARM | |
| | | 0xC08B ///< 0xC08B - Invalid parameter | |
| | | passed into a function. | |
| | | | |
| | | // I/O Errors - Must be the same as they were for FLAIM. | |
| | | | |
| | | #define NE_FLM_IO_ACCESS_DENIED | |
| | | 0xC201 ///< 0xC201 - Access to file is denied. | |
| | | \ Caller is not allowed access to a file. | |
| | | #define NE_FLM_IO_BAD_FILE_HANDLE | |
| | | 0xC202 ///< 0xC202 - Bad file handle or file d | |
| | | escriptor. | |
| | | #define NE_FLM_IO_COPY_ERR | |
| | | 0xC203 ///< 0xC203 - Error occ | |
| | | urred while copying a file. | |
| | | #define NE_FLM_IO_DISK_FULL | |
| | | 0xC204 ///< 0xC204 - Disk full. | |
| | | #define NE_FLM_IO_END_OF_FILE | |
| | | 0xC205 ///< 0xC205 - End of file reach | |
| | | ed while reading from the file. | |
| | | #define NE_FLM_IO_OPEN_ERR | |
| | | 0xC206 ///< 0xC206 - Error whi | |
| | | le opening the file. | |
| | | #define NE_FLM_IO_SEEK_ERR | |
| | | 0xC207 ///< 0xC207 - Error occ | |
| | | urred while positioning (seeking) within a file. | |
| | | #define NE_FLM_IO_DIRECTORY_ERR | |
| | | 0xC208 ///< 0xC208 - Error occurred while acce | |
| | | ssing or deleting a directory. | |
| | | #define NE_FLM_IO_PATH_NOT_FOUND | |
| | | 0xC209 ///< 0xC209 - File not found. | |
| | | #define NE_FLM_IO_TOO_MANY_OPEN_FILES | |
| | | 0xC20A ///< 0xC20A - Too many files open. | |
| | | #define NE_FLM_IO_PATH_TOO_LONG | |
| | | 0xC20B ///< 0xC20B - File name too long. | |
| | | #define NE_FLM_IO_NO_MORE_FILES | |
| | | 0xC20C ///< 0xC20C - No more files in director | |
| | | y. | |
| | | #define NE_FLM_IO_DELETING_FILE | |
| | | 0xC20D ///< 0xC20D - Error occurred while dele | |
| | | ting a file. | |
| | | #define NE_FLM_IO_FILE_LOCK_ERR | |
| | | 0xC20E ///< 0xC20E - Error attempting to acqui | |
| | | re a byte-range lock on a file. | |
| | | #define NE_FLM_IO_FILE_UNLOCK_ERR | |
| | | 0xC20F ///< 0xC20F - Error attempting to relea | |
| | | se a byte-range lock on a file. | |
| | | #define NE_FLM_IO_PATH_CREATE_FAILURE | |
| | | 0xC210 ///< 0xC210 - Error occurred while attempting t | |
| | | o create a directory or sub-directory. | |
| | | #define NE_FLM_IO_RENAME_FAILURE | |
| | | 0xC211 ///< 0xC211 - Error occurred wh | |
| | | ile renaming a file. | |
| | | #define NE_FLM_IO_INVALID_PASSWORD | |
| | | 0xC212 ///< 0xC212 - Invalid file password. | |
| | | #define NE_FLM_SETTING_UP_FOR_READ | |
| | | 0xC213 ///< 0xC213 - Error occurred while sett | |
| | | ing up to perform a file read operation. | |
| | | #define NE_FLM_SETTING_UP_FOR_WRITE | |
| | | 0xC214 ///< 0xC214 - Error occurred while sett | |
| | | ing up to perform a file write operation. | |
| | | #define NE_FLM_IO_CANNOT_REDUCE_PATH | |
| | | 0xC215 ///< 0xC215 - Cannot reduce file name into more | |
| | | components. | |
| | | #define NE_FLM_INITIALIZING_IO_SYSTEM | |
| | | 0xC216 ///< 0xC216 - Error occurred while setting up t | |
| | | o access the file system. | |
| | | #define NE_FLM_FLUSHING_FILE | |
| | | 0xC217 ///< 0xC217 - Error occurred wh | |
| | | ile flushing file data buffers to disk. | |
| | | #define NE_FLM_IO_INVALID_FILENAME | |
| | | 0xC218 ///< 0xC218 - Invalid file name. | |
| | | #define NE_FLM_IO_CONNECT_ERROR | |
| | | 0xC219 ///< 0xC219 - Error connecting to a rem | |
| | | ote network resource. | |
| | | #define NE_FLM_OPENING_FILE | |
| | | 0xC21A ///< 0xC21A - Unexpected error | |
| | | occurred while opening a file. | |
| | | #define NE_FLM_DIRECT_OPENING_FILE | |
| | | 0xC21B ///< 0xC21B - Unexpected error occurred | |
| | | while opening a file in direct access mode. | |
| | | #define NE_FLM_CREATING_FILE | |
| | | 0xC21C ///< 0xC21C - Unexpected error | |
| | | occurred while creating a file. | |
| | | #define NE_FLM_DIRECT_CREATING_FILE | |
| | | 0xC21D ///< 0xC21D - Unexpected error occurred | |
| | | while creating a file in direct access mode. | |
| | | #define NE_FLM_READING_FILE | |
| | | 0xC21E ///< 0xC21E - Unexpected error | |
| | | occurred while reading a file. | |
| | | #define NE_FLM_DIRECT_READING_FILE | |
| | | 0xC21F ///< 0xC21F - Unexpected error occurred | |
| | | while reading a file in direct access mode. | |
| | | #define NE_FLM_WRITING_FILE | |
| | | 0xC220 ///< 0xC220 - Unexpected error | |
| | | occurred while writing to a file. | |
| | | #define NE_FLM_DIRECT_WRITING_FILE | |
| | | 0xC221 ///< 0xC221 - Unexpected error occurred | |
| | | while writing a file in direct access mode. | |
| | | #define NE_FLM_POSITIONING_IN_FILE | |
| | | 0xC222 ///< 0xC222 - Unexpected error occurred | |
| | | while positioning within a file. | |
| | | #define NE_FLM_GETTING_FILE_SIZE | |
| | | 0xC223 ///< 0xC223 - Unexpected error | |
| | | occurred while getting a file's size. | |
| | | #define NE_FLM_TRUNCATING_FILE | |
| | | 0xC224 ///< 0xC224 - Unexpected error occurred | |
| | | while truncating a file. | |
| | | #define NE_FLM_PARSING_FILE_NAME | |
| | | 0xC225 ///< 0xC225 - Unexpected error | |
| | | occurred while parsing a file's name. | |
| | | #define NE_FLM_CLOSING_FILE | |
| | | 0xC226 ///< 0xC226 - Unexpected error | |
| | | occurred while closing a file. | |
| | | #define NE_FLM_GETTING_FILE_INFO | |
| | | 0xC227 ///< 0xC227 - Unexpected error | |
| | | occurred while getting information about a file. | |
| | | #define NE_FLM_EXPANDING_FILE | |
| | | 0xC228 ///< 0xC228 - Unexpected error | |
| | | occurred while expanding a file. | |
| | | #define NE_FLM_GETTING_FREE_BLOCKS | |
| | | 0xC229 ///< 0xC229 - Unexpected error getting | |
| | | free blocks from file system. | |
| | | #define NE_FLM_CHECKING_FILE_EXISTENCE | |
| | | 0xC22A ///< 0xC22A - Unexpected error occurred while c | |
| | | hecking to see if a file exists. | |
| | | #define NE_FLM_RENAMING_FILE | |
| | | 0xC22B ///< 0xC22B - Unexpected error | |
| | | occurred while renaming a file. | |
| | | #define NE_FLM_SETTING_FILE_INFO | |
| | | 0xC22C ///< 0xC22C - Unexpected error | |
| | | occurred while setting a file's information. | |
| | | #define NE_FLM_IO_PENDING | |
| | | 0xC22D ///< 0xC22D - I/O has n | |
| | | ot yet completed | |
| | | #define NE_FLM_ASYNC_FAILED | |
| | | 0xC22E ///< 0xC22E - An async I/O oper | |
| | | ation failed | |
| | | #define NE_FLM_MISALIGNED_IO | |
| | | 0xC22F ///< 0xC22F - Misaligned buffer | |
| | | or offset encountered during I/O request | |
| | | | |
| | | // Stream Errors - These are new | |
| | | | |
| | | #define NE_FLM_STREAM_DECOMPRESS_ERROR | |
| | | 0xC400 ///< 0xC400 - Error decompressing data stream. | |
| | | #define NE_FLM_STREAM_NOT_COMPRESSED | |
| | | 0xC401 ///< 0xC401 - Attempting to decompress a data s | |
| | | tream that is not compressed. | |
| | | #define NE_FLM_STREAM_TOO_MANY_FILES | |
| | | 0xC402 ///< 0xC402 - Too many files in input stream. | |
| | | | |
| | | // Miscellaneous new toolkit errors | |
| | | | |
| | | #define NE_FLM_COULD_NOT_CREATE_SEMAPHORE | |
| | | 0xC500 ///< 0xC500 - Could not create a semaphore. | |
| | | #define NE_FLM_BAD_UTF8 | |
| | | 0xC501 ///< 0xC501 - An invali | |
| | | d byte sequence was found in a UTF-8 string | |
| | | #define NE_FLM_ERROR_WAITING_ON_SEMAPHORE | |
| | | 0xC502 ///< 0xC502 - Error occurred while waiting on a | |
| | | sempahore. | |
| | | #define NE_FLM_BAD_SEN | |
| | | 0xC503 ///< 0xC503 - Invalid s | |
| | | imple encoded number. | |
| | | #define NE_FLM_COULD_NOT_START_THREAD | |
| | | 0xC504 ///< 0xC504 - Problem starting a new thread. | |
| | | #define NE_FLM_BAD_BASE64_ENCODING | |
| | | 0xC505 ///< 0xC505 - Invalid base64 sequence e | |
| | | ncountered. | |
| | | #define NE_FLM_STREAM_EXISTS | |
| | | 0xC506 ///< 0xC506 - Stream file alrea | |
| | | dy exists. | |
| | | #define NE_FLM_MULTIPLE_MATCHES | |
| | | 0xC507 ///< 0xC507 - Multiple items matched bu | |
| | | t only one match was expected. | |
| | | #define NE_FLM_BTREE_KEY_SIZE | |
| | | 0xC508 ///< 0xC508 - Invalid b-tree ke | |
| | | y size. | |
| | | #define NE_FLM_BTREE_BAD_STATE | |
| | | 0xC509 ///< 0xC509 - B-tree operation cannot b | |
| | | e completed. | |
| | | #define NE_FLM_COULD_NOT_CREATE_MUTEX | |
| | | 0xC50A ///< 0xC50A - Error occurred while creating or | |
| | | initializing a mutex. | |
| | | #define NE_FLM_BAD_PLATFORM_FORMAT | |
| | | 0xC50B ///< 0xC50B - In-memory alignment o | |
| | | f disk structures is incorrect | |
| | | #define NE_FLM_LOCK_REQ_TIMEOUT | |
| | | 0xC50C ///< 0xC50C - Timeout while waiting | |
| | | for a lock object | |
| | | #define NE_FLM_WAIT_TIMEOUT | |
| | | 0xC50D ///< 0xC50D - Timeout while wai | |
| | | ting on a semaphore, condition variable, or reader/writer lock | |
| | | | |
| | | // Network Errors - Must be the same as they were for FLAIM | |
| | | | |
| | | #define NE_FLM_NOIP_ADDR | |
| | | 0xC900 ///< 0xC900 - IP addres | |
| | | s not found | |
| | | #define NE_FLM_SOCKET_FAIL | |
| | | 0xC901 ///< 0xC901 - IP socket | |
| | | failure | |
| | | #define NE_FLM_CONNECT_FAIL | |
| | | 0xC902 ///< 0xC902 - TCP/IP connection | |
| | | failure | |
| | | #define NE_FLM_BIND_FAIL | |
| | | 0xC903 ///< 0xC903 - The TCP/I | |
| | | P services on your system may not be configured or installed. | |
| | | #define NE_FLM_LISTEN_FAIL | |
| | | 0xC904 ///< 0xC904 - TCP/IP li | |
| | | sten failed | |
| | | #define NE_FLM_ACCEPT_FAIL | |
| | | 0xC905 ///< 0xC905 - TCP/IP ac | |
| | | cept failed | |
| | | #define NE_FLM_SELECT_ERR | |
| | | 0xC906 ///< 0xC906 - TCP/IP se | |
| | | lect failed | |
| | | #define NE_FLM_SOCKET_SET_OPT_FAIL | |
| | | 0xC907 ///< 0xC907 - TCP/IP socket operation f | |
| | | ailed | |
| | | #define NE_FLM_SOCKET_DISCONNECT | |
| | | 0xC908 ///< 0xC908 - TCP/IP disconnect | |
| | | ed | |
| | | #define NE_FLM_SOCKET_READ_FAIL | |
| | | 0xC909 ///< 0xC909 - TCP/IP read failed | |
| | | #define NE_FLM_SOCKET_WRITE_FAIL | |
| | | 0xC90A ///< 0xC90A - TCP/IP write fail | |
| | | ed | |
| | | #define NE_FLM_SOCKET_READ_TIMEOUT | |
| | | 0xC90B ///< 0xC90B - TCP/IP read timeout | |
| | | #define NE_FLM_SOCKET_WRITE_TIMEOUT | |
| | | 0xC90C ///< 0xC90C - TCP/IP write timeout | |
| | | #define NE_FLM_SOCKET_ALREADY_CLOSED | |
| | | 0xC90D ///< 0xC90D - Connection already closed | |
| | | | |
| | | /// @} | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: Return code functions and macros | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | | |
| | | #ifndef RC_OK | |
| | | #define RC_OK( rc) ((rc) == NE_FLM_OK) | |
| | | #endif | |
| | | | |
| | | #ifndef RC_BAD | |
| | | #define RC_BAD( rc) ((rc) != NE_FLM_OK) | |
| | | #endif | |
| | | | |
| | | RCODE FLMAPI f_mapPlatformError( | |
| | | FLMINT iError, | |
| | | RCODE defa | |
| | | ultRc); | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: Forward References | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | | |
| | | flminterface IF_DirHdl; | |
| | | flminterface IF_FileHdl; | |
| | | flminterface IF_FileSystem; | |
| | | flminterface IF_FileHdlCache; | |
| | | flminterface IF_IStream; | |
| | | flminterface IF_PosIStream; | |
| | | flminterface IF_ResultSet; | |
| | | flminterface IF_ThreadInfo; | |
| | | flminterface IF_OStream; | |
| | | flminterface IF_IOStream; | |
| | | flminterface IF_LogMessageClient; | |
| | | flminterface IF_Thread; | |
| | | flminterface IF_IOBuffer; | |
| | | flminterface IF_AsyncClient; | |
| | | flminterface IF_Block; | |
| | | | |
| | | class F_Pool; | |
| | | class F_DynaBuf; | |
| | | class F_ListItem; | |
| | | class F_ListManager; | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: Cross-platform definitions | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | | |
| | | #ifndef NULL | |
| | | #define NULL 0 | |
| | | #endif | |
| | | | |
| | | #ifndef TRUE | |
| | | #define TRUE 1 | |
| | | #endif | |
| | | | |
| | | #ifndef FALSE | |
| | | #define FALSE 0 | |
| | | #endif | |
| | | | |
| | | #define f_offsetof(s,m) \ | |
| | | (((FLMSIZET)&((s *)1)->m) - 1) | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: Language constants | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | | |
| | | /// \addtogroup flm_languages | |
| | | /// @{ | |
| | | #define FLM_US_LANG | |
| | | 0 ///< English, United States | |
| | | #define FLM_AF_LANG | |
| | | 1 ///< Afrikaans | |
| | | #define FLM_AR_LANG | |
| | | 2 ///< Arabic | |
| | | #define FLM_CA_LANG | |
| | | 3 ///< Catalan | |
| | | #define FLM_HR_LANG | |
| | | 4 ///< Croatian | |
| | | #define FLM_CZ_LANG | |
| | | 5 ///< Czech | |
| | | #define FLM_DK_LANG | |
| | | 6 ///< Danish | |
| | | #define FLM_NL_LANG | |
| | | 7 ///< Dutch | |
| | | #define FLM_OZ_LANG | |
| | | 8 ///< English, Australia | |
| | | #define FLM_CE_LANG | |
| | | 9 ///< English, Canada | |
| | | #define FLM_UK_LANG | |
| | | 10 ///< English, United Kingdom | |
| | | #define FLM_FA_LANG | |
| | | 11 ///< Farsi | |
| | | #define FLM_SU_LANG | |
| | | 12 ///< Finnish | |
| | | #define FLM_CF_LANG | |
| | | 13 ///< French, Canada | |
| | | #define FLM_FR_LANG | |
| | | 14 ///< French, France | |
| | | #define FLM_GA_LANG | |
| | | 15 ///< Galician | |
| | | #define FLM_DE_LANG | |
| | | 16 ///< German, Germany | |
| | | #define FLM_SD_LANG | |
| | | 17 ///< German, Switzerland | |
| | | #define FLM_GR_LANG | |
| | | 18 ///< Greek | |
| | | #define FLM_HE_LANG | |
| | | 19 ///< Hebrew | |
| | | #define FLM_HU_LANG | |
| | | 20 ///< Hungarian | |
| | | #define FLM_IS_LANG | |
| | | 21 ///< Icelandic | |
| | | #define FLM_IT_LANG | |
| | | 22 ///< Italian | |
| | | #define FLM_NO_LANG | |
| | | 23 ///< Norwegian | |
| | | #define FLM_PL_LANG | |
| | | 24 ///< Polish | |
| | | #define FLM_BR_LANG | |
| | | 25 ///< Portuguese, Brazil | |
| | | #define FLM_PO_LANG | |
| | | 26 ///< Portuguese, Portugal | |
| | | #define FLM_RU_LANG | |
| | | 27 ///< Russian | |
| | | #define FLM_SL_LANG | |
| | | 28 ///< Slovak | |
| | | #define FLM_ES_LANG | |
| | | 29 ///< Spanish | |
| | | #define FLM_SV_LANG | |
| | | 30 ///< Swedish | |
| | | #define FLM_YK_LANG | |
| | | 31 ///< Ukrainian | |
| | | #define FLM_UR_LANG | |
| | | 32 ///< Urdu | |
| | | #define FLM_TK_LANG | |
| | | 33 ///< Turkey | |
| | | #define FLM_JP_LANG | |
| | | 34 ///< Japanese | |
| | | #define FLM_KO_LANG | |
| | | 35 ///< Korean | |
| | | #define FLM_CT_LANG | |
| | | 36 ///< Chinese-Traditional | |
| | | #define FLM_CS_LANG | |
| | | 37 ///< Chinese-Simplified | |
| | | #define FLM_LA_LANG | |
| | | 38 ///< another Asian language | |
| | | /// @} | |
| | | | |
| | | #define FLM_LAST_LANG | |
| | | (FLM_LA_LANG + 1) | |
| | | #define FLM_FIRST_DBCS_LANG (FLM | |
| | | _JP_LANG) | |
| | | #define FLM_LAST_DBCS_LANG | |
| | | (FLM_LA_LANG) | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: Collation flags and constants | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | | |
| | | #define F_HAD_SUB_COLLATION 0x01 | |
| | | // Set if had sub-collating values-diacritics | |
| | | #define F_HAD_LOWER_CASE | |
| | | 0x02 // Set if you hit a lowercase character | |
| | | #define F_COLL_FIRST_SUBSTRING 0x03 | |
| | | // First substring marker | |
| | | #define F_COLL_MARKER | |
| | | 0x04 // Marks place of sub-collation | |
| | | | |
| | | #define F_SC_LOWER | |
| | | 0x00 // Only lowercase characters exist | |
| | | #define F_SC_MIXED | |
| | | 0x01 // Lower/uppercase flags follow in next | |
| | | byte | |
| | | #define F_SC_UPPER | |
| | | 0x02 // Only upper characters exist | |
| | | #define F_SC_SUB_COL | |
| | | 0x03 // Sub-collation follows (diacritics|ex | |
| | | tCh) | |
| | | | |
| | | #define F_COLL_TRUNCATED | |
| | | 0x0C // This key piece has been truncated from origi | |
| | | nal | |
| | | #define F_MAX_COL_OPCODE | |
| | | F_COLL_TRUNCATED | |
| | | | |
| | | #define F_CHSASCI | |
| | | 0 // ASCII | |
| | | #define F_CHSMUL1 | |
| | | 1 // Multinational 1 | |
| | | #define F_CHSMUL2 | |
| | | 2 // Multinational 2 | |
| | | #define F_CHSBOXD | |
| | | 3 // Box drawing | |
| | | #define F_CHSSYM1 | |
| | | 4 // Typographic Symbols | |
| | | #define F_CHSSYM2 | |
| | | 5 // Iconic Symbols | |
| | | #define F_CHSMATH | |
| | | 6 // Math | |
| | | #define F_CHMATHX | |
| | | 7 // Math Extension | |
| | | #define F_CHSGREK | |
| | | 8 // Greek | |
| | | #define F_CHSHEB | |
| | | 9 // Hebrew | |
| | | #define F_CHSCYR | |
| | | 10 // Cyrillic | |
| | | #define F_CHSKANA | |
| | | 11 // Japanese Kana | |
| | | #define F_CHSUSER | |
| | | 12 // User-defined | |
| | | #define F_CHSARB1 | |
| | | 13 // Arabic | |
| | | #define F_CHSARB2 | |
| | | 14 // Arabic script | |
| | | | |
| | | #define F_NCHSETS | |
| | | 15 // # of character sets | |
| | | (excluding asian) | |
| | | #define F_ACHSETS | |
| | | 0x0E0 // maximum character set value | |
| | | - asian | |
| | | #define F_ACHSMIN | |
| | | 0x024 // minimum character set value | |
| | | - asian | |
| | | #define F_ACHCMAX | |
| | | 0x0FE // maxmimum character value in | |
| | | asian sets | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: Diacritics | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | | |
| | | #define F_GRAVE | |
| | | 0 | |
| | | #define F_CENTERD | |
| | | 1 | |
| | | #define F_TILDE | |
| | | 2 | |
| | | #define F_CIRCUM | |
| | | 3 | |
| | | #define F_CROSSB | |
| | | 4 | |
| | | #define F_SLASH | |
| | | 5 | |
| | | #define F_ACUTE | |
| | | 6 | |
| | | #define F_UMLAUT | |
| | | 7 | |
| | | #define F_MACRON | |
| | | 8 | |
| | | | |
| | | #define F_APOSAB | |
| | | 9 | |
| | | #define F_APOSBES | |
| | | 10 | |
| | | #define F_APOSBA | |
| | | 11 | |
| | | | |
| | | #define F_RING | |
| | | 14 | |
| | | #define F_DOTA | |
| | | 15 | |
| | | #define F_DACUTE | |
| | | 16 | |
| | | #define F_CEDILLA | |
| | | 17 | |
| | | #define F_OGONEK | |
| | | 18 | |
| | | #define F_CARON | |
| | | 19 | |
| | | #define F_STROKE | |
| | | 20 | |
| | | | |
| | | #define F_BREVE | |
| | | 22 | |
| | | #define F_DOTLESI | |
| | | 239 | |
| | | #define F_DOTLESJ | |
| | | 25 | |
| | | | |
| | | #define F_GACUTE | |
| | | 83 // greek acute | |
| | | #define F_GDIA | |
| | | 84 // greek diaere | |
| | | sis | |
| | | #define F_GACTDIA | |
| | | 85 // acute diaere | |
| | | sis | |
| | | #define F_GGRVDIA | |
| | | 86 // grave diaere | |
| | | sis | |
| | | #define F_GGRAVE | |
| | | 87 // greek grave | |
| | | #define F_GCIRCM | |
| | | 88 // greek circum | |
| | | flex | |
| | | #define F_GSMOOTH | |
| | | 89 // smooth breat | |
| | | hing | |
| | | #define F_GROUGH | |
| | | 90 // rough breath | |
| | | ing | |
| | | #define F_GIOTA | |
| | | 91 // iota subscript | |
| | | #define F_GSMACT | |
| | | 92 // smooth breat | |
| | | hing acute | |
| | | #define F_GRGACT | |
| | | 93 // rough breath | |
| | | ing acute | |
| | | #define F_GSMGRV | |
| | | 94 // smooth breat | |
| | | hing grave | |
| | | #define F_GRGGRV | |
| | | 95 // rough breath | |
| | | ing grave | |
| | | #define F_GSMCIR | |
| | | 96 // smooth breat | |
| | | hing circumflex | |
| | | #define F_GRGCIR | |
| | | 97 // rough breath | |
| | | ing circumflex | |
| | | #define F_GACTIO | |
| | | 98 // acute iota | |
| | | #define F_GGRVIO | |
| | | 99 // grave iota | |
| | | #define F_GCIRIO | |
| | | 100 // circumflex iota | |
| | | #define F_GSMIO | |
| | | 101 // smooth iota | |
| | | #define F_GRGIO | |
| | | 102 // rough iota | |
| | | #define F_GSMAIO | |
| | | 103 // smooth acute iota | |
| | | #define F_GRGAIO | |
| | | 104 // rough acute iota | |
| | | #define F_GSMGVIO | |
| | | 105 // smooth grave iota | |
| | | #define F_GRGGVIO | |
| | | 106 // rough grave iota | |
| | | #define F_GSMCIO | |
| | | 107 // smooth circumflex io | |
| | | ta | |
| | | #define F_GRGCIO | |
| | | 108 // rough circumflex iot | |
| | | a | |
| | | #define F_GHPRIME | |
| | | 81 // high prime | |
| | | #define F_GLPRIME | |
| | | 82 // low prime | |
| | | | |
| | | #define F_RACUTE | |
| | | 200 // russian acute | |
| | | #define F_RGRAVE | |
| | | 201 // russian grave | |
| | | #define F_RRTDESC | |
| | | 204 // russian right descen | |
| | | der | |
| | | #define F_ROGONEK | |
| | | 205 // russian ogonek | |
| | | #define F_RMACRON | |
| | | 206 // russian macron | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: I/O Flags | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | #define FLM_IO_CURRENT_POS | |
| | | FLM_MAX_UINT64 | |
| | | | |
| | | #define FLM_IO_RDONLY | |
| | | 0x0001 | |
| | | #define FLM_IO_RDWR | |
| | | 0x0002 | |
| | | #define FLM_IO_EXCL | |
| | | 0x0004 | |
| | | #define FLM_IO_CREATE_DIR | |
| | | 0x0008 | |
| | | #define FLM_IO_SH_DENYRW | |
| | | 0x0010 | |
| | | #define FLM_IO_SH_DENYWR | |
| | | 0x0020 | |
| | | #define FLM_IO_SH_DENYNONE | |
| | | 0x0040 | |
| | | #define FLM_IO_DIRECT | |
| | | 0x0080 | |
| | | #define FLM_IO_DELETE_ON_RELEASE 0x01 | |
| | | 00 | |
| | | #define FLM_IO_NO_MISALIGNED 0x02 | |
| | | 00 | |
| | | | |
| | | // File Positioning Definitions | |
| | | | |
| | | #define FLM_IO_SEEK_SET | |
| | | 0 // Beginning of File | |
| | | #define FLM_IO_SEEK_CUR | |
| | | 1 // Current File Pointer Position | |
| | | #define FLM_IO_SEEK_END | |
| | | 2 // End of File | |
| | | | |
| | | // Maximum file size | |
| | | | |
| | | #define FLM_MAXIMUM_FILE_SIZE 0xFF | |
| | | FC0000 | |
| | | | |
| | | // Maximum SEN (compressed number) length | |
| | | | |
| | | #define FLM_MAX_SEN_LEN | |
| | | 9 | |
| | | | |
| | | // Retrieval flags | |
| | | | |
| | | #define FLM_INCL | |
| | | 0x0010 | |
| | | #define FLM_EXCL | |
| | | 0x0020 | |
| | | #define FLM_EXACT | |
| | | 0x0040 | |
| | | #define FLM_KEY_EXACT | |
| | | 0x0080 | |
| | | #define FLM_FIRST | |
| | | 0x0100 | |
| | | #define FLM_LAST | |
| | | 0x0200 | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: Comparison flags for strings | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | /// \addtogroup compare_rules | |
| | | /// @{ | |
| | | #define FLM_COMP_CASE_INSENSITIVE 0x0001 | |
| | | ///< 0x0001 = Do case sensitive comparison. | |
| | | #define FLM_COMP_COMPRESS_WHITESPACE 0x0002 ///< | |
| | | 0x0002 = Compare multiple whitespace characters as a single space. | |
| | | #define FLM_COMP_NO_WHITESPACE 0x0004 | |
| | | ///< 0x0004 = Ignore all whitespace during comparison. | |
| | | #define FLM_COMP_NO_UNDERSCORES 0x0008 | |
| | | ///< 0x0008 = Ignore all underscore characters during comparison. | |
| | | #define FLM_COMP_NO_DASHES | |
| | | 0x0010 ///< 0x0010 = Ignore all dash characters during compari | |
| | | son. | |
| | | #define FLM_COMP_WHITESPACE_AS_SPACE 0x0020 ///< | |
| | | 0x0020 = Treat newlines and tabs as spaces during comparison. | |
| | | #define FLM_COMP_IGNORE_LEADING_SPACE 0x0040 ///< | |
| | | 0x0040 = Ignore leading space characters during comparison. | |
| | | #define FLM_COMP_IGNORE_TRAILING_SPACE 0x0080 ///< | |
| | | 0x0080 = Ignore trailing space characters during comparison. | |
| | | #define FLM_COMP_WILD | |
| | | 0x0100 | |
| | | /// @} | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: Colors | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | /// Colors used for logging messages | |
| | | typedef enum | |
| | | { | |
| | | FLM_BLACK = 0, ///< 0 = Bla | |
| | | ck | |
| | | FLM_BLUE, ///< | |
| | | 1 = Blue | |
| | | FLM_GREEN, ///< | |
| | | 2 = Green | |
| | | FLM_CYAN, ///< | |
| | | 3 = Cyan | |
| | | FLM_RED, | |
| | | ///< 4 = Red | |
| | | FLM_MAGENTA, ///< 5 = Mag | |
| | | enta | |
| | | FLM_BROWN, ///< | |
| | | 6 = Brown | |
| | | FLM_LIGHTGRAY, ///< 7 = Lig | |
| | | ht Gray | |
| | | FLM_DARKGRAY, ///< 8 = Dar | |
| | | k Gray | |
| | | FLM_LIGHTBLUE, ///< 9 = Lig | |
| | | ht Blue | |
| | | FLM_LIGHTGREEN, ///< 10 = Light Gree | |
| | | n | |
| | | FLM_LIGHTCYAN, ///< 11 = Li | |
| | | ght Cyan | |
| | | FLM_LIGHTRED, ///< 12 = Li | |
| | | ght Red | |
| | | FLM_LIGHTMAGENTA, ///< 13 = Li | |
| | | ght Magenta | |
| | | FLM_YELLOW, ///< | |
| | | 14 = Light Yellow | |
| | | FLM_WHITE, ///< | |
| | | 15 = White | |
| | | FLM_NUM_COLORS, | |
| | | FLM_CURRENT_COLOR | |
| | | } eColorType; | |
| | | | |
| | | #define F_FOREBLACK "%0F" | |
| | | #define F_FOREBLUE "%1F" | |
| | | #define F_FOREGREEN "%2F" | |
| | | #define F_FORECYAN "%3F" | |
| | | #define F_FORERED "%4F" | |
| | | #define F_FOREMAGENTA "%5F" | |
| | | #define F_FOREBROWN "%6F" | |
| | | #define F_FORELIGHTGRAY "%7F" | |
| | | #define F_FOREDARKGRAY "%8F" | |
| | | #define F_FORELIGHTBLUE "%9F" | |
| | | #define F_FORELIGHTGREEN "%10F" | |
| | | #define F_FORELIGHTCYAN "%11F" | |
| | | #define F_FORELIGHTRED "%12F" | |
| | | #define F_FORELIGHTMAGENTA "%13F" | |
| | | #define F_FOREYELLOW "%14F" | |
| | | #define F_FOREWHITE "%15F" | |
| | | | |
| | | #define F_BACKBLACK "%0B" | |
| | | #define F_BACKBLUE "%1B" | |
| | | #define F_BACKGREEN "%2B" | |
| | | #define F_BACKCYAN "%3B" | |
| | | #define F_BACKRED "%4B" | |
| | | #define F_BACKMAGENTA "%5B" | |
| | | #define F_BACKBROWN "%6B" | |
| | | #define F_BACKLIGHTGRAY "%7B" | |
| | | #define F_BACKDARKGRAY "%8B" | |
| | | #define F_BACKLIGHTBLUE "%9B" | |
| | | #define F_BACKLIGHTGREEN "%10B" | |
| | | #define F_BACKLIGHTCYAN "%11B" | |
| | | #define F_BACKLIGHTRED "%12B" | |
| | | #define F_BACKLIGHTMAGENTA "%13B" | |
| | | #define F_BACKYELLOW "%14B" | |
| | | #define F_BACKWHITE "%15B" | |
| | | | |
| | | #define F_PUSH_FORECOLOR "%+F" | |
| | | #define F_POP_FORECOLOR "%-F" | |
| | | | |
| | | #define F_PUSH_BACKCOLOR "%+B" | |
| | | #define F_POP_BACKCOLOR "%-B" | |
| | | | |
| | | #define F_PUSHCOLOR F_PUSH_FORECOLOR F_PUSH_BACK | |
| | | COLOR | |
| | | #define F_POPCOLOR F_POP_FORECOLOR F_POP_BACKCO | |
| | | LOR | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | /// Structure for reporting slab usage information in cache. | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | typedef struct | |
| | | { | |
| | | FLMUINT64 ui64Slabs; | |
| | | ///< Total slabs currently allocated. | |
| | | FLMUINT64 ui64SlabBytes; | |
| | | ///< Total bytes currently allocated in slabs. | |
| | | FLMUINT64 ui64AllocatedCells; | |
| | | ///< Total cells allocated within slabs. | |
| | | FLMUINT64 ui64FreeCells; | |
| | | ///< Total cells that are free within slabs. | |
| | | } FLM_SLAB_USAGE; | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | /// Structure returned from FlmGetThreadInfo() - contains informatio | |
| | | n about a thread. | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | typedef struct | |
| | | { | |
| | | FLMUINT uiThreadId; ///< | |
| | | Operating system thread ID. | |
| | | FLMUINT uiThreadGroup; ///< Thread | |
| | | group this thread belongs to. | |
| | | FLMUINT uiAppId; | |
| | | ///< Application ID that was assigned to the thread when it was started | |
| | | . | |
| | | FLMUINT uiStartTime; ///< Time th | |
| | | e thread was started. | |
| | | char * pszThreadName; ///< Name of | |
| | | the thread. | |
| | | char * pszThreadStatus; ///< String | |
| | | indicating the last action the thread reported it was performing. | |
| | | } F_THREAD_INFO; | |
| | | | |
| | | typedef enum | |
| | | { | |
| | | FLM_THREAD_STATUS_UNKNOWN = 0, | |
| | | FLM_THREAD_STATUS_INITIALIZING, | |
| | | FLM_THREAD_STATUS_RUNNING, | |
| | | FLM_THREAD_STATUS_SLEEPING, | |
| | | FLM_THREAD_STATUS_TERMINATING | |
| | | } eThreadStatus; | |
| | | | |
| | | #define F_THREAD_MIN_STACK_SIZE (16 * 1024) | |
| | | #define F_THREAD_DEFAULT_STACK_SIZE (16 * 1024) | |
| | | | |
| | | #define F_DEFAULT_THREAD_GROUP 0 | |
| | | #define F_INVALID_THREAD_GROUP 0xFFFFFFFF | |
| | | | |
| | | typedef RCODE (FLMAPI * F_THREAD_FUNC)(IF_Thread *); | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: Startup and shutdown | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | | |
| | | RCODE FLMAPI ftkStartup( void); | |
| | | | |
| | | void FLMAPI ftkShutdown( void); | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: Global data | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | | |
| | | extern FLMUINT16 * gv_pui16USCollationTable; | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | /// This is a pure virtual base class that other classes inherit fro | |
| | | m.\ It | |
| | | /// provides methods for reference counting (AddRef, Release). | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | flminterface FLMEXP IF_Object | |
| | | { | |
| | | virtual ~IF_Object() | |
| | | { | |
| | | } | |
| | | | |
| | | virtual FLMINT FLMAPI AddRef( void) = 0; | |
| | | | |
| | | virtual FLMINT FLMAPI Release( void) = 0; | |
| | | | |
| | | virtual FLMINT FLMAPI getRefCount( void) = 0; | |
| | | }; | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | /// This is the base class that all other classes inherit from.\ I | |
| | | t | |
| | | /// provides methods for reference counting (AddRef, Release) as wel | |
| | | l as | |
| | | /// methods for overloading new and delete operators. | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | class FLMEXP F_Object : public IF_Object | |
| | | { | |
| | | public: | |
| | | | |
| | | F_Object() | |
| | | { | |
| | | m_refCnt = 1; | |
| | | } | |
| | | | |
| | | virtual ~F_Object() | |
| | | { | |
| | | } | |
| | | | |
| | | /// Increment the reference count for this object. | |
| | | /// The reference count is the number of pointers that are r | |
| | | eferencing this object. | |
| | | /// Return value is the incremented reference count. | |
| | | virtual FLMINT FLMAPI AddRef( void); | |
| | | | |
| | | /// Decrement the reference count for this object. | |
| | | /// The reference count is the number of pointers that are r | |
| | | eferencing this object. | |
| | | /// Return value is the decremented reference count. If the | |
| | | reference count goes to | |
| | | /// zero, the object will be deleted. | |
| | | virtual FLMINT FLMAPI Release( void); | |
| | | | |
| | | /// Return the current reference count on the object. | |
| | | virtual FLMINT FLMAPI getRefCount( void); | |
| | | | |
| | | /// Overloaded new operator for objects of this class. | |
| | | void * FLMAPI operator new( | |
| | | FLMSIZET uiSize, | |
| | | ///< Number of bytes to allocate - should be sizeof( ThisClass) | |
| | | . | |
| | | const char * pszFile, | |
| | | ///< Name of source file where this allocation is made. | |
| | | int iLine) | |
| | | ///< Line number in source file where this allocation request i | |
| | | s made. | |
| | | #ifndef FLM_WATCOM_NLM | |
| | | throw() | |
| | | #endif | |
| | | ; | |
| | | | |
| | | /// Overloaded new operator for objects of this class. | |
| | | void * FLMAPI operator new( | |
| | | FLMSIZET uiSize) | |
| | | ///< Number of bytes to allocate - should be sizeof( ThisClass) | |
| | | . | |
| | | #ifndef FLM_WATCOM_NLM | |
| | | throw() | |
| | | #endif | |
| | | ; | |
| | | | |
| | | /// Overloaded new operator (array) for objects of this clas | |
| | | s (with source file and line number). | |
| | | /// This new operator is called when an array of objects of | |
| | | this class are allocated. | |
| | | /// This new operator passes in the current file and line nu | |
| | | mber. This information is | |
| | | /// useful in tracking memory allocations to determine where | |
| | | memory leaks are coming from. | |
| | | void * FLMAPI operator new[]( | |
| | | FLMSIZET uiSize, | |
| | | ///< Number of bytes to allocate - should be sizeof( ThisClass) | |
| | | . | |
| | | const char * pszFile, | |
| | | ///< Name of source file where this allocation is made. | |
| | | int iLine) | |
| | | ///< Line number in source file where this allocation request i | |
| | | s made. | |
| | | #ifndef FLM_WATCOM_NLM | |
| | | throw() | |
| | | #endif | |
| | | ; | |
| | | | |
| | | /// Overloaded new operator (array) for objects of this clas | |
| | | s. | |
| | | /// This new operator is called when an array of objects of | |
| | | this class are allocated. | |
| | | void * FLMAPI operator new[]( | |
| | | FLMSIZET uiSize) | |
| | | ///< Number of bytes to allocate - should be sizeof( ThisClass) | |
| | | . | |
| | | #ifndef FLM_WATCOM_NLM | |
| | | throw() | |
| | | #endif | |
| | | ; | |
| | | | |
| | | /// Overloaded delete operator for objects of this class. | |
| | | void FLMAPI operator delete( | |
| | | void * ptr); | |
| | | ///< Pointer to object being freed. | |
| | | | |
| | | /// Overloaded delete operator (array) for objects of this c | |
| | | lass. | |
| | | void FLMAPI operator delete[]( | |
| | | void * ptr); | |
| | | ///< Pointer to array of objects being freed. | |
| | | | |
| | | #ifndef FLM_WATCOM_NLM | |
| | | /// Overloaded delete operator for objects of this class (wi | |
| | | th source file and line number). | |
| | | /// This delete operator passes in the current file and line | |
| | | number. This information is | |
| | | /// useful in tracking memory allocations to determine where | |
| | | memory leaks are coming from. | |
| | | void FLMAPI operator delete( | |
| | | void * ptr, | |
| | | ///< Pointer to object being freed. | |
| | | const char * file, | |
| | | ///< Name of source file where this delete occurs. | |
| | | int line); | |
| | | ///< Line number in source file where this delete occurs. | |
| | | #endif | |
| | | | |
| | | #ifndef FLM_WATCOM_NLM | |
| | | /// Overloaded delete operator (array) for objects of this c | |
| | | lass (with source file and line number). | |
| | | /// This delete operator is called when an array of objects | |
| | | of this class is freed. | |
| | | /// This delete operator passes in the current file and line | |
| | | number. This information is | |
| | | /// useful in tracking memory allocations to determine where | |
| | | memory leaks are coming from. | |
| | | void FLMAPI operator delete[]( | |
| | | void * ptr, | |
| | | ///< Pointer to object being freed. | |
| | | const char * file, | |
| | | ///< Name of source file where this delete occurs. | |
| | | int line); | |
| | | ///< Line number in source file where this delete occurs. | |
| | | #endif | |
| | | | |
| | | protected: | |
| | | | |
| | | FLMATOMIC m_refCnt; | |
| | | }; | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: Internal base class | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | class FLMEXP F_OSBase | |
| | | { | |
| | | public: | |
| | | | |
| | | F_OSBase() | |
| | | { | |
| | | m_refCnt = 1; | |
| | | } | |
| | | | |
| | | virtual ~F_OSBase() | |
| | | { | |
| | | } | |
| | | | |
| | | void * operator new( | |
| | | FLMSIZET uiSize, | |
| | | const char * pszFile, | |
| | | int iLine) | |
| | | #ifndef FLM_WATCOM_NLM | |
| | | throw() | |
| | | #endif | |
| | | ; | |
| | | | |
| | | void * operator new[]( | |
| | | FLMSIZET uiSize, | |
| | | const char * pszFile, | |
| | | int iLine) | |
| | | #ifndef FLM_WATCOM_NLM | |
| | | throw() | |
| | | #endif | |
| | | ; | |
| | | | |
| | | void operator delete( | |
| | | void * ptr); | |
| | | | |
| | | void operator delete[]( | |
| | | void * ptr); | |
| | | | |
| | | #ifndef FLM_WATCOM_NLM | |
| | | void operator delete( | |
| | | void * ptr, | |
| | | const char * file, | |
| | | int line); | |
| | | #endif | |
| | | | |
| | | #ifndef FLM_WATCOM_NLM | |
| | | void operator delete[]( | |
| | | void * ptr, | |
| | | const char * file, | |
| | | int line); | |
| | | #endif | |
| | | | |
| | | virtual FINLINE FLMINT FLMAPI AddRef( void) | |
| | | { | |
| | | return( ++m_refCnt); | |
| | | } | |
| | | | |
| | | virtual FINLINE FLMINT FLMAPI Release( void) | |
| | | { | |
| | | FLMINT iRefCnt = --m_refCnt; | |
| | | | |
| | | if( !iRefCnt) | |
| | | { | |
| | | delete this; | |
| | | } | |
| | | | |
| | | return( iRefCnt); | |
| | | } | |
| | | | |
| | | virtual FINLINE FLMINT FLMAPI getRefCount( void) | |
| | | { | |
| | | return( m_refCnt); | |
| | | } | |
| | | | |
| | | protected: | |
| | | | |
| | | FLMATOMIC m_refCnt; | |
| | | }; | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: Errors | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | #ifdef FLM_DEBUG | |
| | | RCODE FLMAPI f_makeErr( | |
| | | RCODE rc, | |
| | | const char * pszFile, | |
| | | int iLine, | |
| | | FLMBOOL bAssert); | |
| | | | |
| | | FLMINT FLMAPI f_enterDebugger( | |
| | | const char * pszFile, | |
| | | int iLine); | |
| | | | |
| | | #define RC_SET( rc) \ | |
| | | f_makeErr( rc, __FILE__, __LINE__, FALSE) | |
| | | | |
| | | #define RC_SET_AND_ASSERT( rc) \ | |
| | | f_makeErr( rc, __FILE__, __LINE__, TRUE) | |
| | | | |
| | | #define RC_UNEXPECTED_ASSERT( rc) \ | |
| | | f_makeErr( rc, __FILE__, __LINE__, TRUE) | |
| | | | |
| | | #define f_assert( c) \ | |
| | | (void)((c) ? 0 : f_enterDebugger( __FILE__, __LINE__ | |
| | | )) | |
| | | | |
| | | #define flmAssert( c) \ | |
| | | f_assert( c) | |
| | | #else | |
| | | #define RC_SET( rc) | |
| | | (rc) | |
| | | #define RC_SET_AND_ASSERT( rc) (rc) | |
| | | #define RC_UNEXPECTED_ASSERT( rc) | |
| | | #define f_assert(c) | |
| | | #define flmAssert(c) | |
| | | #endif | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: Memory | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | | |
| | | RCODE FLMAPI f_allocImp( | |
| | | FLMUINT uiSize, | |
| | | void ** ppvPtr, | |
| | | FLMBOOL bFromNewOp, | |
| | | const char * pszFile, | |
| | | int iLine); | |
| | | | |
| | | #define f_alloc(s,p) \ | |
| | | f_allocImp( (s), (void **)(p), FALSE, __FILE__, __LINE__) | |
| | | | |
| | | RCODE FLMAPI f_callocImp( | |
| | | FLMUINT uiSize, | |
| | | void ** ppvPtr, | |
| | | const char * pszFile, | |
| | | int iLine); | |
| | | | |
| | | #define f_calloc(s,p) \ | |
| | | f_callocImp( (s), (void **)(p), __FILE__, __LINE__) | |
| | | | |
| | | RCODE FLMAPI f_reallocImp( | |
| | | FLMUINT uiSize, | |
| | | void ** ppvPtr, | |
| | | const char * pszFile, | |
| | | int iLine); | |
| | | | |
| | | #define f_realloc(s,p) \ | |
| | | f_reallocImp( (s), (void **)(p), __FILE__, __LINE__) | |
| | | | |
| | | RCODE FLMAPI f_recallocImp( | |
| | | FLMUINT uiSize, | |
| | | void ** ppvPtr, | |
| | | const char * pszFile, | |
| | | int iLine); | |
| | | | |
| | | #define f_recalloc(s,p) \ | |
| | | f_recallocImp( (s), (void **)(p), __FILE__, __LINE__) | |
| | | | |
| | | #define f_new \ | |
| | | new( __FILE__, __LINE__) | |
| | | | |
| | | void FLMAPI f_freeImp( | |
| | | void ** ppvPtr, | |
| | | FLMBOOL bFromDelOp); | |
| | | | |
| | | #define f_free(p) \ | |
| | | f_freeImp( (void **)(p), FALSE) | |
| | | | |
| | | void f_resetStackInfoImp( | |
| | | void * pvPtr, | |
| | | const char * pszFileName, | |
| | | int iLineNumber); | |
| | | | |
| | | #define f_resetStackInfo(p) \ | |
| | | f_resetStackInfoImp( (p), __FILE__, __LINE__) | |
| | | | |
| | | FLMUINT f_msize( | |
| | | void * pvPtr); | |
| | | | |
| | | RCODE FLMAPI f_allocAlignedBufferImp( | |
| | | FLMUINT uiMinSize, | |
| | | void ** ppvAlloc); | |
| | | | |
| | | #define f_allocAlignedBuffer(s,p) \ | |
| | | f_allocAlignedBufferImp( (s), (void **)(p)) | |
| | | | |
| | | void FLMAPI f_freeAlignedBufferImp( | |
| | | void ** ppvAlloc); | |
| | | | |
| | | #define f_freeAlignedBuffer(p) \ | |
| | | f_freeAlignedBufferImp( (void **)(p)) | |
| | | | |
| | | RCODE FLMAPI f_getMemoryInfo( | |
| | | FLMUINT64 * pui64TotalPhysMem, | |
| | | FLMUINT64 * pui64AvailPhysMem); | |
| | | | |
| | | FLMBOOL FLMAPI f_canGetMemoryInfo( void); | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | flminterface FLMEXP IF_ThreadInfo : public F_Object | |
| | | { | |
| | | virtual FLMUINT FLMAPI getNumThreads( void) = 0; | |
| | | | |
| | | virtual void FLMAPI getThreadInfo( | |
| | | FLMUINT uiThreadNum, | |
| | | FLMUINT * puiThreadId, | |
| | | FLMUINT * puiThreadGro | |
| | | up, | |
| | | FLMUINT * puiAppId, | |
| | | FLMUINT * puiStartTime | |
| | | , | |
| | | const char ** ppszThreadName, | |
| | | const char ** ppszThreadStatus) = | |
| | | 0; | |
| | | }; | |
| | | | |
| | | RCODE FLMAPI FlmGetThreadInfo( | |
| | | IF_ThreadInfo ** ppThreadInfo); | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | flminterface FLMEXP IF_IStream : public F_Object | |
| | | { | |
| | | virtual RCODE FLMAPI read( | |
| | | void * pvBuffer, | |
| | | FLMUINT uiBytesToRea | |
| | | d, | |
| | | FLMUINT * puiBytesRead | |
| | | = NULL) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI closeStream( void) = 0; | |
| | | }; | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | flminterface FLMEXP IF_PosIStream : public IF_IStream | |
| | | { | |
| | | virtual FLMUINT64 FLMAPI totalSize( void) = 0; | |
| | | | |
| | | virtual FLMUINT64 FLMAPI remainingSize( void) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI positionTo( | |
| | | FLMUINT64 ui64Position | |
| | | ) = 0; | |
| | | | |
| | | virtual FLMUINT64 FLMAPI getCurrPosition( void) = 0; | |
| | | }; | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | flminterface FLMEXP IF_BufferIStream : public IF_PosIStream | |
| | | { | |
| | | virtual RCODE FLMAPI openStream( | |
| | | const char * pucBuffer, | |
| | | FLMUINT uiLength, | |
| | | char ** ppucAllocate | |
| | | dBuffer = NULL) = 0; | |
| | | | |
| | | virtual FLMUINT64 FLMAPI totalSize( void) = 0; | |
| | | | |
| | | virtual FLMUINT64 FLMAPI remainingSize( void) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI closeStream( void) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI positionTo( | |
| | | FLMUINT64 ui64Position | |
| | | ) = 0; | |
| | | | |
| | | virtual FLMUINT64 FLMAPI getCurrPosition( void) = 0; | |
| | | | |
| | | virtual void FLMAPI truncateStream( | |
| | | FLMUINT64 ui64Offset = | |
| | | 0) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI read( | |
| | | void * pvBuffer, | |
| | | FLMUINT uiBytesToRea | |
| | | d, | |
| | | FLMUINT * puiBytesRead | |
| | | ) = 0; | |
| | | | |
| | | virtual const FLMBYTE * FLMAPI getBufferAtCurrentOffset( voi | |
| | | d) = 0; | |
| | | }; | |
| | | | |
| | | RCODE FLMAPI FlmAllocBufferIStream( | |
| | | IF_BufferIStream ** ppIStream); | |
| | | | |
| | | RCODE FLMAPI FlmOpenBufferIStream( | |
| | | const char * pucBuffer, | |
| | | FLMUINT uiLength, | |
| | | IF_PosIStream ** ppIStream); | |
| | | | |
| | | RCODE FLMAPI FlmOpenBase64EncoderIStream( | |
| | | IF_IStream * pSourceIStream, | |
| | | FLMBOOL bLineBreaks, | |
| | | IF_IStream ** ppIStream); | |
| | | | |
| | | RCODE FLMAPI FlmOpenBase64DecoderIStream( | |
| | | IF_IStream * pSourceIStream, | |
| | | IF_IStream ** ppIStream); | |
| | | | |
| | | RCODE FLMAPI FlmOpenFileIStream( | |
| | | const char * pszPath, | |
| | | IF_PosIStream ** ppIStream); | |
| | | | |
| | | RCODE FLMAPI FlmOpenMultiFileIStream( | |
| | | const char * pszDirectory, | |
| | | const char * pszBaseName, | |
| | | IF_IStream ** ppIStream); | |
| | | | |
| | | RCODE FLMAPI FlmOpenBufferedIStream( | |
| | | IF_IStream * pSourceIStream, | |
| | | FLMUINT uiBufferSize | |
| | | , | |
| | | IF_IStream ** ppIStream); | |
| | | | |
| | | RCODE FLMAPI FlmOpenUncompressingIStream( | |
| | | IF_IStream * pIStream, | |
| | | IF_IStream ** ppIStream); | |
| | | | |
| | | RCODE FLMAPI FlmOpenFileOStream( | |
| | | const char * pszFileName, | |
| | | FLMBOOL bTruncateIfE | |
| | | xists, | |
| | | IF_OStream ** ppOStream); | |
| | | | |
| | | RCODE FLMAPI FlmOpenMultiFileOStream( | |
| | | const char * pszDirectory, | |
| | | const char * pszBaseName, | |
| | | FLMUINT uiMaxFileSiz | |
| | | e, | |
| | | FLMBOOL bOkToOverwri | |
| | | te, | |
| | | IF_OStream ** ppStream); | |
| | | | |
| | | RCODE FLMAPI FlmOpenBufferedOStream( | |
| | | IF_OStream * pOStream, | |
| | | FLMUINT uiBufferSize | |
| | | , | |
| | | IF_OStream ** ppOStream); | |
| | | | |
| | | RCODE FLMAPI FlmOpenCompressingOStream( | |
| | | IF_OStream * pOStream, | |
| | | IF_OStream ** ppOStream); | |
| | | | |
| | | RCODE FLMAPI FlmRemoveMultiFileStream( | |
| | | const char * pszDirectory, | |
| | | const char * pszBaseName); | |
| | | | |
| | | RCODE FLMAPI FlmWriteToOStream( | |
| | | IF_IStream * pIStream, | |
| | | IF_OStream * pOStream); | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | | |
| | | typedef struct | |
| | | { | |
| | | FLMUINT64 ui64Position; | |
| | | FLMUNICODE uNextChar; | |
| | | } F_CollStreamPos; | |
| | | | |
| | | flminterface FLMEXP IF_CollIStream : public IF_PosIStream | |
| | | { | |
| | | virtual RCODE FLMAPI openStream( | |
| | | IF_PosIStream * pIStream, | |
| | | FLMBOOL bUnicodeStre | |
| | | am, | |
| | | FLMUINT uiLanguage, | |
| | | FLMUINT uiCompareRul | |
| | | es, | |
| | | FLMBOOL bMayHaveWild | |
| | | Cards) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI closeStream( void) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI read( | |
| | | void * pvBuffer, | |
| | | FLMUINT uiBytesToRea | |
| | | d, | |
| | | FLMUINT * puiBytesRead | |
| | | ) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI read( | |
| | | FLMBOOL bAllowTwoInt | |
| | | oOne, | |
| | | FLMUNICODE * puChar, | |
| | | FLMBOOL * pbCharIsWild | |
| | | , | |
| | | FLMUINT16 * pui16Col, | |
| | | FLMUINT16 * pui16SubCol, | |
| | | FLMBYTE * pucCase) = 0 | |
| | | ; | |
| | | | |
| | | virtual FLMUINT64 FLMAPI totalSize( void) = 0; | |
| | | | |
| | | virtual FLMUINT64 FLMAPI remainingSize( void) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI positionTo( | |
| | | FLMUINT64 ui64Position | |
| | | ) = 0; | |
| | | | |
| | | virtual FLMUINT64 FLMAPI getCurrPosition( void) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI positionTo( | |
| | | F_CollStreamPos * pPos) = 0; | |
| | | | |
| | | virtual void FLMAPI getCurrPosition( | |
| | | F_CollStreamPos * pPos) = 0; | |
| | | }; | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | flminterface FLMEXP IF_OStream : public F_Object | |
| | | { | |
| | | virtual RCODE FLMAPI write( | |
| | | const void * pvBuffer, | |
| | | FLMUINT uiBytesToWri | |
| | | te, | |
| | | FLMUINT * puiBytesWrit | |
| | | ten = NULL) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI closeStream( void) = 0; | |
| | | }; | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | flminterface FLMEXP IF_IOStream : public IF_IStream, public IF_OStre | |
| | | am | |
| | | { | |
| | | #if defined( FLM_WIN) && _MSC_VER < 1300 | |
| | | using IF_IStream::operator delete; | |
| | | #endif | |
| | | }; | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | /// Message severity. | |
| | | typedef enum | |
| | | { | |
| | | F_FATAL_MESSAGE = 0, ///< Indicates that | |
| | | a fatal error occurred - the kind that would normally | |
| | | | |
| | | ///< require a shutdown or other corrective action by an admini | |
| | | strator. | |
| | | F_WARN_MESSAGE, ///< Warning message | |
| | | . | |
| | | F_ERR_MESSAGE, ///< Non-fat | |
| | | al error message. | |
| | | F_INFO_MESSAGE, ///< Information-onl | |
| | | y message. | |
| | | F_DEBUG_MESSAGE ///< Debug message. | |
| | | } eLogMessageSeverity; | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: Logging | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | | |
| | | IF_LogMessageClient * FLMAPI f_beginLogMessage( | |
| | | FLMUINT uiMsgType, | |
| | | eLogMessageSeverity eMsgSeverity); | |
| | | | |
| | | void FLMAPI f_logPrintf( | |
| | | IF_LogMessageClient * pLogMessage, | |
| | | const char * pszFormatStr, ...); | |
| | | | |
| | | void FLMAPI f_logVPrintf( | |
| | | IF_LogMessageClient * pLogMessage, | |
| | | const char * szFormatStr, | |
| | | f_va_list * args); | |
| | | | |
| | | void FLMAPI f_endLogMessage( | |
| | | IF_LogMessageClient ** ppLogMessage); | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | flminterface FLMEXP IF_LoggerClient : public F_Object | |
| | | { | |
| | | virtual IF_LogMessageClient * FLMAPI beginMessage( | |
| | | FLMUINT uiMsgType, | |
| | | eLogMessageSeverity eMsgSeverity = F_DEBUG_MESSA | |
| | | GE) = 0; | |
| | | }; | |
| | | | |
| | | void f_setLoggerClient( | |
| | | IF_LoggerClient * pLogger); | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | /// This is an abstract base class that allows an application to cat | |
| | | ch | |
| | | /// messages. The application must create an implementation for thi | |
| | | s class | |
| | | /// and then return an object of that class when the | |
| | | /// IF_LoggerClient::beginMessage() method is called. | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | flminterface FLMEXP IF_LogMessageClient : public F_Object | |
| | | { | |
| | | /// Set the current foreground and background colors for the | |
| | | message. | |
| | | virtual void FLMAPI changeColor( | |
| | | eColorType eForeColor, | |
| | | eColorType eBackColor) | |
| | | = 0; | |
| | | | |
| | | /// Append a string to the message. This method may be call | |
| | | ed | |
| | | /// multiple times by to format a complete message. The mes | |
| | | sage is not | |
| | | /// complete until the ::endMessage() method is called. | |
| | | virtual void FLMAPI appendString( | |
| | | const char * pszStr) = 0; | |
| | | | |
| | | /// Append a newline to the message. This method is called | |
| | | when a | |
| | | /// multi-line message is being created. Rather than embedd | |
| | | ing a | |
| | | /// newline character, this method is used. This allows an | |
| | | application | |
| | | /// to recognize the fact that there are multiple lines in t | |
| | | he message | |
| | | /// and to log, display, store, etc. (whatever) them accordi | |
| | | ngly. | |
| | | virtual void FLMAPI newline( void) = 0; | |
| | | | |
| | | /// End the current message. The application should finish | |
| | | logging, | |
| | | /// displaying, storing, etc. (whatever) the message. The o | |
| | | bject | |
| | | /// should be reset in case a new message is subsequently st | |
| | | arted. | |
| | | virtual void FLMAPI endMessage( void) = 0; | |
| | | | |
| | | virtual void FLMAPI pushForegroundColor( void) = 0; | |
| | | | |
| | | virtual void FLMAPI popForegroundColor( void) = 0; | |
| | | | |
| | | virtual void FLMAPI pushBackgroundColor( void) = 0; | |
| | | | |
| | | virtual void FLMAPI popBackgroundColor( void) = 0; | |
| | | }; | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | flminterface FLMEXP IF_FileSystem : public F_Object | |
| | | { | |
| | | virtual RCODE FLMAPI createFile( | |
| | | const char * pszFileName, | |
| | | FLMUINT uiIoFlags, | |
| | | IF_FileHdl ** ppFile) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI createUniqueFile( | |
| | | char * pszPath, | |
| | | const char * pszFileExtension, | |
| | | FLMUINT uiIoFlags, | |
| | | IF_FileHdl ** ppFile) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI createLockFile( | |
| | | const char * pszPath, | |
| | | IF_FileHdl ** ppLockFileHdl) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI openFile( | |
| | | const char * pszFileName, | |
| | | FLMUINT uiIoFlags, | |
| | | IF_FileHdl ** ppFile) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI openDir( | |
| | | const char * pszDirName, | |
| | | const char * pszPattern, | |
| | | IF_DirHdl ** ppDir) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI createDir( | |
| | | const char * pszDirName) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI removeDir( | |
| | | const char * pszDirName, | |
| | | FLMBOOL bClear = FAL | |
| | | SE) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI doesFileExist( | |
| | | const char * pszFileName) = 0; | |
| | | | |
| | | virtual FLMBOOL FLMAPI isDir( | |
| | | const char * pszFileName) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI getFileTimeStamp( | |
| | | const char * pszFileName, | |
| | | FLMUINT * puiTimeStamp | |
| | | ) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI getFileSize( | |
| | | const char * pszFileName, | |
| | | FLMUINT64 * pui64FileSiz | |
| | | e) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI deleteFile( | |
| | | const char * pszFileName) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI deleteMultiFileStream( | |
| | | const char * pszDirectory, | |
| | | const char * pszBaseName) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI copyFile( | |
| | | const char * pszSrcFileName, | |
| | | const char * pszDestFileName, | |
| | | FLMBOOL bOverwrite, | |
| | | FLMUINT64 * pui64BytesCo | |
| | | pied) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI copyPartialFile( | |
| | | IF_FileHdl * pSrcFileHdl, | |
| | | FLMUINT64 ui64SrcOffse | |
| | | t, | |
| | | FLMUINT64 ui64SrcSize, | |
| | | IF_FileHdl * pDestFileHdl, | |
| | | FLMUINT64 ui64DestOffs | |
| | | et, | |
| | | FLMUINT64 * pui64BytesCo | |
| | | piedRV) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI renameFile( | |
| | | const char * pszFileName, | |
| | | const char * pszNewFileName) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI setReadOnly( | |
| | | const char * pszFileName, | |
| | | FLMBOOL bReadOnly) = | |
| | | 0; | |
| | | | |
| | | virtual RCODE FLMAPI getSectorSize( | |
| | | const char * pszFileName, | |
| | | FLMUINT * puiSectorSiz | |
| | | e) = 0; | |
| | | | |
| | | virtual void FLMAPI pathCreateUniqueName( | |
| | | FLMUINT * puiTime, | |
| | | char * pFileName, | |
| | | const char * pFileExt, | |
| | | FLMBYTE * pHighChars, | |
| | | FLMBOOL bModext) = 0 | |
| | | ; | |
| | | | |
| | | virtual void FLMAPI pathParse( | |
| | | const char * pszPath, | |
| | | char * pszServer, | |
| | | char * pszVolume, | |
| | | char * pszDirPath, | |
| | | char * pszFileName) | |
| | | = 0; | |
| | | | |
| | | virtual RCODE FLMAPI pathReduce( | |
| | | const char * pszSourcePath, | |
| | | char * pszDestPath, | |
| | | char * pszString) = | |
| | | 0; | |
| | | | |
| | | virtual RCODE FLMAPI pathAppend( | |
| | | char * pszPath, | |
| | | const char * pszPathComponent) = | |
| | | 0; | |
| | | | |
| | | virtual RCODE FLMAPI pathToStorageString( | |
| | | const char * pPath, | |
| | | char * pszString) = | |
| | | 0; | |
| | | | |
| | | virtual FLMBOOL FLMAPI doesFileMatch( | |
| | | const char * pszFileName, | |
| | | const char * pszTemplate) = 0; | |
| | | | |
| | | virtual FLMBOOL FLMAPI canDoAsync( void) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI allocIOBuffer( | |
| | | FLMUINT uiMinSize, | |
| | | IF_IOBuffer ** ppIOBuffer) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI allocFileHandleCache( | |
| | | FLMUINT uiMaxCachedF | |
| | | iles, | |
| | | FLMUINT uiIdleTimeou | |
| | | tSecs, | |
| | | IF_FileHdlCache ** ppFileHdlCache) = 0; | |
| | | }; | |
| | | | |
| | | RCODE FLMAPI FlmGetFileSystem( | |
| | | IF_FileSystem ** ppFileSystem); | |
| | | | |
| | | IF_FileSystem * FLMAPI f_getFileSysPtr( void); | |
| | | | |
| | | FLMUINT FLMAPI f_getOpenFileCount( void); | |
| | | | |
| | | RCODE FLMAPI f_chdir( | |
| | | const char * pszDir); | |
| | | | |
| | | RCODE FLMAPI f_getcwd( | |
| | | char * pszDir); | |
| | | | |
| | | RCODE FLMAPI f_pathReduce( | |
| | | const char * pszSourcePath, | |
| | | char * pszDestPath, | |
| | | char * pszString); | |
| | | | |
| | | RCODE FLMAPI f_pathAppend( | |
| | | char * pszPath, | |
| | | const char * pszPathComponent); | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | flminterface FLMEXP IF_FileHdl : virtual public F_Object | |
| | | { | |
| | | virtual RCODE FLMAPI flush( void) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI read( | |
| | | FLMUINT64 ui64Offset, | |
| | | FLMUINT uiLength, | |
| | | void * pvBuffer, | |
| | | FLMUINT * puiBytesRead | |
| | | = NULL) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI read( | |
| | | FLMUINT64 ui64ReadOffs | |
| | | et, | |
| | | FLMUINT uiBytesToRea | |
| | | d, | |
| | | IF_IOBuffer * pIOBuffer) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI write( | |
| | | FLMUINT64 ui64Offset, | |
| | | FLMUINT uiLength, | |
| | | const void * pvBuffer, | |
| | | FLMUINT * puiBytesWrit | |
| | | ten = NULL) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI write( | |
| | | FLMUINT64 ui64WriteOff | |
| | | set, | |
| | | FLMUINT uiBytesToWri | |
| | | te, | |
| | | IF_IOBuffer * pIOBuffer) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI seek( | |
| | | FLMUINT64 ui64Offset, | |
| | | FLMINT iWhence, | |
| | | FLMUINT64 * pui64NewOffs | |
| | | et = NULL) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI size( | |
| | | FLMUINT64 * pui64Size) = | |
| | | 0; | |
| | | | |
| | | virtual RCODE FLMAPI tell( | |
| | | FLMUINT64 * pui64Offset) | |
| | | = 0; | |
| | | | |
| | | virtual RCODE FLMAPI extendFile( | |
| | | FLMUINT64 ui64FileSize | |
| | | ) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI truncateFile( | |
| | | FLMUINT64 ui64FileSize | |
| | | = 0) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI closeFile( void) = 0; | |
| | | | |
| | | virtual FLMBOOL FLMAPI canDoAsync( void) = 0; | |
| | | | |
| | | virtual FLMBOOL FLMAPI canDoDirectIO( void) = 0; | |
| | | | |
| | | virtual void FLMAPI setExtendSize( | |
| | | FLMUINT uiExtendSize | |
| | | ) = 0; | |
| | | | |
| | | virtual void FLMAPI setMaxAutoExtendSize( | |
| | | FLMUINT uiMaxAutoExt | |
| | | endSize) = 0; | |
| | | | |
| | | virtual FLMUINT FLMAPI getSectorSize( void) = 0; | |
| | | | |
| | | virtual FLMBOOL FLMAPI isReadOnly( void) = 0; | |
| | | | |
| | | virtual FLMBOOL FLMAPI isOpen( void) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI lock( void) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI unlock( void) = 0; | |
| | | }; | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | flminterface FLMEXP IF_FileHdlCache : public F_Object | |
| | | { | |
| | | virtual RCODE FLMAPI openFile( | |
| | | const char * pszFileName, | |
| | | FLMUINT uiIoFlags, | |
| | | IF_FileHdl ** ppFile) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI createFile( | |
| | | const char * pszFileName, | |
| | | FLMUINT uiIoFlags, | |
| | | IF_FileHdl ** ppFile) = 0; | |
| | | | |
| | | virtual void FLMAPI closeUnusedFiles( | |
| | | FLMUINT uiUnusedTime | |
| | | = 0) = 0; | |
| | | | |
| | | virtual FLMUINT FLMAPI getOpenThreshold( void) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI setOpenThreshold( | |
| | | FLMUINT uiMaxOpenFil | |
| | | es) = 0; | |
| | | }; | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | flminterface FLMEXP IF_MultiFileHdl : public F_Object | |
| | | { | |
| | | virtual RCODE FLMAPI createFile( | |
| | | const char * pszPath) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI createUniqueFile( | |
| | | const char * pszPath, | |
| | | const char * pszFileExtension) = | |
| | | 0; | |
| | | | |
| | | virtual RCODE FLMAPI openFile( | |
| | | const char * pszPath) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI deleteMultiFile( | |
| | | const char * pszPath) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI flush( void) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI read( | |
| | | FLMUINT64 ui64Offset, | |
| | | FLMUINT uiLength, | |
| | | void * pvBuffer, | |
| | | FLMUINT * puiBytesRead | |
| | | = NULL) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI write( | |
| | | FLMUINT64 ui64Offset, | |
| | | FLMUINT uiLength, | |
| | | void * pvBuffer, | |
| | | FLMUINT * puiBytesWrit | |
| | | ten = NULL) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI getPath( | |
| | | char * pszFilePath) | |
| | | = 0; | |
| | | | |
| | | virtual RCODE FLMAPI size( | |
| | | FLMUINT64 * pui64FileSiz | |
| | | e) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI truncateFile( | |
| | | FLMUINT64 ui64Offset = | |
| | | 0) = 0; | |
| | | | |
| | | virtual void FLMAPI closeFile( | |
| | | FLMBOOL bDelete = FA | |
| | | LSE) = 0; | |
| | | }; | |
| | | | |
| | | RCODE FLMAPI FlmAllocMultiFileHdl( | |
| | | IF_MultiFileHdl ** ppFileHdl); | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | flminterface FLMEXP IF_SuperFileClient : public F_Object | |
| | | { | |
| | | virtual FLMUINT FLMAPI getFileNumber( | |
| | | FLMUINT uiBlockAddr) | |
| | | = 0; | |
| | | | |
| | | virtual FLMUINT FLMAPI getFileOffset( | |
| | | FLMUINT uiBlockAddr) | |
| | | = 0; | |
| | | | |
| | | virtual FLMUINT FLMAPI getBlockAddress( | |
| | | FLMUINT uiFileNumber | |
| | | , | |
| | | FLMUINT uiFileOffset | |
| | | ) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI getFilePath( | |
| | | FLMUINT uiFileNumber | |
| | | , | |
| | | char * pszPath) = 0 | |
| | | ; | |
| | | | |
| | | virtual FLMUINT64 FLMAPI getMaxFileSize( void) = 0; | |
| | | }; | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | class F_SuperFileHdl : public F_Object | |
| | | { | |
| | | public: | |
| | | | |
| | | F_SuperFileHdl(); | |
| | | | |
| | | virtual ~F_SuperFileHdl(); | |
| | | | |
| | | RCODE FLMAPI setup( | |
| | | IF_SuperFileClient * pSuperFileClient, | |
| | | IF_FileHdlCache * pFileHdlCach | |
| | | e, | |
| | | FLMUINT uiFi | |
| | | leOpenFlags, | |
| | | FLMUINT uiFi | |
| | | leCreateFlags); | |
| | | | |
| | | RCODE FLMAPI createFile( | |
| | | FLMUINT uiFileNumber | |
| | | , | |
| | | IF_FileHdl ** ppFileHdl = NULL); | |
| | | | |
| | | RCODE FLMAPI getFileHdl( | |
| | | FLMUINT uiFileNumber | |
| | | , | |
| | | FLMBOOL bGetForUpdat | |
| | | e, | |
| | | IF_FileHdl ** ppFileHdlRV); | |
| | | | |
| | | RCODE FLMAPI readBlock( | |
| | | FLMUINT uiBlkAddress | |
| | | , | |
| | | FLMUINT uiBytesToRea | |
| | | d, | |
| | | void * pvBuffer, | |
| | | FLMUINT * puiBytesRead | |
| | | ); | |
| | | | |
| | | RCODE FLMAPI writeBlock( | |
| | | FLMUINT uiBlkAddress | |
| | | , | |
| | | FLMUINT uiBytesToWri | |
| | | te, | |
| | | const void * pvBuffer, | |
| | | FLMUINT * puiBytesWrit | |
| | | ten); | |
| | | | |
| | | RCODE FLMAPI writeBlock( | |
| | | FLMUINT uiBlkAddress | |
| | | , | |
| | | FLMUINT uiBytesToWri | |
| | | te, | |
| | | IF_IOBuffer * pIOBuffer); | |
| | | | |
| | | RCODE FLMAPI getFilePath( | |
| | | FLMUINT uiFileNumber | |
| | | , | |
| | | char * pszPath); | |
| | | | |
| | | RCODE FLMAPI getFileSize( | |
| | | FLMUINT uiFileNumber | |
| | | , | |
| | | FLMUINT64 * pui64FileSiz | |
| | | e); | |
| | | | |
| | | RCODE FLMAPI releaseFiles( void); | |
| | | | |
| | | RCODE FLMAPI allocateBlocks( | |
| | | FLMUINT uiStartAddre | |
| | | ss, | |
| | | FLMUINT uiEndAddress | |
| | | ); | |
| | | | |
| | | RCODE FLMAPI truncateFile( | |
| | | FLMUINT uiEOFBlkAddr | |
| | | ess); | |
| | | | |
| | | RCODE FLMAPI truncateFile( | |
| | | FLMUINT uiFileNumber | |
| | | , | |
| | | FLMUINT uiOffset); | |
| | | | |
| | | void FLMAPI truncateFiles( | |
| | | FLMUINT uiStartFileN | |
| | | um, | |
| | | FLMUINT uiEndFileNum | |
| | | ); | |
| | | | |
| | | RCODE FLMAPI flush( void); | |
| | | | |
| | | FINLINE void FLMAPI setExtendSize( | |
| | | FLMUINT uiExtendSize) | |
| | | { | |
| | | m_uiExtendSize = uiExtendSize; | |
| | | } | |
| | | | |
| | | FINLINE void FLMAPI setMaxAutoExtendSize( | |
| | | FLMUINT uiMaxAutoExtendSize) | |
| | | { | |
| | | m_uiMaxAutoExtendSize = uiMaxAutoExtendSize; | |
| | | } | |
| | | | |
| | | FLMBOOL FLMAPI canDoAsync( void); | |
| | | | |
| | | FLMBOOL FLMAPI canDoDirectIO( void); | |
| | | | |
| | | private: | |
| | | | |
| | | IF_SuperFileClient * m_pSuperFileClient; | |
| | | IF_FileHdlCache * m_pFileHdlCache; | |
| | | IF_FileHdl * m_pCFileHdl; | |
| | | IF_FileHdl * m_pBlockFileHdl; | |
| | | FLMBOOL m_bCFileDirt | |
| | | y; | |
| | | FLMBOOL m_bBlockFile | |
| | | Dirty; | |
| | | FLMUINT m_uiBlockFil | |
| | | eNum; | |
| | | FLMUINT m_uiMaxFileS | |
| | | ize; | |
| | | FLMUINT m_uiExtendSi | |
| | | ze; | |
| | | FLMUINT m_uiMaxAutoE | |
| | | xtendSize; | |
| | | FLMUINT m_uiFileOpen | |
| | | Flags; | |
| | | FLMUINT m_uiFileCrea | |
| | | teFlags; | |
| | | }; | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | flminterface FLMEXP IF_AsyncClient : virtual public F_Object | |
| | | { | |
| | | virtual RCODE FLMAPI waitToComplete( void) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI getCompletionCode( void) = 0; | |
| | | | |
| | | virtual FLMUINT FLMAPI getElapsedTime( void) = 0; | |
| | | }; | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | typedef void (FLMAPI * F_BUFFER_COMPLETION_FUNC)(IF_IOBuffer *, void | |
| | | *); | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | flminterface FLMEXP IF_IOBuffer : virtual public F_Object | |
| | | { | |
| | | virtual FLMBYTE * FLMAPI getBufferPtr( void) = 0; | |
| | | | |
| | | virtual FLMUINT FLMAPI getBufferSize( void) = 0; | |
| | | | |
| | | virtual void FLMAPI setCompletionCallback( | |
| | | F_BUFFER_COMPLETION_FUNC fnCompletion, | |
| | | void * | |
| | | pvData) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI addCallbackData( | |
| | | void * | |
| | | pvData) = 0; | |
| | | | |
| | | virtual void * FLMAPI getCallbackData( | |
| | | FLMUINT | |
| | | uiSlot) = 0; | |
| | | | |
| | | virtual FLMUINT FLMAPI getCallbackDataCount( void) = 0; | |
| | | | |
| | | virtual void FLMAPI setAsyncClient( | |
| | | IF_AsyncClient * pAsy | |
| | | ncClient) = 0; | |
| | | | |
| | | virtual void FLMAPI notifyComplete( | |
| | | RCODE | |
| | | completionRc) = 0; | |
| | | | |
| | | virtual void FLMAPI setPending( void) = 0; | |
| | | | |
| | | virtual void FLMAPI clearPending( void) = 0; | |
| | | | |
| | | virtual FLMBOOL FLMAPI isPending( void) = 0; | |
| | | | |
| | | virtual FLMBOOL FLMAPI isComplete( void) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI waitToComplete( void) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI getCompletionCode( void) = 0; | |
| | | | |
| | | virtual FLMUINT FLMAPI getElapsedTime( void) = 0; | |
| | | }; | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | flminterface FLMEXP IF_IOBufferMgr : public F_Object | |
| | | { | |
| | | virtual RCODE FLMAPI getBuffer( | |
| | | FLMUINT uiBufferSize | |
| | | , | |
| | | IF_IOBuffer ** ppIOBuffer) = 0; | |
| | | | |
| | | virtual FLMBOOL FLMAPI isIOPending( void) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI waitForAllPendingIO( void) = 0; | |
| | | }; | |
| | | | |
| | | RCODE FLMAPI FlmAllocIOBufferMgr( | |
| | | FLMUINT uiMaxBuffers, | |
| | | FLMUINT uiMaxBytes, | |
| | | FLMBOOL bReuseBuffers, | |
| | | IF_IOBufferMgr ** ppIOBufferMgr); | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | flminterface FLMEXP IF_DirHdl : public F_Object | |
| | | { | |
| | | virtual RCODE FLMAPI next( void) = 0; | |
| | | | |
| | | virtual const char * FLMAPI currentItemName( void) = 0; | |
| | | | |
| | | virtual void FLMAPI currentItemPath( | |
| | | char * pszPath) = 0 | |
| | | ; | |
| | | | |
| | | virtual FLMUINT64 FLMAPI currentItemSize( void) = 0; | |
| | | | |
| | | virtual FLMBOOL FLMAPI currentItemIsDir( void) = 0; | |
| | | }; | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | flminterface FLMEXP IF_ResultSetCompare : public F_Object | |
| | | { | |
| | | virtual RCODE FLMAPI compare( | |
| | | const void * pvData1, | |
| | | FLMUINT uiLength1, | |
| | | const void * pvData2, | |
| | | FLMUINT uiLength2, | |
| | | FLMINT * piCo | |
| | | mpare) = 0; | |
| | | }; | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | flminterface FLMEXP IF_ResultSetSortStatus : public F_Object | |
| | | { | |
| | | virtual RCODE FLMAPI reportSortStatus( | |
| | | FLMUINT64 ui64EstTotal | |
| | | Units, | |
| | | FLMUINT64 ui64UnitsDon | |
| | | e) = 0; | |
| | | }; | |
| | | | |
| | | #define RS_POSITION_NOT_SET FLM_MAX_UINT64 | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | flminterface FLMEXP IF_ResultSet : public F_Object | |
| | | { | |
| | | virtual RCODE FLMAPI setupResultSet( | |
| | | const char * pszPath, | |
| | | IF_ResultSetCompare * pCompare, | |
| | | FLMUINT uiEn | |
| | | trySize, | |
| | | FLMBOOL bDro | |
| | | pDuplicates = TRUE, | |
| | | FLMBOOL bEnt | |
| | | riesInOrder = FALSE, | |
| | | const char * pszFileName | |
| | | = NULL) = 0; | |
| | | | |
| | | virtual FLMUINT64 FLMAPI getTotalEntries( void) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI addEntry( | |
| | | const void * pvEntry, | |
| | | FLMUINT uiEntryLengt | |
| | | h = 0) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI finalizeResultSet( | |
| | | IF_ResultSetSortStatus * pSortStatus = NULL, | |
| | | FLMUINT64 * | |
| | | pui64TotalEntries = NULL) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI getFirst( | |
| | | void * pvEntryBuffe | |
| | | r, | |
| | | FLMUINT uiBufferLeng | |
| | | th = 0, | |
| | | FLMUINT * puiEntryLeng | |
| | | th = NULL) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI getNext( | |
| | | void * pvEntryBuffe | |
| | | r, | |
| | | FLMUINT uiBufferLeng | |
| | | th = 0, | |
| | | FLMUINT * puiEntryLeng | |
| | | th = NULL) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI getLast( | |
| | | void * pvEntryBuffe | |
| | | r, | |
| | | FLMUINT uiBufferLeng | |
| | | th = 0, | |
| | | FLMUINT * puiEntryLeng | |
| | | th = NULL) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI getPrev( | |
| | | void * pvEntryBuffe | |
| | | r, | |
| | | FLMUINT uiBufferLeng | |
| | | th = 0, | |
| | | FLMUINT * puiEntryLeng | |
| | | th = NULL) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI getCurrent( | |
| | | void * pvEntryBuffe | |
| | | r, | |
| | | FLMUINT uiBufferLeng | |
| | | th = 0, | |
| | | FLMUINT * puiEntryLeng | |
| | | th = NULL) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI findMatch( | |
| | | const void * pvMatchEntry, | |
| | | void * pvFoundEntry | |
| | | ) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI findMatch( | |
| | | const void * pvMatchEntry, | |
| | | FLMUINT uiMatchEntry | |
| | | Length, | |
| | | void * pvFoundEntry | |
| | | , | |
| | | FLMUINT * puiFoundEntr | |
| | | yLength) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI modifyCurrent( | |
| | | const void * pvEntry, | |
| | | FLMUINT uiEntryLengt | |
| | | h = 0) = 0; | |
| | | | |
| | | virtual FLMUINT64 FLMAPI getPosition( void) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI setPosition( | |
| | | FLMUINT64 ui64Position | |
| | | ) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI resetResultSet( | |
| | | FLMBOOL bDelete = TR | |
| | | UE) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI flushToFile( void) = 0; | |
| | | | |
| | | }; | |
| | | | |
| | | RCODE FLMAPI FlmAllocResultSet( | |
| | | IF_ResultSet ** ppResultSet); | |
| | | | |
| | | /******************************************************************* | |
| | | ********** | |
| | | Desc: | |
| | | ******************************************************************** | |
| | | *********/ | |
| | | flminterface FLMEXP IF_BTreeResultSet : public F_Object | |
| | | { | |
| | | virtual RCODE FLMAPI addEntry( | |
| | | FLMBYTE * pucKey, | |
| | | FLMUINT uiKeyLength, | |
| | | FLMBYTE * pucEntry, | |
| | | FLMUINT uiEntryLengt | |
| | | h) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI modifyEntry( | |
| | | FLMBYTE * pucKey, | |
| | | FLMUINT uiKeyLength, | |
| | | FLMBYTE * pucEntry, | |
| | | FLMUINT uiEntryLengt | |
| | | h) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI getCurrent( | |
| | | FLMBYTE * pucKey, | |
| | | FLMUINT uiKeyLength, | |
| | | FLMBYTE * pucEntry, | |
| | | FLMUINT uiEntryLengt | |
| | | h, | |
| | | FLMUINT * puiReturnLen | |
| | | gth) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI getNext( | |
| | | FLMBYTE * pucKey, | |
| | | FLMUINT uiKeyBufLen, | |
| | | FLMUINT * puiKeylen, | |
| | | FLMBYTE * pucBuffer, | |
| | | FLMUINT uiBufferLeng | |
| | | th, | |
| | | FLMUINT * puiReturnLen | |
| | | gth) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI getPrev( | |
| | | FLMBYTE * pucKey, | |
| | | FLMUINT uiKeyBufLen, | |
| | | FLMUINT * puiKeylen, | |
| | | FLMBYTE * pucBuffer, | |
| | | FLMUINT uiBufferLeng | |
| | | th, | |
| | | FLMUINT * puiReturnLen | |
| | | gth) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI getFirst( | |
| | | FLMBYTE * pucKey, | |
| | | FLMUINT uiKeyBufLen, | |
| | | FLMUINT * puiKeylen, | |
| | | FLMBYTE * pucBuffer, | |
| | | FLMUINT uiBufferLeng | |
| | | th, | |
| | | FLMUINT * puiReturnLen | |
| | | gth) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI getLast( | |
| | | FLMBYTE * pucKey, | |
| | | FLMUINT uiKeyBufLen, | |
| | | FLMUINT * puiKeylen, | |
| | | FLMBYTE * pucBuffer, | |
| | | FLMUINT uiBufferLeng | |
| | | th, | |
| | | FLMUINT * puiReturnLen | |
| | | gth) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI findEntry( | |
| | | FLMBYTE * pucKey, | |
| | | FLMUINT uiKeyBufLen, | |
| | | FLMUINT * puiKeylen, | |
| | | FLMBYTE * pucBuffer, | |
| | | FLMUINT uiBufferLeng | |
| | | th, | |
| | | FLMUINT * puiReturnLen | |
| | | gth) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI deleteEntry( | |
| | | FLMBYTE * pucKey, | |
| | | FLMUINT uiKeyLength) | |
| | | = 0; | |
| | | }; | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: Random numbers | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | | |
| | | #define FLM_MAX_RANDOM ((FLMUINT32)2147483646) | |
| | | | |
| | | flminterface FLMEXP IF_RandomGenerator : public F_Object | |
| | | { | |
| | | virtual void FLMAPI randomize( void) = 0; | |
| | | | |
| | | virtual void FLMAPI setSeed( | |
| | | FLMUINT32 ui32seed) = | |
| | | 0; | |
| | | | |
| | | virtual FLMUINT32 FLMAPI getSeed( void) = 0; | |
| | | | |
| | | virtual FLMUINT32 FLMAPI getUINT32( | |
| | | FLMUINT32 ui32Low = 0, | |
| | | FLMUINT32 ui32High = F | |
| | | LM_MAX_RANDOM) = 0; | |
| | | | |
| | | virtual FLMBOOL FLMAPI getBoolean( void) = 0; | |
| | | }; | |
| | | | |
| | | RCODE FLMAPI FlmAllocRandomGenerator( | |
| | | IF_RandomGenerator ** ppRandomGenerator); | |
| | | | |
| | | FLMUINT32 FLMAPI f_getRandomUINT32( | |
| | | FLMUINT32 ui32Low = 0, | |
| | | FLMUINT32 ui32High = F | |
| | | LM_MAX_RANDOM); | |
| | | | |
| | | FLMBYTE FLMAPI f_getRandomByte( void); | |
| | | | |
| | | /******************************************************************* | |
| | | *** | |
| | | Desc: Atomic operations | |
| | | ******************************************************************** | |
| | | **/ | |
| | | FLMINT32 FLMAPI f_atomicInc( | |
| | | FLMATOMIC * piTarget); | |
| | | | |
| | | FLMINT32 FLMAPI f_atomicDec( | |
| | | FLMATOMIC * piTarget); | |
| | | | |
| | | FLMINT32 FLMAPI f_atomicExchange( | |
| | | FLMATOMIC * piTarget, | |
| | | FLMINT32 i32N | |
| | | ewVal); | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: Mutexes | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | typedef void * F_MUTEX; | |
| | | #define F_MUTEX_NULL NULL | |
| | | | |
| | | RCODE FLMAPI f_mutexCreate( | |
| | | F_MUTEX * phMutex); | |
| | | | |
| | | void FLMAPI f_mutexDestroy( | |
| | | F_MUTEX * phMutex); | |
| | | | |
| | | void FLMAPI f_mutexLock( | |
| | | F_MUTEX hMutex); | |
| | | | |
| | | void FLMAPI f_mutexUnlock( | |
| | | F_MUTEX hMutex); | |
| | | | |
| | | #ifdef FLM_DEBUG | |
| | | void FLMAPI f_assertMutexLocked( | |
| | | F_MUTEX hMutex); | |
| | | #else | |
| | | #define f_assertMutexLocked( h) (void)(h) | |
| | | #endif | |
| | | | |
| | | #ifdef FLM_DEBUG | |
| | | void FLMAPI f_assertMutexNotLocked( | |
| | | F_MUTEX hMutex); | |
| | | #else | |
| | | #define f_assertMutexNotLocked( h) (void)(h) | |
| | | #endif | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: Semaphores | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | typedef void * F_SEM; | |
| | | #define F_SEM_NULL NULL | |
| | | | |
| | | RCODE FLMAPI f_semCreate( | |
| | | F_SEM * phSem); | |
| | | | |
| | | void FLMAPI f_semDestroy( | |
| | | F_SEM * phSem); | |
| | | | |
| | | RCODE FLMAPI f_semWait( | |
| | | F_SEM hSem | |
| | | , | |
| | | FLMUINT uiTimeout); | |
| | | | |
| | | void FLMAPI f_semSignal( | |
| | | F_SEM hSem | |
| | | ); | |
| | | | |
| | | FLMUINT FLMAPI f_semGetSignalCount( | |
| | | F_SEM hSem | |
| | | ); | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: Notify Lists | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | | |
| | | typedef struct F_NOTIFY_LIST_ITEM | |
| | | { | |
| | | F_NOTIFY_LIST_ITEM * pNext; ///< Pointer | |
| | | to next F_NOTIFY_LIST_ITEM structure in list. | |
| | | FLMUINT uiThreadId; | |
| | | ///< ID of thread requesting the notify | |
| | | RCODE * pRc; | |
| | | ///< Pointer to a return code variable that is to | |
| | | | |
| | | ///< be filled in when the operation is | |
| | | completed. | |
| | | | |
| | | ///< The thread requesting notification | |
| | | supplies | |
| | | | |
| | | ///< the return code variable to be fil | |
| | | led in. | |
| | | void * pvData; | |
| | | ///< Data that is passed through to a custom | |
| | | | |
| | | ///< notify routine | |
| | | F_SEM hSem | |
| | | ; ///< Semaphore that will be signaled when the | |
| | | | |
| | | ///< operation is complete. | |
| | | } F_NOTIFY_LIST_ITEM; | |
| | | | |
| | | RCODE FLMAPI f_notifyWait( | |
| | | F_MUTEX hMutex, | |
| | | F_SEM hSem | |
| | | , | |
| | | void * pvData, | |
| | | F_NOTIFY_LIST_ITEM ** ppNotifyList); | |
| | | | |
| | | void FLMAPI f_notifySignal( | |
| | | F_NOTIFY_LIST_ITEM * pNotifyList, | |
| | | RCODE noti | |
| | | fyRc); | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: Reader / Writer Locks | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | typedef void * F_RWLOCK; | |
| | | #define F_RWLOCK_NULL NULL | |
| | | | |
| | | RCODE FLMAPI f_rwlockCreate( | |
| | | F_RWLOCK * phReadWriteL | |
| | | ock); | |
| | | | |
| | | void FLMAPI f_rwlockDestroy( | |
| | | F_RWLOCK * phReadWriteL | |
| | | ock); | |
| | | | |
| | | RCODE FLMAPI f_rwlockAcquire( | |
| | | F_RWLOCK hRea | |
| | | dWriteLock, | |
| | | F_SEM hSem | |
| | | , | |
| | | FLMBOOL bWriter); | |
| | | | |
| | | RCODE FLMAPI f_rwlockPromote( | |
| | | F_RWLOCK hRea | |
| | | dWriteLock, | |
| | | F_SEM hSem | |
| | | ); | |
| | | | |
| | | RCODE FLMAPI f_rwlockRelease( | |
| | | F_RWLOCK hRea | |
| | | dWriteLock); | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: Thread manager | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | flminterface FLMEXP IF_ThreadMgr : public F_Object | |
| | | { | |
| | | virtual RCODE FLMAPI setupThreadMgr( void) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI createThread( | |
| | | IF_Thread ** ppThread, | |
| | | F_THREAD_FUNC fnThread, | |
| | | const char * pszThreadName = NULL | |
| | | , | |
| | | FLMUINT uiThreadGrou | |
| | | p = 0, | |
| | | FLMUINT uiAppId = 0, | |
| | | void * pvParm1 = NU | |
| | | LL, | |
| | | void * pvParm2 = NU | |
| | | LL, | |
| | | FLMUINT uiStackSize | |
| | | = F_THREAD_DEFAULT_STACK_SIZE) = 0; | |
| | | | |
| | | virtual void FLMAPI shutdownThreadGroup( | |
| | | FLMUINT uiThreadGrou | |
| | | p) = 0; | |
| | | | |
| | | virtual void FLMAPI setThreadShutdownFlag( | |
| | | FLMUINT uiThreadId) | |
| | | = 0; | |
| | | | |
| | | virtual RCODE FLMAPI findThread( | |
| | | IF_Thread ** ppThread, | |
| | | FLMUINT uiThreadGrou | |
| | | p, | |
| | | FLMUINT uiAppId = 0, | |
| | | FLMBOOL bOkToFindMe | |
| | | = TRUE) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI getNextGroupThread( | |
| | | IF_Thread ** ppThread, | |
| | | FLMUINT uiThreadGrou | |
| | | p, | |
| | | FLMUINT * puiThreadId) | |
| | | = 0; | |
| | | | |
| | | virtual RCODE FLMAPI getThreadInfo( | |
| | | F_Pool * pPoo | |
| | | l, | |
| | | F_THREAD_INFO ** ppThreadInfo, | |
| | | FLMUINT * puiNumThread | |
| | | s) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI getThreadName( | |
| | | FLMUINT uiThreadId, | |
| | | char * pszThreadNam | |
| | | e, | |
| | | FLMUINT * puiLength) = | |
| | | 0; | |
| | | | |
| | | virtual FLMUINT FLMAPI getThreadGroupCount( | |
| | | FLMUINT uiThreadGrou | |
| | | p) = 0; | |
| | | | |
| | | virtual FLMUINT FLMAPI allocGroupId( void) = 0; | |
| | | }; | |
| | | | |
| | | RCODE FLMAPI FlmGetThreadMgr( | |
| | | IF_ThreadMgr ** ppThreadMgr); | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: Thread | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | flminterface FLMEXP IF_Thread : public F_Object | |
| | | { | |
| | | virtual RCODE FLMAPI startThread( | |
| | | F_THREAD_FUNC fnThread, | |
| | | const char * pszThreadName = NULL | |
| | | , | |
| | | FLMUINT uiThreadGrou | |
| | | p = F_DEFAULT_THREAD_GROUP, | |
| | | FLMUINT uiAppId = 0, | |
| | | void * pvParm1 = NU | |
| | | LL, | |
| | | void * pvParm2 = NU | |
| | | LL, | |
| | | FLMUINT uiStackSize = F_THREAD_DEFAU | |
| | | LT_STACK_SIZE) = 0; | |
| | | | |
| | | virtual void FLMAPI stopThread( void) = 0; | |
| | | | |
| | | virtual FLMUINT FLMAPI getThreadId( void) = 0; | |
| | | | |
| | | virtual FLMBOOL FLMAPI getShutdownFlag( void) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI getExitCode( void) = 0; | |
| | | | |
| | | virtual void * FLMAPI getParm1( void) = 0; | |
| | | | |
| | | virtual void FLMAPI setParm1( | |
| | | void * pvParm) = 0; | |
| | | | |
| | | virtual void * FLMAPI getParm2( void) = 0; | |
| | | | |
| | | virtual void FLMAPI setParm2( | |
| | | void * pvParm) = 0; | |
| | | | |
| | | virtual void FLMAPI setShutdownFlag( void) = 0; | |
| | | | |
| | | virtual FLMBOOL FLMAPI isThreadRunning( void) = 0; | |
| | | | |
| | | virtual void FLMAPI setThreadStatusStr( | |
| | | const char * pszStatus) = 0; | |
| | | | |
| | | virtual void FLMAPI setThreadStatus( | |
| | | const char * pszBuffer, ...) = 0; | |
| | | | |
| | | virtual void FLMAPI setThreadStatus( | |
| | | eThreadStatus genericStatus) = 0; | |
| | | | |
| | | virtual void FLMAPI setThreadAppId( | |
| | | FLMUINT uiAppId) = 0 | |
| | | ; | |
| | | | |
| | | virtual FLMUINT FLMAPI getThreadAppId( void) = 0; | |
| | | | |
| | | virtual FLMUINT FLMAPI getThreadGroup( void) = 0; | |
| | | | |
| | | virtual void FLMAPI cleanupThread( void) = 0; | |
| | | | |
| | | virtual void FLMAPI sleep( | |
| | | FLMUINT uiMillisecon | |
| | | ds) = 0; | |
| | | | |
| | | virtual void FLMAPI waitToComplete( void) = 0; | |
| | | }; | |
| | | | |
| | | RCODE FLMAPI f_threadCreate( | |
| | | IF_Thread ** ppThread, | |
| | | F_THREAD_FUNC fnThread, | |
| | | const char * pszThreadName = NULL, | |
| | | FLMUINT uiThreadGroup = F_DE | |
| | | FAULT_THREAD_GROUP, | |
| | | FLMUINT uiAppId = 0, | |
| | | void * pvParm1 = NULL, | |
| | | void * pvParm2 = NULL, | |
| | | FLMUINT uiStackSize = F_THRE | |
| | | AD_DEFAULT_STACK_SIZE); | |
| | | | |
| | | void FLMAPI f_threadDestroy( | |
| | | IF_Thread ** ppThread); | |
| | | | |
| | | FLMUINT FLMAPI f_threadId( void); | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | flminterface FLMEXP IF_IniFile : public F_Object | |
| | | { | |
| | | virtual RCODE FLMAPI read( | |
| | | const char * pszFileName) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI write( void) = 0; | |
| | | | |
| | | virtual FLMBOOL FLMAPI getParam( | |
| | | const char * pszParamName, | |
| | | FLMUINT * puiParamVal) | |
| | | = 0; | |
| | | | |
| | | virtual FLMBOOL FLMAPI getParam( | |
| | | const char * pszParamName, | |
| | | FLMBOOL * pbParamVal) | |
| | | = 0; | |
| | | | |
| | | virtual FLMBOOL FLMAPI getParam( | |
| | | const char * pszParamName, | |
| | | char ** ppszParamVal | |
| | | ) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI setParam( | |
| | | const char * pszParamName, | |
| | | FLMUINT uiPa | |
| | | ramVal) = 0; | |
| | | | |
| | | virtual RCODE FLMAPI setParam( | |
| | | const char * pszParamName, | |
| | | FLMBOOL bParamVal) = | |
| | | 0; | |
| | | | |
| | | virtual RCODE FLMAPI setParam( | |
| | | const char * pszParamName, | |
| | | const char * pszParamVal) = 0; | |
| | | | |
| | | virtual FLMBOOL FLMAPI testParam( | |
| | | const char * pszParamName) = 0; | |
| | | }; | |
| | | | |
| | | RCODE FLMAPI FlmAllocIniFile( | |
| | | IF_IniFile ** ppIniFile); | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: Serial numbers | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | RCODE FLMAPI f_createSerialNumber( | |
| | | FLMBYTE * pszSerialNum | |
| | | ber); | |
| | | | |
| | | #define F_SERIAL_NUM_SIZE 16 | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: Checksum | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | void FLMAPI f_updateCRC( | |
| | | const void * pvBuffer, | |
| | | FLMUINT uiLength, | |
| | | FLMUINT32 * pui32CRC); | |
| | | | |
| | | FLMUINT32 FLMAPI f_calcFastChecksum( | |
| | | const void * pvBuffer, | |
| | | FLMUINT uiLength, | |
| | | FLMUINT * puiSum = NUL | |
| | | L, | |
| | | FLMUINT * puiXOR = NUL | |
| | | L); | |
| | | | |
| | | FLMBYTE FLMAPI f_calcPacketChecksum( | |
| | | const void * pvPacket, | |
| | | FLMUINT uiBytesToChe | |
| | | cksum); | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | char * FLMAPI f_uwtoa( | |
| | | FLMUINT16 value, | |
| | | char * ptr); | |
| | | | |
| | | char * FLMAPI f_udtoa( | |
| | | FLMUINT value, | |
| | | char * ptr); | |
| | | | |
| | | char * FLMAPI f_wtoa( | |
| | | FLMINT16 valu | |
| | | e, | |
| | | char * ptr); | |
| | | | |
| | | char * FLMAPI f_dtoa( | |
| | | FLMINT value, | |
| | | char * ptr); | |
| | | | |
| | | char * FLMAPI f_ui64toa( | |
| | | FLMUINT64 value, | |
| | | char * ptr); | |
| | | | |
| | | char * FLMAPI f_i64toa( | |
| | | FLMINT64 valu | |
| | | e, | |
| | | char * ptr); | |
| | | | |
| | | FLMINT FLMAPI f_atoi( | |
| | | const char * ptr); | |
| | | | |
| | | FLMINT FLMAPI f_atol( | |
| | | const char * ptr); | |
| | | | |
| | | FLMINT FLMAPI f_atod( | |
| | | const char * ptr); | |
| | | | |
| | | FLMUINT FLMAPI f_atoud( | |
| | | const char * ptr, | |
| | | FLMBOOL bAllowUnpref | |
| | | ixedHex = FALSE); | |
| | | | |
| | | FLMUINT64 FLMAPI f_atou64( | |
| | | const char * pszBuf); | |
| | | | |
| | | FLMUINT FLMAPI f_unilen( | |
| | | const FLMUNICODE * puzStr); | |
| | | | |
| | | FLMUNICODE * FLMAPI f_unicpy( | |
| | | FLMUNICODE * puzDestStr, | |
| | | const FLMUNICODE * puzSrcStr); | |
| | | | |
| | | FLMBOOL FLMAPI f_uniIsUpper( | |
| | | FLMUNICODE uChar); | |
| | | | |
| | | FLMBOOL FLMAPI f_uniIsLower( | |
| | | FLMUNICODE uChar); | |
| | | | |
| | | FLMBOOL FLMAPI f_uniIsAlpha( | |
| | | FLMUNICODE uChar); | |
| | | | |
| | | FLMBOOL FLMAPI f_uniIsDecimalDigit( | |
| | | FLMUNICODE uChar); | |
| | | | |
| | | FLMUNICODE FLMAPI f_uniToLower( | |
| | | FLMUNICODE uChar); | |
| | | | |
| | | FLMINT FLMAPI f_unicmp( | |
| | | const FLMUNICODE * puzStr1, | |
| | | const FLMUNICODE * puzStr2); | |
| | | | |
| | | FLMINT FLMAPI f_uniicmp( | |
| | | const FLMUNICODE * puzStr1, | |
| | | const FLMUNICODE * puzStr2); | |
| | | | |
| | | FLMINT FLMAPI f_uninativecmp( | |
| | | const FLMUNICODE * puzStr1, | |
| | | const char * pszStr2); | |
| | | | |
| | | FLMINT FLMAPI f_uninativencmp( | |
| | | const FLMUNICODE * puzStr1, | |
| | | const char * pszStr2, | |
| | | FLMUINT uiCount); | |
| | | | |
| | | RCODE FLMAPI f_nextUCS2Char( | |
| | | const FLMBYTE ** ppszUTF8, | |
| | | const FLMBYTE * pszEndOfUTF8String, | |
| | | FLMUNICODE * puzChar); | |
| | | | |
| | | RCODE FLMAPI f_numUCS2Chars( | |
| | | const FLMBYTE * pszUTF8, | |
| | | FLMUINT * puiNumChars) | |
| | | ; | |
| | | | |
| | | FLMBOOL FLMAPI f_isWhitespace( | |
| | | FLMUNICODE ucChar); | |
| | | | |
| | | FLMUNICODE FLMAPI f_convertChar( | |
| | | FLMUNICODE uzChar, | |
| | | FLMUINT uiCompareRul | |
| | | es); | |
| | | | |
| | | RCODE FLMAPI f_wpToUnicode( | |
| | | FLMUINT16 ui16WPChar, | |
| | | FLMUNICODE * puUniChar); | |
| | | | |
| | | FLMBOOL FLMAPI f_unicodeToWP( | |
| | | FLMUNICODE uUniChar, | |
| | | FLMUINT16 * pui16WPChar) | |
| | | ; | |
| | | | |
| | | FLMBOOL FLMAPI f_depricatedUnicodeToWP( | |
| | | FLMUNICODE uUniChar, | |
| | | FLMUINT16 * pui16WPChar) | |
| | | ; | |
| | | | |
| | | FLMUINT16 FLMAPI f_wpUpper( | |
| | | FLMUINT16 ui16WpChar); | |
| | | | |
| | | FLMBOOL FLMAPI f_wpIsUpper( | |
| | | FLMUINT16 ui16WpChar); | |
| | | | |
| | | FLMUINT16 FLMAPI f_wpLower( | |
| | | FLMUINT16 ui16WpChar); | |
| | | | |
| | | FLMBOOL FLMAPI f_breakWPChar( | |
| | | FLMUINT16 ui16WpChar, | |
| | | FLMUINT16 * pui16BaseCha | |
| | | r, | |
| | | FLMUINT16 * pui16Diacrit | |
| | | icChar); | |
| | | | |
| | | FLMBOOL FLMAPI f_combineWPChar( | |
| | | FLMUINT16 * pui16WpChar, | |
| | | FLMUINT16 ui16BaseChar | |
| | | , | |
| | | FLMINT16 ui16 | |
| | | DiacriticChar); | |
| | | | |
| | | FLMUINT16 FLMAPI f_wpGetCollationImp( | |
| | | FLMUINT16 ui16WpChar, | |
| | | FLMUINT uiLanguage); | |
| | | | |
| | | FINLINE FLMUINT16 FLMAPI f_wpGetCollation( | |
| | | FLMUINT16 ui16WpChar, | |
| | | FLMUINT uiLanguage) | |
| | | { | |
| | | if( uiLanguage == FLM_US_LANG) | |
| | | { | |
| | | return( gv_pui16USCollationTable[ ui16WpChar]); | |
| | | } | |
| | | | |
| | | return( f_wpGetCollationImp( ui16WpChar, uiLanguage)); | |
| | | } | |
| | | | |
| | | RCODE FLMAPI f_wpCheckDoubleCollation( | |
| | | IF_PosIStream * pIStream, | |
| | | FLMBOOL bUnicodeStre | |
| | | am, | |
| | | FLMBOOL bAllowTwoInt | |
| | | oOne, | |
| | | FLMUNICODE * puzChar, | |
| | | FLMUNICODE * puzChar2, | |
| | | FLMBOOL * pbTwoIntoOne | |
| | | , | |
| | | FLMUINT uiLanguage); | |
| | | | |
| | | FLMUINT16 FLMAPI f_wpCheckDoubleCollation( | |
| | | FLMUINT16 * pui16WpChar, | |
| | | FLMBOOL * pbTwoIntoOne | |
| | | , | |
| | | const FLMBYTE ** ppucInputStr, | |
| | | FLMUINT uiLanguage); | |
| | | | |
| | | FLMUINT16 FLMAPI f_wpHanToZenkaku( | |
| | | FLMUINT16 ui16WpChar, | |
| | | FLMUINT16 ui16NextWpCh | |
| | | ar, | |
| | | FLMUINT16 * pui16Zenkaku | |
| | | ); | |
| | | | |
| | | FLMUINT16 FLMAPI f_wpZenToHankaku( | |
| | | FLMUINT16 ui16WpChar, | |
| | | FLMUINT16 * pui16DakutenOrHandak | |
| | | uten); | |
| | | | |
| | | FLMUINT FLMAPI f_wpToMixed( | |
| | | FLMBYTE * pucWPStr, | |
| | | FLMUINT uiWPStrLen, | |
| | | const FLMBYTE * pucLowUpBitStr, | |
| | | FLMUINT uiLang); | |
| | | | |
| | | RCODE FLMAPI f_asiaParseSubCol( | |
| | | FLMBYTE * pucWPStr, | |
| | | FLMUINT * puiWPStrLen, | |
| | | FLMUINT uiMaxWPBytes, | |
| | | const FLMBYTE * pucSubColBuf, | |
| | | FLMUINT * puiSubColBitPos); | |
| | | | |
| | | RCODE FLMAPI f_asiaColStr2WPStr( | |
| | | const FLMBYTE * pucColStr, | |
| | | FLMUINT uiColStrLen, | |
| | | FLMBYTE * pucWPStr, | |
| | | FLMUINT * puiWPStrLen, | |
| | | FLMUINT * puiUnconvCha | |
| | | rs, | |
| | | FLMBOOL * pbDataTrunca | |
| | | ted, | |
| | | FLMBOOL * pbFirstSubst | |
| | | ring); | |
| | | | |
| | | RCODE FLMAPI f_colStr2WPStr( | |
| | | const FLMBYTE * pucColStr, | |
| | | FLMUINT uiColStrLen, | |
| | | FLMBYTE * pucWPStr, | |
| | | FLMUINT * puiWPStrLen, | |
| | | FLMUINT uiLang, | |
| | | FLMUINT * puiUnconvCha | |
| | | rs, | |
| | | FLMBOOL * pbDataTrunca | |
| | | ted, | |
| | | FLMBOOL * pbFirstSubst | |
| | | ring); | |
| | | | |
| | | RCODE FLMAPI f_asiaUTF8ToColText( | |
| | | IF_PosIStream * pIStream, | |
| | | FLMBYTE * pucColStr, | |
| | | FLMUINT * puiColStrLen | |
| | | , | |
| | | FLMBOOL bCaseInsensi | |
| | | tive, | |
| | | FLMUINT * puiCollation | |
| | | Len, | |
| | | FLMUINT * puiCaseLen, | |
| | | FLMUINT uiCharLimit, | |
| | | FLMBOOL bFirstSubstr | |
| | | ing, | |
| | | FLMBOOL bDataTruncat | |
| | | ed, | |
| | | FLMBOOL * pbDataTrunca | |
| | | ted); | |
| | | | |
| | | RCODE FLMAPI f_compareUTF8Strings( | |
| | | const FLMBYTE * pucLString, | |
| | | FLMUINT uiLStrBytes, | |
| | | FLMBOOL bLeftWild, | |
| | | const FLMBYTE * pucRString, | |
| | | FLMUINT uiRStrBytes, | |
| | | FLMBOOL bRightWild, | |
| | | FLMUINT uiCompareRul | |
| | | es, | |
| | | FLMUINT uiLanguage, | |
| | | FLMINT * piRe | |
| | | sult); | |
| | | | |
| | | RCODE FLMAPI f_compareUTF8Streams( | |
| | | IF_PosIStream * pLStream, | |
| | | FLMBOOL bLeftWild, | |
| | | IF_PosIStream * pRStream, | |
| | | FLMBOOL bRightWild, | |
| | | FLMUINT uiCompareRul | |
| | | es, | |
| | | FLMUINT uiLanguage, | |
| | | FLMINT * piRe | |
| | | sult); | |
| | | | |
| | | RCODE FLMAPI f_compareUnicodeStrings( | |
| | | const FLMUNICODE * puzLString, | |
| | | FLMUINT uiLStrBytes, | |
| | | FLMBOOL bLeftWild, | |
| | | const FLMUNICODE * puzRString, | |
| | | FLMUINT uiRStrBytes, | |
| | | FLMBOOL bRightWild, | |
| | | FLMUINT uiCompareRul | |
| | | es, | |
| | | FLMUINT uiLanguage, | |
| | | FLMINT * piRe | |
| | | sult); | |
| | | | |
| | | RCODE FLMAPI f_compareUnicodeStreams( | |
| | | IF_PosIStream * pLStream, | |
| | | FLMBOOL bLeftWild, | |
| | | IF_PosIStream * pRStream, | |
| | | FLMBOOL bRightWild, | |
| | | FLMUINT uiCompareRul | |
| | | es, | |
| | | FLMUINT uiLanguage, | |
| | | FLMINT * piRe | |
| | | sult); | |
| | | | |
| | | RCODE FLMAPI f_compareCollStreams( | |
| | | IF_CollIStream * pLStream, | |
| | | IF_CollIStream * pRStream, | |
| | | FLMBOOL bOpIsMatch, | |
| | | FLMUINT uiLanguage, | |
| | | FLMINT * piRe | |
| | | sult); | |
| | | | |
| | | RCODE FLMAPI f_utf8IsSubStr( | |
| | | const FLMBYTE * pszString, | |
| | | const FLMBYTE * pszSubString, | |
| | | FLMUINT uiCompareRul | |
| | | es, | |
| | | FLMUINT uiLanguage, | |
| | | FLMBOOL * pbExists); | |
| | | | |
| | | RCODE FLMAPI f_readUTF8CharAsUnicode( | |
| | | IF_IStream * pStream, | |
| | | FLMUNICODE * puChar); | |
| | | | |
| | | RCODE FLMAPI f_readUTF8CharAsUTF8( | |
| | | IF_IStream * pIStream, | |
| | | FLMBYTE * pucBuf, | |
| | | FLMUINT * puiLen); | |
| | | | |
| | | RCODE FLMAPI f_formatUTF8Text( | |
| | | IF_PosIStream * pIStream, | |
| | | FLMBOOL bAllowEscape | |
| | | s, | |
| | | FLMUINT uiCompareRul | |
| | | es, | |
| | | F_DynaBuf * pDynaBuf); | |
| | | | |
| | | RCODE FLMAPI f_getNextMetaphone( | |
| | | IF_IStream * pIStream, | |
| | | FLMUINT * puiMetaphone | |
| | | , | |
| | | FLMUINT * puiAltMetaph | |
| | | one = NULL); | |
| | | | |
| | | FLMUINT FLMAPI f_getSENLength( | |
| | | FLMBYTE ucBy | |
| | | te); | |
| | | | |
| | | FLMUINT FLMAPI f_getSENByteCount( | |
| | | FLMUINT64 ui64Num); | |
| | | | |
| | | FLMUINT FLMAPI f_encodeSEN( | |
| | | FLMUINT64 ui64Value, | |
| | | FLMBYTE ** ppucBuffer, | |
| | | FLMUINT uiBytesWante | |
| | | d = 0); | |
| | | | |
| | | RCODE FLMAPI f_encodeSEN( | |
| | | FLMUINT64 ui64Value, | |
| | | FLMBYTE ** ppucBuffer, | |
| | | FLMBYTE * pucEnd); | |
| | | | |
| | | FLMUINT FLMAPI f_encodeSENKnownLength( | |
| | | FLMUINT64 ui64Value, | |
| | | FLMUINT uiSenLen, | |
| | | FLMBYTE ** ppucBuffer); | |
| | | | |
| | | RCODE FLMAPI f_decodeSEN( | |
| | | const FLMBYTE ** ppucBuffer, | |
| | | const FLMBYTE * pucEnd, | |
| | | FLMUINT * puiValue); | |
| | | | |
| | | RCODE FLMAPI f_decodeSEN64( | |
| | | const FLMBYTE ** ppucBuffer, | |
| | | const FLMBYTE * pucEnd, | |
| | | FLMUINT64 * pui64Value); | |
| | | | |
| | | RCODE FLMAPI f_readSEN( | |
| | | IF_IStream * pIStream, | |
| | | FLMUINT * puiValue, | |
| | | FLMUINT * puiLength = | |
| | | NULL); | |
| | | | |
| | | RCODE FLMAPI f_readSEN64( | |
| | | IF_IStream * pIStream, | |
| | | FLMUINT64 * pui64Value, | |
| | | FLMUINT * puiLength = | |
| | | NULL); | |
| | | | |
| | | /// Get the language string from a language code | |
| | | /// \ingroup language | |
| | | FLMUINT FLMAPI f_languageToNum( | |
| | | const char * pszLanguage); | |
| | | | |
| | | /// Convert a language string to the appropriate language code. | |
| | | /// \ingroup language | |
| | | void FLMAPI f_languageToStr( | |
| | | FLMINT iLangNum, | |
| | | char * pszLanguage | |
| | | ///< Language string that is to be converted to a code. | |
| | | ); | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: ASCII character constants and macros | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | | |
| | | #define ASCII_TAB 0x09 | |
| | | #define ASCII_NEWLINE 0x0A | |
| | | #define ASCII_CR 0x0D | |
| | | #define ASCII_CTRLZ 0x1A | |
| | | #define ASCII_SPACE 0x20 | |
| | | #define ASCII_DQUOTE 0x22 | |
| | | #define ASCII_POUND 0x23 | |
| | | #define ASCII_DOLLAR 0x24 | |
| | | #define ASCII_SQUOTE 0x27 | |
| | | #define ASCII_WILDCARD 0x2A | |
| | | #define ASCII_PLUS 0x2B | |
| | | #define ASCII_COMMA 0x2C | |
| | | #define ASCII_DASH 0x2D | |
| | | #define ASCII_MINUS 0x2D | |
| | | #define ASCII_DOT 0x2E | |
| | | #define ASCII_SLASH 0x2F | |
| | | #define ASCII_COLON 0x3A | |
| | | #define ASCII_SEMICOLON 0x3B | |
| | | #define ASCII_EQUAL 0x3D | |
| | | #define ASCII_QUESTIONMARK 0x3F | |
| | | #define ASCII_AT 0x40 | |
| | | #define ASCII_BACKSLASH 0x5C | |
| | | #define ASCII_CARAT 0x5E | |
| | | #define ASCII_UNDERSCORE 0x5F | |
| | | #define ASCII_TILDE 0x7E | |
| | | #define ASCII_AMP 0x26 | |
| | | | |
| | | #define ASCII_UPPER_A 0x41 | |
| | | #define ASCII_UPPER_B 0x42 | |
| | | #define ASCII_UPPER_C 0x43 | |
| | | #define ASCII_UPPER_D 0x44 | |
| | | #define ASCII_UPPER_E 0x45 | |
| | | #define ASCII_UPPER_F 0x46 | |
| | | #define ASCII_UPPER_G 0x47 | |
| | | #define ASCII_UPPER_H 0x48 | |
| | | #define ASCII_UPPER_I 0x49 | |
| | | #define ASCII_UPPER_J 0x4A | |
| | | #define ASCII_UPPER_K 0x4B | |
| | | #define ASCII_UPPER_L 0x4C | |
| | | #define ASCII_UPPER_M 0x4D | |
| | | #define ASCII_UPPER_N 0x4E | |
| | | #define ASCII_UPPER_O 0x4F | |
| | | #define ASCII_UPPER_P 0x50 | |
| | | #define ASCII_UPPER_Q 0x51 | |
| | | #define ASCII_UPPER_R 0x52 | |
| | | #define ASCII_UPPER_S 0x53 | |
| | | #define ASCII_UPPER_T 0x54 | |
| | | #define ASCII_UPPER_U 0x55 | |
| | | #define ASCII_UPPER_V 0x56 | |
| | | #define ASCII_UPPER_W 0x57 | |
| | | #define ASCII_UPPER_X 0x58 | |
| | | #define ASCII_UPPER_Y 0x59 | |
| | | #define ASCII_UPPER_Z 0x5A | |
| | | | |
| | | #define ASCII_LOWER_A 0x61 | |
| | | #define ASCII_LOWER_B 0x62 | |
| | | #define ASCII_LOWER_C 0x63 | |
| | | #define ASCII_LOWER_D 0x64 | |
| | | #define ASCII_LOWER_E 0x65 | |
| | | #define ASCII_LOWER_F 0x66 | |
| | | #define ASCII_LOWER_G 0x67 | |
| | | #define ASCII_LOWER_H 0x68 | |
| | | #define ASCII_LOWER_I 0x69 | |
| | | #define ASCII_LOWER_J 0x6A | |
| | | #define ASCII_LOWER_K 0x6B | |
| | | #define ASCII_LOWER_L 0x6C | |
| | | #define ASCII_LOWER_M 0x6D | |
| | | #define ASCII_LOWER_N 0x6E | |
| | | #define ASCII_LOWER_O 0x6F | |
| | | #define ASCII_LOWER_P 0x70 | |
| | | #define ASCII_LOWER_Q 0x71 | |
| | | #define ASCII_LOWER_R 0x72 | |
| | | #define ASCII_LOWER_S 0x73 | |
| | | #define ASCII_LOWER_T 0x74 | |
| | | #define ASCII_LOWER_U 0x75 | |
| | | #define ASCII_LOWER_V 0x76 | |
| | | #define ASCII_LOWER_W 0x77 | |
| | | #define ASCII_LOWER_X 0x78 | |
| | | #define ASCII_LOWER_Y 0x79 | |
| | | #define ASCII_LOWER_Z 0x7A | |
| | | | |
| | | #define ASCII_ZERO 0x30 | |
| | | #define ASCII_ONE 0x31 | |
| | | #define ASCII_TWO 0x32 | |
| | | #define ASCII_THREE 0x33 | |
| | | #define ASCII_FOUR 0x34 | |
| | | #define ASCII_FIVE 0x35 | |
| | | #define ASCII_SIX 0x36 | |
| | | #define ASCII_SEVEN 0x37 | |
| | | #define ASCII_EIGHT 0x38 | |
| | | #define ASCII_NINE 0x39 | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: Native character constants and macros | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | | |
| | | #define NATIVE_SPACE ' ' | |
| | | #define NATIVE_DOT '.' | |
| | | #define NATIVE_PLUS '+' | |
| | | #define NATIVE_MINUS '-' | |
| | | #define NATIVE_WILDCARD '*' | |
| | | #define NATIVE_QUESTIONMARK '?' | |
| | | | |
| | | #define NATIVE_UPPER_A 'A' | |
| | | #define NATIVE_UPPER_F 'F' | |
| | | #define NATIVE_UPPER_X 'X' | |
| | | #define NATIVE_UPPER_Z 'Z' | |
| | | #define NATIVE_LOWER_A 'a' | |
| | | #define NATIVE_LOWER_F 'f' | |
| | | #define NATIVE_LOWER_X 'x' | |
| | | #define NATIVE_LOWER_Z 'z' | |
| | | #define NATIVE_ZERO '0' | |
| | | #define NATIVE_NINE '9' | |
| | | | |
| | | #define f_stringToAscii( str) | |
| | | | |
| | | #define f_toascii( native) \ | |
| | | (native) | |
| | | | |
| | | #define f_tonative( ascii) \ | |
| | | (ascii) | |
| | | | |
| | | #define f_toupper( native) \ | |
| | | (((native) >= 'a' && (native) <= 'z') \ | |
| | | ? (native) - 'a' + 'A' \ | |
| | | : (native)) | |
| | | | |
| | | #define f_tolower( native) \ | |
| | | (((native) >= 'A' && (native) <= 'Z') \ | |
| | | ? (native) - 'A' + 'a' \ | |
| | | : (native)) | |
| | | | |
| | | #define f_islower( native) \ | |
| | | ((native) >= 'a' && (native) <= 'z') | |
| | | | |
| | | #ifndef FLM_ASCII_PLATFORM | |
| | | #define FLM_ASCII_PLATFORM | |
| | | #endif | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: Unicode character constants and macros | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | | |
| | | #define FLM_UNICODE_LINEFEED ((FLMUNICODE)10) | |
| | | #define FLM_UNICODE_SPACE ((FLMUNICODE | |
| | | )32) | |
| | | #define FLM_UNICODE_BANG ((FLMUNICODE | |
| | | )33) | |
| | | #define FLM_UNICODE_QUOTE ((FLMUNICODE | |
| | | )34) | |
| | | #define FLM_UNICODE_POUND ((FLMUNICODE | |
| | | )35) | |
| | | #define FLM_UNICODE_DOLLAR ((FLMUNICODE | |
| | | )36) | |
| | | #define FLM_UNICODE_PERCENT ((FLMUNICODE)37) | |
| | | #define FLM_UNICODE_AMP ((FLMUNICODE | |
| | | )38) | |
| | | #define FLM_UNICODE_APOS ((FLMUNICODE | |
| | | )39) | |
| | | #define FLM_UNICODE_LPAREN ((FLMUNICODE | |
| | | )40) | |
| | | #define FLM_UNICODE_RPAREN ((FLMUNICODE | |
| | | )41) | |
| | | #define FLM_UNICODE_ASTERISK ((FLMUNICODE)42) | |
| | | #define FLM_UNICODE_PLUS ((FLMUNICODE | |
| | | )43) | |
| | | #define FLM_UNICODE_COMMA ((FLMUNICODE | |
| | | )44) | |
| | | #define FLM_UNICODE_HYPHEN ((FLMUNICODE | |
| | | )45) | |
| | | #define FLM_UNICODE_PERIOD ((FLMUNICODE | |
| | | )46) | |
| | | #define FLM_UNICODE_FSLASH ((FLMUNICODE | |
| | | )47) | |
| | | | |
| | | #define FLM_UNICODE_0 ((FLMUNICODE | |
| | | )48) | |
| | | #define FLM_UNICODE_1 ((FLMUNICODE | |
| | | )49) | |
| | | #define FLM_UNICODE_2 ((FLMUNICODE | |
| | | )50) | |
| | | #define FLM_UNICODE_3 ((FLMUNICODE | |
| | | )51) | |
| | | #define FLM_UNICODE_4 ((FLMUNICODE | |
| | | )52) | |
| | | #define FLM_UNICODE_5 ((FLMUNICODE | |
| | | )53) | |
| | | #define FLM_UNICODE_6 ((FLMUNICODE | |
| | | )54) | |
| | | #define FLM_UNICODE_7 ((FLMUNICODE | |
| | | )55) | |
| | | #define FLM_UNICODE_8 ((FLMUNICODE | |
| | | )56) | |
| | | #define FLM_UNICODE_9 ((FLMUNICODE | |
| | | )57) | |
| | | | |
| | | #define FLM_UNICODE_COLON ((FLMUNICODE | |
| | | )58) | |
| | | #define FLM_UNICODE_SEMI ((FLMUNICODE | |
| | | )59) | |
| | | #define FLM_UNICODE_LT ((FLMUNICODE | |
| | | )60) | |
| | | #define FLM_UNICODE_EQ ((FLMUNICODE | |
| | | )61) | |
| | | #define FLM_UNICODE_GT ((FLMUNICODE | |
| | | )62) | |
| | | #define FLM_UNICODE_QUEST ((FLMUNICODE | |
| | | )63) | |
| | | #define FLM_UNICODE_ATSIGN ((FLMUNICODE | |
| | | )64) | |
| | | | |
| | | #define FLM_UNICODE_A ((FLMUNICODE | |
| | | )65) | |
| | | #define FLM_UNICODE_B ((FLMUNICODE | |
| | | )66) | |
| | | #define FLM_UNICODE_C ((FLMUNICODE | |
| | | )67) | |
| | | #define FLM_UNICODE_D ((FLMUNICODE | |
| | | )68) | |
| | | #define FLM_UNICODE_E ((FLMUNICODE | |
| | | )69) | |
| | | #define FLM_UNICODE_F ((FLMUNICODE | |
| | | )70) | |
| | | #define FLM_UNICODE_G ((FLMUNICODE | |
| | | )71) | |
| | | #define FLM_UNICODE_H ((FLMUNICODE | |
| | | )72) | |
| | | #define FLM_UNICODE_I ((FLMUNICODE | |
| | | )73) | |
| | | #define FLM_UNICODE_J ((FLMUNICODE | |
| | | )74) | |
| | | #define FLM_UNICODE_K ((FLMUNICODE | |
| | | )75) | |
| | | #define FLM_UNICODE_L ((FLMUNICODE | |
| | | )76) | |
| | | #define FLM_UNICODE_M ((FLMUNICODE | |
| | | )77) | |
| | | #define FLM_UNICODE_N ((FLMUNICODE | |
| | | )78) | |
| | | #define FLM_UNICODE_O ((FLMUNICODE | |
| | | )79) | |
| | | #define FLM_UNICODE_P ((FLMUNICODE | |
| | | )80) | |
| | | #define FLM_UNICODE_Q ((FLMUNICODE | |
| | | )81) | |
| | | #define FLM_UNICODE_R ((FLMUNICODE | |
| | | )82) | |
| | | #define FLM_UNICODE_S ((FLMUNICODE | |
| | | )83) | |
| | | #define FLM_UNICODE_T ((FLMUNICODE | |
| | | )84) | |
| | | #define FLM_UNICODE_U ((FLMUNICODE | |
| | | )85) | |
| | | #define FLM_UNICODE_V ((FLMUNICODE | |
| | | )86) | |
| | | #define FLM_UNICODE_W ((FLMUNICODE | |
| | | )87) | |
| | | #define FLM_UNICODE_X ((FLMUNICODE | |
| | | )88) | |
| | | #define FLM_UNICODE_Y ((FLMUNICODE | |
| | | )89) | |
| | | #define FLM_UNICODE_Z ((FLMUNICODE | |
| | | )90) | |
| | | | |
| | | #define FLM_UNICODE_LBRACKET ((FLMUNICODE)91) | |
| | | #define FLM_UNICODE_BACKSLASH ((FLMUNICODE)92) | |
| | | #define FLM_UNICODE_RBRACKET ((FLMUNICODE)93) | |
| | | #define FLM_UNICODE_UNDERSCORE ((FLMUNICODE)95) | |
| | | | |
| | | #define FLM_UNICODE_a ((FLMUNICODE | |
| | | )97) | |
| | | #define FLM_UNICODE_b ((FLMUNICODE | |
| | | )98) | |
| | | #define FLM_UNICODE_c ((FLMUNICODE | |
| | | )99) | |
| | | #define FLM_UNICODE_d ((FLMUNICODE | |
| | | )100) | |
| | | #define FLM_UNICODE_e ((FLMUNICODE | |
| | | )101) | |
| | | #define FLM_UNICODE_f ((FLMUNICODE | |
| | | )102) | |
| | | #define FLM_UNICODE_g ((FLMUNICODE | |
| | | )103) | |
| | | #define FLM_UNICODE_h ((FLMUNICODE | |
| | | )104) | |
| | | #define FLM_UNICODE_i ((FLMUNICODE | |
| | | )105) | |
| | | #define FLM_UNICODE_j ((FLMUNICODE | |
| | | )106) | |
| | | #define FLM_UNICODE_k ((FLMUNICODE | |
| | | )107) | |
| | | #define FLM_UNICODE_l ((FLMUNICODE | |
| | | )108) | |
| | | #define FLM_UNICODE_m ((FLMUNICODE | |
| | | )109) | |
| | | #define FLM_UNICODE_n ((FLMUNICODE | |
| | | )110) | |
| | | #define FLM_UNICODE_o ((FLMUNICODE | |
| | | )111) | |
| | | #define FLM_UNICODE_p ((FLMUNICODE | |
| | | )112) | |
| | | #define FLM_UNICODE_q ((FLMUNICODE | |
| | | )113) | |
| | | #define FLM_UNICODE_r ((FLMUNICODE | |
| | | )114) | |
| | | #define FLM_UNICODE_s ((FLMUNICODE | |
| | | )115) | |
| | | #define FLM_UNICODE_t ((FLMUNICODE | |
| | | )116) | |
| | | #define FLM_UNICODE_u ((FLMUNICODE | |
| | | )117) | |
| | | #define FLM_UNICODE_v ((FLMUNICODE | |
| | | )118) | |
| | | #define FLM_UNICODE_w ((FLMUNICODE | |
| | | )119) | |
| | | #define FLM_UNICODE_x ((FLMUNICODE | |
| | | )120) | |
| | | #define FLM_UNICODE_y ((FLMUNICODE | |
| | | )121) | |
| | | #define FLM_UNICODE_z ((FLMUNICODE | |
| | | )122) | |
| | | | |
| | | #define FLM_UNICODE_LBRACE ((FLMUNICODE | |
| | | )123) | |
| | | #define FLM_UNICODE_PIPE ((FLMUNICODE | |
| | | )124) | |
| | | #define FLM_UNICODE_RBRACE ((FLMUNICODE | |
| | | )125) | |
| | | #define FLM_UNICODE_TILDE ((FLMUNICODE | |
| | | )126) | |
| | | #define FLM_UNICODE_C_CEDILLA ((FLMUNICODE)199) | |
| | | #define FLM_UNICODE_N_TILDE ((FLMUNICODE)209) | |
| | | #define FLM_UNICODE_c_CEDILLA ((FLMUNICODE)231) | |
| | | #define FLM_UNICODE_n_TILDE ((FLMUNICODE)241) | |
| | | | |
| | | FINLINE FLMBOOL f_isvowel( | |
| | | FLMUNICODE uChar) | |
| | | { | |
| | | uChar = f_uniToLower( uChar); | |
| | | | |
| | | if( uChar == FLM_UNICODE_a || | |
| | | uChar == FLM_UNICODE_e || | |
| | | uChar == FLM_UNICODE_i || | |
| | | uChar == FLM_UNICODE_o || | |
| | | uChar == FLM_UNICODE_u || | |
| | | uChar == FLM_UNICODE_y) | |
| | | { | |
| | | return( TRUE); | |
| | | } | |
| | | | |
| | | return( FALSE); | |
| | | } | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: Endian macros | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | | |
| | | FINLINE FLMUINT16 f_littleEndianToUINT16( | |
| | | const FLMBYTE * pucBuf) | |
| | | { | |
| | | FLMUINT16 ui16Val = 0; | |
| | | | |
| | | ui16Val |= ((FLMUINT16)pucBuf[ 1]) << 8; | |
| | | ui16Val |= ((FLMUINT16)pucBuf[ 0]); | |
| | | | |
| | | return( ui16Val); | |
| | | } | |
| | | | |
| | | FINLINE FLMUINT32 f_littleEndianToUINT32( | |
| | | const FLMBYTE * pucBuf) | |
| | | { | |
| | | FLMUINT32 ui32Val = 0; | |
| | | | |
| | | ui32Val |= ((FLMUINT32)pucBuf[ 3]) << 24; | |
| | | ui32Val |= ((FLMUINT32)pucBuf[ 2]) << 16; | |
| | | ui32Val |= ((FLMUINT32)pucBuf[ 1]) << 8; | |
| | | ui32Val |= ((FLMUINT32)pucBuf[ 0]); | |
| | | | |
| | | return( ui32Val); | |
| | | } | |
| | | | |
| | | FINLINE FLMUINT64 f_littleEndianToUINT64( | |
| | | const FLMBYTE * pucBuf) | |
| | | { | |
| | | FLMUINT64 ui64Val = 0; | |
| | | | |
| | | ui64Val |= ((FLMUINT64)pucBuf[ 7]) << 56; | |
| | | ui64Val |= ((FLMUINT64)pucBuf[ 6]) << 48; | |
| | | ui64Val |= ((FLMUINT64)pucBuf[ 5]) << 40; | |
| | | ui64Val |= ((FLMUINT64)pucBuf[ 4]) << 32; | |
| | | ui64Val |= ((FLMUINT64)pucBuf[ 3]) << 24; | |
| | | ui64Val |= ((FLMUINT64)pucBuf[ 2]) << 16; | |
| | | ui64Val |= ((FLMUINT64)pucBuf[ 1]) << 8; | |
| | | ui64Val |= ((FLMUINT64)pucBuf[ 0]); | |
| | | | |
| | | return( ui64Val); | |
| | | } | |
| | | | |
| | | FINLINE void f_UINT16ToLittleEndian( | |
| | | FLMUINT16 ui16Num, | |
| | | FLMBYTE * pucBuf) | |
| | | { | |
| | | pucBuf[ 1] = (FLMBYTE) (ui16Num >> 8); | |
| | | pucBuf[ 0] = (FLMBYTE) (ui16Num); | |
| | | } | |
| | | | |
| | | FINLINE void f_UINT32ToLittleEndian( | |
| | | FLMUINT32 ui32Num, | |
| | | FLMBYTE * pucBuf) | |
| | | { | |
| | | pucBuf[ 3] = (FLMBYTE) (ui32Num >> 24); | |
| | | pucBuf[ 2] = (FLMBYTE) (ui32Num >> 16); | |
| | | pucBuf[ 1] = (FLMBYTE) (ui32Num >> 8); | |
| | | pucBuf[ 0] = (FLMBYTE) (ui32Num); | |
| | | } | |
| | | | |
| | | FINLINE void f_UINT64ToLittleEndian( | |
| | | FLMUINT64 ui64Num, | |
| | | FLMBYTE * pucBuf) | |
| | | { | |
| | | pucBuf[ 7] = (FLMBYTE) (ui64Num >> 56); | |
| | | pucBuf[ 6] = (FLMBYTE) (ui64Num >> 48); | |
| | | pucBuf[ 5] = (FLMBYTE) (ui64Num >> 40); | |
| | | pucBuf[ 4] = (FLMBYTE) (ui64Num >> 32); | |
| | | pucBuf[ 3] = (FLMBYTE) (ui64Num >> 24); | |
| | | pucBuf[ 2] = (FLMBYTE) (ui64Num >> 16); | |
| | | pucBuf[ 1] = (FLMBYTE) (ui64Num >> 8); | |
| | | pucBuf[ 0] = (FLMBYTE) (ui64Num); | |
| | | } | |
| | | | |
| | | FINLINE FLMUINT16 f_bigEndianToUINT16( | |
| | | const FLMBYTE * pucBuf) | |
| | | { | |
| | | FLMUINT16 ui16Val = 0; | |
| | | | |
| | | ui16Val |= ((FLMUINT16)pucBuf[ 0]) << 8; | |
| | | ui16Val |= ((FLMUINT16)pucBuf[ 1]); | |
| | | | |
| | | return( ui16Val); | |
| | | } | |
| | | | |
| | | FINLINE FLMUINT32 f_bigEndianToUINT32( | |
| | | const FLMBYTE * pucBuf) | |
| | | { | |
| | | FLMUINT32 ui32Val = 0; | |
| | | | |
| | | ui32Val |= ((FLMUINT32)pucBuf[ 0]) << 24; | |
| | | ui32Val |= ((FLMUINT32)pucBuf[ 1]) << 16; | |
| | | ui32Val |= ((FLMUINT32)pucBuf[ 2]) << 8; | |
| | | ui32Val |= ((FLMUINT32)pucBuf[ 3]); | |
| | | | |
| | | return( ui32Val); | |
| | | } | |
| | | | |
| | | FINLINE FLMUINT64 f_bigEndianToUINT64( | |
| | | const FLMBYTE * pucBuf) | |
| | | { | |
| | | FLMUINT64 ui64Val = 0; | |
| | | | |
| | | ui64Val |= ((FLMUINT64)pucBuf[ 0]) << 56; | |
| | | ui64Val |= ((FLMUINT64)pucBuf[ 1]) << 48; | |
| | | ui64Val |= ((FLMUINT64)pucBuf[ 2]) << 40; | |
| | | ui64Val |= ((FLMUINT64)pucBuf[ 3]) << 32; | |
| | | ui64Val |= ((FLMUINT64)pucBuf[ 4]) << 24; | |
| | | ui64Val |= ((FLMUINT64)pucBuf[ 5]) << 16; | |
| | | ui64Val |= ((FLMUINT64)pucBuf[ 6]) << 8; | |
| | | ui64Val |= ((FLMUINT64)pucBuf[ 7]); | |
| | | | |
| | | return( ui64Val); | |
| | | } | |
| | | | |
| | | FINLINE FLMINT16 f_bigEndianToINT16( | |
| | | const FLMBYTE * pucBuf) | |
| | | { | |
| | | FLMINT16 i16Val = 0; | |
| | | | |
| | | i16Val |= ((FLMINT16)pucBuf[ 0]) << 8; | |
| | | i16Val |= ((FLMINT16)pucBuf[ 1]); | |
| | | | |
| | | return( i16Val); | |
| | | } | |
| | | | |
| | | FINLINE FLMINT32 f_bigEndianToINT32( | |
| | | const FLMBYTE * pucBuf) | |
| | | { | |
| | | FLMINT32 i32Val = 0; | |
| | | | |
| | | i32Val |= ((FLMINT32)pucBuf[ 0]) << 24; | |
| | | i32Val |= ((FLMINT32)pucBuf[ 1]) << 16; | |
| | | i32Val |= ((FLMINT32)pucBuf[ 2]) << 8; | |
| | | i32Val |= ((FLMINT32)pucBuf[ 3]); | |
| | | | |
| | | return( i32Val); | |
| | | } | |
| | | | |
| | | FINLINE FLMINT64 f_bigEndianToINT64( | |
| | | const FLMBYTE * pucBuf) | |
| | | { | |
| | | FLMINT64 i64Val = 0; | |
| | | | |
| | | i64Val |= ((FLMINT64)pucBuf[ 0]) << 56; | |
| | | i64Val |= ((FLMINT64)pucBuf[ 1]) << 48; | |
| | | i64Val |= ((FLMINT64)pucBuf[ 2]) << 40; | |
| | | i64Val |= ((FLMINT64)pucBuf[ 3]) << 32; | |
| | | i64Val |= ((FLMINT64)pucBuf[ 4]) << 24; | |
| | | i64Val |= ((FLMINT64)pucBuf[ 5]) << 16; | |
| | | i64Val |= ((FLMINT64)pucBuf[ 6]) << 8; | |
| | | i64Val |= ((FLMINT64)pucBuf[ 7]); | |
| | | | |
| | | return( i64Val); | |
| | | } | |
| | | | |
| | | FINLINE void f_UINT32ToBigEndian( | |
| | | FLMUINT32 ui32Num, | |
| | | FLMBYTE * pucBuf) | |
| | | { | |
| | | pucBuf[ 0] = (FLMBYTE) (ui32Num >> 24); | |
| | | pucBuf[ 1] = (FLMBYTE) (ui32Num >> 16); | |
| | | pucBuf[ 2] = (FLMBYTE) (ui32Num >> 8); | |
| | | pucBuf[ 3] = (FLMBYTE) (ui32Num); | |
| | | } | |
| | | | |
| | | FINLINE void f_INT32ToBigEndian( | |
| | | FLMINT32 i32Num, | |
| | | FLMBYTE * pucBuf) | |
| | | { | |
| | | pucBuf[ 0] = (FLMBYTE) (i32Num >> 24); | |
| | | pucBuf[ 1] = (FLMBYTE) (i32Num >> 16); | |
| | | pucBuf[ 2] = (FLMBYTE) (i32Num >> 8); | |
| | | pucBuf[ 3] = (FLMBYTE) (i32Num); | |
| | | } | |
| | | | |
| | | FINLINE void f_INT64ToBigEndian( | |
| | | FLMINT64 i64Num, | |
| | | FLMBYTE * pucBuf) | |
| | | { | |
| | | pucBuf[ 0] = (FLMBYTE) (i64Num >> 56); | |
| | | pucBuf[ 1] = (FLMBYTE) (i64Num >> 48); | |
| | | pucBuf[ 2] = (FLMBYTE) (i64Num >> 40); | |
| | | pucBuf[ 3] = (FLMBYTE) (i64Num >> 32); | |
| | | pucBuf[ 4] = (FLMBYTE) (i64Num >> 24); | |
| | | pucBuf[ 5] = (FLMBYTE) (i64Num >> 16); | |
| | | pucBuf[ 6] = (FLMBYTE) (i64Num >> 8); | |
| | | pucBuf[ 7] = (FLMBYTE) (i64Num); | |
| | | } | |
| | | | |
| | | FINLINE void f_UINT64ToBigEndian( | |
| | | FLMUINT64 ui64Num, | |
| | | FLMBYTE * pucBuf) | |
| | | { | |
| | | pucBuf[ 0] = (FLMBYTE) (ui64Num >> 56); | |
| | | pucBuf[ 1] = (FLMBYTE) (ui64Num >> 48); | |
| | | pucBuf[ 2] = (FLMBYTE) (ui64Num >> 40); | |
| | | pucBuf[ 3] = (FLMBYTE) (ui64Num >> 32); | |
| | | pucBuf[ 4] = (FLMBYTE) (ui64Num >> 24); | |
| | | pucBuf[ 5] = (FLMBYTE) (ui64Num >> 16); | |
| | | pucBuf[ 6] = (FLMBYTE) (ui64Num >> 8); | |
| | | pucBuf[ 7] = (FLMBYTE) (ui64Num); | |
| | | } | |
| | | | |
| | | FINLINE void f_INT16ToBigEndian( | |
| | | FLMINT16 i16Num, | |
| | | FLMBYTE * pucBuf) | |
| | | { | |
| | | pucBuf[ 0] = (FLMBYTE) (i16Num >> 8); | |
| | | pucBuf[ 1] = (FLMBYTE) (i16Num); | |
| | | } | |
| | | | |
| | | FINLINE void f_UINT16ToBigEndian( | |
| | | FLMUINT16 ui16Num, | |
| | | FLMBYTE * pucBuf) | |
| | | { | |
| | | pucBuf[ 0] = (FLMBYTE) (ui16Num >> 8); | |
| | | pucBuf[ 1] = (FLMBYTE) (ui16Num); | |
| | | } | |
| | | | |
| | | #if defined( FLM_STRICT_ALIGNMENT) || defined( FLM_BIG_ENDIAN) | |
| | | | |
| | | FINLINE FLMUINT16 FB2UW( | |
| | | const FLMBYTE * pucBuf) | |
| | | { | |
| | | FLMUINT16 ui16Val = 0; | |
| | | | |
| | | ui16Val |= ((FLMUINT16)pucBuf[ 1]) << 8; | |
| | | ui16Val |= ((FLMUINT16)pucBuf[ 0]); | |
| | | | |
| | | return( ui16Val); | |
| | | } | |
| | | | |
| | | FINLINE FLMUINT32 FB2UD( | |
| | | const FLMBYTE * pucBuf) | |
| | | { | |
| | | FLMUINT32 ui32Val = 0; | |
| | | | |
| | | ui32Val |= ((FLMUINT32)pucBuf[ 3]) << 24; | |
| | | ui32Val |= ((FLMUINT32)pucBuf[ 2]) << 16; | |
| | | ui32Val |= ((FLMUINT32)pucBuf[ 1]) << 8; | |
| | | ui32Val |= ((FLMUINT32)pucBuf[ 0]); | |
| | | | |
| | | return( ui32Val); | |
| | | } | |
| | | | |
| | | FINLINE FLMUINT64 FB2U64( | |
| | | const FLMBYTE * pucBuf) | |
| | | { | |
| | | FLMUINT64 ui64Val = 0; | |
| | | | |
| | | ui64Val |= ((FLMUINT64)pucBuf[ 7]) << 56; | |
| | | ui64Val |= ((FLMUINT64)pucBuf[ 6]) << 48; | |
| | | ui64Val |= ((FLMUINT64)pucBuf[ 5]) << 40; | |
| | | ui64Val |= ((FLMUINT64)pucBuf[ 4]) << 32; | |
| | | ui64Val |= ((FLMUINT64)pucBuf[ 3]) << 24; | |
| | | ui64Val |= ((FLMUINT64)pucBuf[ 2]) << 16; | |
| | | ui64Val |= ((FLMUINT64)pucBuf[ 1]) << 8; | |
| | | ui64Val |= ((FLMUINT64)pucBuf[ 0]); | |
| | | | |
| | | return( ui64Val); | |
| | | } | |
| | | | |
| | | FINLINE void UW2FBA( | |
| | | FLMUINT uiNum, | |
| | | FLMBYTE * pucBuf) | |
| | | { | |
| | | f_assert( uiNum <= FLM_MAX_UINT16); | |
| | | | |
| | | pucBuf[ 1] = (FLMBYTE) (uiNum >> 8); | |
| | | pucBuf[ 0] = (FLMBYTE) (uiNum); | |
| | | } | |
| | | | |
| | | FINLINE void UD2FBA( | |
| | | FLMUINT uiNum, | |
| | | FLMBYTE * pucBuf) | |
| | | { | |
| | | f_assert( uiNum <= FLM_MAX_UINT32); | |
| | | | |
| | | pucBuf[ 3] = (FLMBYTE) (uiNum >> 24); | |
| | | pucBuf[ 2] = (FLMBYTE) (uiNum >> 16); | |
| | | pucBuf[ 1] = (FLMBYTE) (uiNum >> 8); | |
| | | pucBuf[ 0] = (FLMBYTE) (uiNum); | |
| | | } | |
| | | | |
| | | FINLINE void U642FBA( | |
| | | FLMUINT64 ui64Num, | |
| | | FLMBYTE * pucBuf) | |
| | | { | |
| | | pucBuf[ 7] = (FLMBYTE) (ui64Num >> 56); | |
| | | pucBuf[ 6] = (FLMBYTE) (ui64Num >> 48); | |
| | | pucBuf[ 5] = (FLMBYTE) (ui64Num >> 40); | |
| | | pucBuf[ 4] = (FLMBYTE) (ui64Num >> 32); | |
| | | pucBuf[ 3] = (FLMBYTE) (ui64Num >> 24); | |
| | | pucBuf[ 2] = (FLMBYTE) (ui64Num >> 16); | |
| | | pucBuf[ 1] = (FLMBYTE) (ui64Num >> 8); | |
| | | pucBuf[ 0] = (FLMBYTE) (ui64Num); | |
| | | } | |
| | | | |
| | | #else | |
| | | | |
| | | #define FB2UW( fbp) \ | |
| | | (*((FLMUINT16 *)(fbp))) | |
| | | | |
| | | #define FB2UD( fbp) \ | |
| | | (*((FLMUINT32 *)(fbp))) | |
| | | | |
| | | #define FB2U64( fbp) \ | |
| | | (*((FLMUINT64 *)(fbp))) | |
| | | | |
| | | #define UW2FBA( uw, fbp) \ | |
| | | (*((FLMUINT16 *)(fbp)) = ((FLMUINT16) (uw))) | |
| | | | |
| | | #define UD2FBA( uw, fbp) \ | |
| | | (*((FLMUINT32 *)(fbp)) = ((FLMUINT32) (uw))) | |
| | | | |
| | | #define U642FBA( uw, fbp) \ | |
| | | (*((FLMUINT64 *)(fbp)) = ((FLMUINT64) (uw))) | |
| | | | |
| | | #endif | |
| | | | |
| | | #ifdef FLM_BIG_ENDIAN | |
| | | #define LO( wrd) \ | |
| | | (*((FLMUINT8 *)&wrd + 1)) | |
| | | | |
| | | #define HI( wrd) \ | |
| | | (*(FLMUINT8 *)&wrd) | |
| | | #else | |
| | | #define LO(wrd) \ | |
| | | (*(FLMUINT8 *)&wrd) | |
| | | | |
| | | #define HI(wrd) \ | |
| | | (*((FLMUINT8 *)&wrd + 1)) | |
| | | #endif | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: File path functions and macros | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | | |
| | | #if defined( FLM_WIN) || defined( FLM_NLM) | |
| | | #define FWSLASH '/' | |
| | | #define SLASH '\\' | |
| | | #define SSLASH "\\" | |
| | | #define COLON ':' | |
| | | #define PERIOD '.' | |
| | | #define PARENT_DIR ".." | |
| | | #define CURRENT_DIR "." | |
| | | #else | |
| | | #ifndef FWSLASH | |
| | | #define FWSLASH '/' | |
| | | #endif | |
| | | | |
| | | #ifndef SLASH | |
| | | #define SLASH '/' | |
| | | #endif | |
| | | | |
| | | #ifndef SSLASH | |
| | | #define SSLASH "/" | |
| | | #endif | |
| | | | |
| | | #ifndef COLON | |
| | | #define COLON ':' | |
| | | #endif | |
| | | | |
| | | #ifndef PERIOD | |
| | | #define PERIOD '.' | |
| | | #endif | |
| | | | |
| | | #ifndef PARENT_DIR | |
| | | #define PARENT_DIR ".." | |
| | | #endif | |
| | | | |
| | | #ifndef CURRENT_DIR | |
| | | #define CURRENT_DIR "." | |
| | | #endif | |
| | | #endif | |
| | | | |
| | | FLMUINT FLMAPI f_getMaxFileSize( void); | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: CPU release and sleep functions | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | | |
| | | void FLMAPI f_yieldCPU( void); | |
| | | | |
| | | void FLMAPI f_sleep( | |
| | | FLMUINT uiMilliseconds); | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: Time, date, timestamp functions | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | | |
| | | typedef struct | |
| | | { | |
| | | FLMUINT16 year; | |
| | | FLMBYTE month; | |
| | | FLMBYTE day; | |
| | | } F_DATE; | |
| | | | |
| | | typedef struct | |
| | | { | |
| | | FLMBYTE hour; | |
| | | FLMBYTE minute; | |
| | | FLMBYTE second; | |
| | | FLMBYTE hundredth; | |
| | | } F_TIME; | |
| | | | |
| | | typedef struct | |
| | | { | |
| | | FLMUINT16 year; | |
| | | FLMBYTE month; | |
| | | FLMBYTE day; | |
| | | FLMBYTE hour; | |
| | | FLMBYTE minute; | |
| | | FLMBYTE second; | |
| | | FLMBYTE hundredth; | |
| | | } F_TMSTAMP; | |
| | | | |
| | | #define f_timeIsLeapYear(year) \ | |
| | | ((((year) & 0x03) == 0) && (((year) % 100) != 0) || (((year) | |
| | | % 400) == 0)) | |
| | | | |
| | | void f_timeGetSeconds( | |
| | | FLMUINT * puiSeconds); | |
| | | | |
| | | void f_timeGetTimeStamp( | |
| | | F_TMSTAMP * pTimeStamp); | |
| | | | |
| | | FLMINT f_timeGetLocalOffset( void); | |
| | | | |
| | | void f_timeSecondsToDate( | |
| | | FLMUINT uiSeconds, | |
| | | F_TMSTAMP * pTimeStamp); | |
| | | | |
| | | void f_timeDateToSeconds( | |
| | | F_TMSTAMP * pTimeStamp, | |
| | | FLMUINT * puiSeconds); | |
| | | | |
| | | FLMINT f_timeCompareTimeStamps( | |
| | | F_TMSTAMP * pTimeStamp1, | |
| | | F_TMSTAMP * pTimeStamp2, | |
| | | FLMUINT flag); | |
| | | | |
| | | FINLINE FLMUINT f_localTimeToUTC( | |
| | | FLMUINT uiSeconds) | |
| | | { | |
| | | return( uiSeconds + f_timeGetLocalOffset()); | |
| | | } | |
| | | | |
| | | FLMUINT FLMAPI FLM_GET_TIMER( void); | |
| | | | |
| | | FLMUINT FLMAPI FLM_ELAPSED_TIME( | |
| | | FLMUINT uiLaterTime, | |
| | | FLMUINT uiEarlierTime); | |
| | | | |
| | | FLMUINT FLMAPI FLM_SECS_TO_TIMER_UNITS( | |
| | | FLMUINT uiSeconds); | |
| | | | |
| | | FLMUINT FLMAPI FLM_TIMER_UNITS_TO_SECS( | |
| | | FLMUINT uiTU); | |
| | | | |
| | | FLMUINT FLM_TIMER_UNITS_TO_MILLI( | |
| | | FLMUINT uiTU); | |
| | | | |
| | | FLMUINT FLM_MILLI_TO_TIMER_UNITS( | |
| | | FLMUINT uiMilliSeconds); | |
| | | | |
| | | void FLMAPI f_addElapsedTime( | |
| | | F_TMSTAMP * pStartTime, | |
| | | FLMUINT64 * pui64ElapMilli); | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: Quick sort | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | | |
| | | typedef FLMINT (FLMAPI * F_SORT_COMPARE_FUNC)( | |
| | | void * pvBuffer, | |
| | | FLMUINT uiPos1, | |
| | | FLMUINT uiPos2); | |
| | | | |
| | | typedef void (FLMAPI * F_SORT_SWAP_FUNC)( | |
| | | void * pvBuffer, | |
| | | FLMUINT uiPos1, | |
| | | FLMUINT uiPos2); | |
| | | | |
| | | FLMINT FLMAPI f_qsortUINTCompare( | |
| | | void * pvBuffer, | |
| | | FLMUINT uiPos1, | |
| | | FLMUINT uiPos2); | |
| | | | |
| | | void FLMAPI f_qsortUINTSwap( | |
| | | void * pvBuffer, | |
| | | FLMUINT uiPos1, | |
| | | FLMUINT uiPos2); | |
| | | | |
| | | void FLMAPI f_qsort( | |
| | | void * pvBuffer, | |
| | | FLMUINT uiLowerBounds, | |
| | | FLMUINT uiUpperBounds, | |
| | | F_SORT_COMPARE_FUNC fnCompare, | |
| | | F_SORT_SWAP_FUNC fnSwap); | |
| | | | |
| | | /******************************************************************* | |
| | | ********* | |
| | | Desc: Environment | |
| | | ******************************************************************** | |
| | | ********/ | |
| | | | |
| | | void FLMAPI f_getenv( | |
| | | const char * pszKey, | |