ftk.h | ftk.h | |||
---|---|---|---|---|
skipping to change at line 340 | skipping to change at line 340 | |||
#endif | #endif | |||
#if defined( FLM_WIN) || defined( FLM_NLM) | #if defined( FLM_WIN) || defined( FLM_NLM) | |||
#define FLMATOMIC volatile long | #define FLMATOMIC volatile long | |||
#else | #else | |||
#define FLMATOMIC volatile int | #define FLMATOMIC volatile int | |||
#endif | #endif | |||
/// \addtogroup retcodes | /// \addtogroup retcodes | |||
/// @{ | /// @{ | |||
typedef FLMINT RCODE; ///< Return code | typedef FLMINT32 RCODE; ///< Return code | |||
/// @} | /// @} | |||
typedef FLMINT FLMBOOL; | typedef FLMINT32 FLMBOOL; | |||
#define F_FILENAME_SIZE 256 | #define F_FILENAME_SIZE 256 | |||
#define F_PATH_MAX_SIZE 256 | #define F_PATH_MAX_SIZE 256 | |||
#define F_WAITFOREVER (0xFFFFFFFF) | #define F_WAITFOREVER (0xFFFFFFFF) | |||
#define FLM_MAX_UINT ((FLMUINT)(-1L)) | #define FLM_MAX_UINT ((FLMUINT)(-1L)) | |||
#define FLM_MAX_INT ((FLMINT)(((FLMUINT)(-1L)) >> 1)) | #define FLM_MAX_INT ((FLMINT)(((FLMUINT)(-1L)) >> 1)) | |||
#define FLM_MIN_INT ((FLMINT)((((FLMUINT)(-1L)) >> 1) + 1)) | #define FLM_MIN_INT ((FLMINT)((((FLMUINT)(-1L)) >> 1) + 1)) | |||
#define FLM_MAX_UINT32 ((FLMUINT32)(0xFFFFFFFFL)) | #define FLM_MAX_UINT32 ((FLMUINT32)(0xFFFFFFFFL)) | |||
#define FLM_MAX_INT32 ((FLMINT32)(0x7FFFFFFFL)) | #define FLM_MAX_INT32 ((FLMINT32)(0x7FFFFFFFL)) | |||
skipping to change at line 379 | skipping to change at line 379 | |||
#endif | #endif | |||
// xpcselany keeps MS compilers from complaining about multiple defi nitions | // xpcselany keeps MS compilers from complaining about multiple defi nitions | |||
#if defined(_MSC_VER) | #if defined(_MSC_VER) | |||
#define xpcselany __declspec(selectany) | #define xpcselany __declspec(selectany) | |||
#else | #else | |||
#define xpcselany | #define xpcselany | |||
#endif | #endif | |||
#if !defined( FLM_UNIX) && !defined( FLM_64BIT) | ||||
#define FLM_PACK_STRUCTS | ||||
#ifdef FLM_WIN | ||||
// For some reason, Windows emits a warning when the | ||||
packing | ||||
// is changed. | ||||
#pragma warning( disable : 4103) | ||||
#endif | ||||
#endif | ||||
#ifdef FLM_PACK_STRUCTS | ||||
#pragma pack(push, 1) | ||||
#endif | ||||
typedef struct | typedef struct | |||
{ | { | |||
FLMUINT32 l; | FLMUINT32 l; | |||
FLMUINT16 w1; | FLMUINT16 w1; | |||
FLMUINT16 w2; | FLMUINT16 w2; | |||
FLMUINT8 b[ 8]; | FLMUINT8 b[ 8]; | |||
} FLM_GUID; | } FLM_GUID; | |||
#ifdef FLM_PACK_STRUCTS | ||||
#pragma pack(pop) | ||||
#endif | ||||
#define RFLMIID const FLM_GUID & | #define RFLMIID const FLM_GUID & | |||
#define RFLMCLSID const FLM_GUID & | #define RFLMCLSID const FLM_GUID & | |||
#define FLMGUID FLM_GUID | #define FLMGUID FLM_GUID | |||
#define FLMCLSID FLM_GUID | #define FLMCLSID FLM_GUID | |||
// FLM_DEFINE_GUID may be used to define or declare a GUID | // FLM_DEFINE_GUID may be used to define or declare a GUID | |||
// #define FLM_INIT_GUID before including this header file when | // #define FLM_INIT_GUID before including this header file when | |||
// you want to define the guid, all other inclusions will only decla re | // you want to define the guid, all other inclusions will only decla re | |||
// the guid, not define it. | // the guid, not define it. | |||
skipping to change at line 648 | skipping to change at line 667 | |||
#ifndef FALSE | #ifndef FALSE | |||
#define FALSE 0 | #define FALSE 0 | |||
#endif | #endif | |||
#define f_offsetof(s,m) \ | #define f_offsetof(s,m) \ | |||
(((FLMSIZET)&((s *)1)->m) - 1) | (((FLMSIZET)&((s *)1)->m) - 1) | |||
/******************************************************************* ********* | /******************************************************************* ********* | |||
Desc: Language constants | Desc: Language constants | |||
IMPORTANT NOTE: If langes are added or changed, the corresponding de | ||||
finitions | ||||
in java and C# must also be updated. | ||||
******************************************************************** ********/ | ******************************************************************** ********/ | |||
/// \addtogroup flm_languages | /// \addtogroup flm_languages | |||
/// @{ | /// @{ | |||
#define FLM_US_LANG 0 ///< English, United States | #define FLM_US_LANG 0 ///< English, United States | |||
#define FLM_AF_LANG 1 ///< Afrikaans | #define FLM_AF_LANG 1 ///< Afrikaans | |||
#define FLM_AR_LANG 2 ///< Arabic | #define FLM_AR_LANG 2 ///< Arabic | |||
#define FLM_CA_LANG 3 ///< Catalan | #define FLM_CA_LANG 3 ///< Catalan | |||
#define FLM_HR_LANG 4 ///< Croatian | #define FLM_HR_LANG 4 ///< Croatian | |||
#define FLM_CZ_LANG 5 ///< Czech | #define FLM_CZ_LANG 5 ///< Czech | |||
skipping to change at line 841 | skipping to change at line 862 | |||
#define FLM_INCL 0x0010 | #define FLM_INCL 0x0010 | |||
#define FLM_EXCL 0x0020 | #define FLM_EXCL 0x0020 | |||
#define FLM_EXACT 0x0040 | #define FLM_EXACT 0x0040 | |||
#define FLM_KEY_EXACT 0x0080 | #define FLM_KEY_EXACT 0x0080 | |||
#define FLM_FIRST 0x0100 | #define FLM_FIRST 0x0100 | |||
#define FLM_LAST 0x0200 | #define FLM_LAST 0x0200 | |||
/******************************************************************* ********* | /******************************************************************* ********* | |||
Desc: Comparison flags for strings | Desc: Comparison flags for strings | |||
IMPORTANT NOTE: If changes are made to these, corresponding changes | ||||
need to | ||||
be made in the java and C# code where they are defined. | ||||
******************************************************************** ********/ | ******************************************************************** ********/ | |||
/// \addtogroup compare_rules | /// \addtogroup compare_rules | |||
/// @{ | /// @{ | |||
#define FLM_COMP_CASE_INSENSITIVE 0x0001 ///< 0x0001 = Do case sensitive comparison. | #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_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_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_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_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_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_LEADING_SPACE 0x0040 ///< 0x0040 = Ignore leading space characters during comparison. | |||
skipping to change at line 924 | skipping to change at line 947 | |||
#define F_PUSH_FORECOLOR "%+F" | #define F_PUSH_FORECOLOR "%+F" | |||
#define F_POP_FORECOLOR "%-F" | #define F_POP_FORECOLOR "%-F" | |||
#define F_PUSH_BACKCOLOR "%+B" | #define F_PUSH_BACKCOLOR "%+B" | |||
#define F_POP_BACKCOLOR "%-B" | #define F_POP_BACKCOLOR "%-B" | |||
#define F_PUSHCOLOR F_PUSH_FORECOLOR F_PUSH_BACK COLOR | #define F_PUSHCOLOR F_PUSH_FORECOLOR F_PUSH_BACK COLOR | |||
#define F_POPCOLOR F_POP_FORECOLOR F_POP_BACKCO LOR | #define F_POPCOLOR F_POP_FORECOLOR F_POP_BACKCO LOR | |||
#ifdef FLM_PACK_STRUCTS | ||||
#pragma pack(push, 1) | ||||
#endif | ||||
// IMPORTANT NOTE: This structure needs to be kept in sync with corr | ||||
esponding | ||||
// structures and classes in java and C#. | ||||
/******************************************************************* ********* | /******************************************************************* ********* | |||
/// Structure for reporting slab usage information in cache. | /// Structure for reporting slab usage information in cache. | |||
******************************************************************** ********/ | ******************************************************************** ********/ | |||
typedef struct | typedef struct | |||
{ | { | |||
FLMUINT64 ui64Slabs; ///< Total slabs currently allocated. | FLMUINT64 ui64Slabs; ///< Total slabs currently allocated. | |||
FLMUINT64 ui64SlabBytes; ///< Total bytes currently allocated in slabs. | FLMUINT64 ui64SlabBytes; ///< Total bytes currently allocated in slabs. | |||
FLMUINT64 ui64AllocatedCells; ///< Total cells allocated within slabs. | FLMUINT64 ui64AllocatedCells; ///< Total cells allocated within slabs. | |||
FLMUINT64 ui64FreeCells; ///< Total cells that are free within slabs. | FLMUINT64 ui64FreeCells; ///< Total cells that are free within slabs. | |||
} FLM_SLAB_USAGE; | } FLM_SLAB_USAGE; | |||
skipping to change at line 5117 | skipping to change at line 5146 | |||
void clearList( | void clearList( | |||
FLMUINT uiList = 0); | FLMUINT uiList = 0); | |||
private: | private: | |||
FLMUINT m_uiListNodeCnt; | FLMUINT m_uiListNodeCnt; | |||
F_ListNode * m_pListNodes; | F_ListNode * m_pListNodes; | |||
}; | }; | |||
// IMPORTANT NOTE: If these are changed, corresonding changes | ||||
// should be made in java and C# code as well. | ||||
/// Types of locks that may be requested. | /// Types of locks that may be requested. | |||
typedef enum | typedef enum | |||
{ | { | |||
FLM_LOCK_NONE = 0, | FLM_LOCK_NONE = 0, | |||
FLM_LOCK_EXCLUSIVE, ///< 1 = Exclusive lock. | FLM_LOCK_EXCLUSIVE, ///< 1 = Exclusive lock. | |||
FLM_LOCK_SHARED ///< 2 = Shared lock. | FLM_LOCK_SHARED ///< 2 = Shared lock. | |||
} eLockType; | } eLockType; | |||
/******************************************************************* ********* | /******************************************************************* ********* | |||
/// Abstract base class to get lock information. The application mu st | /// Abstract base class to get lock information. The application mu st | |||
skipping to change at line 5157 | skipping to change at line 5188 | |||
/// from the IF_LockObject::getLockInfo() function. | /// from the IF_LockObject::getLockInfo() function. | |||
virtual FLMBOOL FLMAPI addLockInfo( | virtual FLMBOOL FLMAPI addLockInfo( | |||
FLMUINT uiLockNum, ///< Position in queue (0 = lock holder, 1..n = lock waiter). | FLMUINT uiLockNum, ///< Position in queue (0 = lock holder, 1..n = lock waiter). | |||
FLMUINT uiThreadID, ///< Thread ID of the lock holder/waiter. | FLMUINT uiThreadID, ///< Thread ID of the lock holder/waiter. | |||
FLMUINT uiTime ///< For the lock holder, this is the amount of time the lock has been | FLMUINT uiTime ///< For the lock holder, this is the amount of time the lock has been | |||
///< held.\ For a lock waiter, this is the am ount of time the thread | ///< held.\ For a lock waiter, this is the am ount of time the thread | |||
///< has been waiting to obtain the lock.\ Bot h times are milliseconds. | ///< has been waiting to obtain the lock.\ Bot h times are milliseconds. | |||
) = 0; | ) = 0; | |||
}; | }; | |||
// IMPORTANT NOTE: This structure needs to stay in sync with | ||||
// corresponding structures in java and C# code. | ||||
/******************************************************************* ******* | /******************************************************************* ******* | |||
/// Structure used in gathering statistics to hold an operation coun t and an elapsed time. | /// Structure used in gathering statistics to hold an operation coun t and an elapsed time. | |||
******************************************************************** ******/ | ******************************************************************** ******/ | |||
typedef struct | typedef struct | |||
{ | { | |||
FLMUINT64 ui64Count; ///< Number of times operation was performed | FLMUINT64 ui64Count; ///< Number of times operation was performed | |||
FLMUINT64 ui64ElapMilli; ///< Total elapsed time (milliseconds) for the operations. | FLMUINT64 ui64ElapMilli; ///< Total elapsed time (milliseconds) for the operations. | |||
} F_COUNT_TIME_STAT; | } F_COUNT_TIME_STAT; | |||
// IMPORTANT NOTE: This structure needs to stay in sync with | ||||
// corresponding structures in java and C# code. | ||||
/******************************************************************* ******* | /******************************************************************* ******* | |||
/// Structure for returning lock statistics. | /// Structure for returning lock statistics. | |||
******************************************************************** ******/ | ******************************************************************** ******/ | |||
typedef struct | typedef struct | |||
{ | { | |||
F_COUNT_TIME_STAT NoLocks; ///< Statistics on times when nobody was holding a lock on the database. | F_COUNT_TIME_STAT NoLocks; ///< Statistics on times when nobody was holding a lock on the database. | |||
F_COUNT_TIME_STAT WaitingForLock; ///< Statistics on times threads were waiting to obtain a database lock. | F_COUNT_TIME_STAT WaitingForLock; ///< Statistics on times threads were waiting to obtain a database lock. | |||
F_COUNT_TIME_STAT HeldLock; ///< Statistics on times when a thread was holding a lock on th e database. | F_COUNT_TIME_STAT HeldLock; ///< Statistics on times when a thread was holding a lock on th e database. | |||
} F_LOCK_STATS; | } F_LOCK_STATS; | |||
skipping to change at line 5338 | skipping to change at line 5373 | |||
ui64RetVal += ui64Boundary; | ui64RetVal += ui64Boundary; | |||
} | } | |||
return( ui64RetVal); | return( ui64RetVal); | |||
} | } | |||
FINLINE void f_setBit( | FINLINE void f_setBit( | |||
FLMBYTE * pucBuffer, | FLMBYTE * pucBuffer, | |||
FLMUINT uiBit) | FLMUINT uiBit) | |||
{ | { | |||
pucBuffer[ uiBit >> 3] |= (0x01 << (uiBit & 0x07)); | pucBuffer[ uiBit >> 3] |= (FLMBYTE)(0x01 << (uiBit & 0x07)); | |||
} | } | |||
FINLINE void f_clearBit( | FINLINE void f_clearBit( | |||
FLMBYTE * pucBuffer, | FLMBYTE * pucBuffer, | |||
FLMUINT uiBit) | FLMUINT uiBit) | |||
{ | { | |||
pucBuffer[ uiBit >> 3] &= ~(0x01 << (uiBit & 0x07)); | pucBuffer[ uiBit >> 3] &= ~((FLMBYTE)(0x01 << (uiBit & 0x07) )); | |||
} | } | |||
FINLINE FLMBOOL f_isBitSet( | FINLINE FLMBOOL f_isBitSet( | |||
FLMBYTE * pucBuffer, | FLMBYTE * pucBuffer, | |||
FLMUINT uiBit) | FLMUINT uiBit) | |||
{ | { | |||
return( (pucBuffer[ uiBit >> 3] & (0x01 << (uiBit & 0x07))) | return( (pucBuffer[ uiBit >> 3] & (FLMBYTE)(0x01 << (uiBit & 0x07))) | |||
? TRUE | ? TRUE | |||
: FALSE); | : FALSE); | |||
} | } | |||
RCODE FLMAPI f_filecpy( | RCODE FLMAPI f_filecpy( | |||
const char * pszSourceFile, | const char * pszSourceFile, | |||
const char * pszData); | const char * pszData); | |||
RCODE FLMAPI f_filecat( | RCODE FLMAPI f_filecat( | |||
const char * pszSourceFile, | const char * pszSourceFile, | |||
skipping to change at line 7043 | skipping to change at line 7078 | |||
FLMUINT m_uiObjects; | FLMUINT m_uiObjects; | |||
FLMUINT m_uiMaxObjects; | FLMUINT m_uiMaxObjects; | |||
}; | }; | |||
/******************************************************************* ********* | /******************************************************************* ********* | |||
Desc: Process ID Functions | Desc: Process ID Functions | |||
******************************************************************** ********/ | ******************************************************************** ********/ | |||
FLMUINT f_getpid( void); | FLMUINT f_getpid( void); | |||
#ifdef FLM_PACK_STRUCTS | ||||
#pragma pack(pop) | ||||
#endif | ||||
#endif // FTK_H | #endif // FTK_H | |||
End of changes. 14 change blocks. | ||||
5 lines changed or deleted | 48 lines changed or added | |||