blob: c755b29c10352e67c24fd7269191b293adc2b8e9 [file]
/* $Id$
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to you under the Apache License, Version
* 2.0 (the "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*
* etchdefs.h -- type and constant definitions etc
*/
#ifndef ETCHDEFS_H
#define ETCHDEFS_H
#include <io.h>
typedef long long int64;
typedef unsigned long long uint64;
typedef unsigned char byte;
typedef unsigned char boolean;
#undef NULL
#define NULL 0
#undef FALSE
#define FALSE 0
#undef TRUE
#define TRUE 1
#undef BOOLEAN
#define BOOLEAN int
#undef BYTE
#ifdef IS_WINDOWS_ETCH
#define MAXPATHSIZE 260 /* value of MAX_PATH in windef.h */
#define etch_deletefile _unlink
#else
#define MAXPATHSIZE 260 /* TODO max pathsize for linux etc */
#define etch_deletefile unlink
#endif
#ifndef _TCHAR
#define _TCHAR wchar_t
#endif
#define MAX_ETCHHASHKEY 128 /* arbitrary max byte length of a hashtable key */
#define INITIAL_CACHE_SIZE_ITEMS 32 /* global cache starts out capacity 32 */
#define ETCH_ASSERT(condition) assert(condition)
#define ETCH_ASYNCMODE_NONE 0 /* implies operation is synchronous */
#define ETCH_ASYNCMODE_QUEUED 1 /* operation is queued to a thread pool */
#define ETCH_ASYNCMODE_FREE 2 /* operation is executed in a new thread */
#define ETCH_DEFSIZE 0
#define ETCH_INFWAIT 0
#define ETCH_NOWAIT (-1)
#define ETCH_TIMEOUT 1
#define ETCH_INTERRUPTED 2
#define ETCH_THREADPOOLTYPE_FREE 0
#define ETCH_THREADPOOLTYPE_QUEUED 1
#define ETCH_TRANSPORT_FORMAT_BINARY 0
#define ETCH_TRANSPORT_FORMAT_XML 1
#define ETCH_ENCODING_ASCII 1
#define ETCH_ENCODING_UTF8 2
#define ETCH_ENCODING_UTF16 3
#define ETCH_ENCODING_DEFAULT ETCH_ENCODING_UTF8
#define IS_ETCH_ENCODING_8BIT(n) (n == ETCH_ENCODING_UTF8 || n == ETCH_ENCODING_ASCII)
#define ETCHMAKECLASS(t,c) ((t << 16) | c)
#define ETCHGETCLASS(n,t,c) do{ c=(short)(n & 0xffff); t=(short)(n>>16); }while(0);
#define ETCH_SHUTDOWNSIGNAL "$ETCHQUIT"
#define ETCH_DEBUG
#ifdef ETCH_DEBUG
int g_debugtest;
#endif
#endif /* #ifndef ETCHDEFS_H */