| /* $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. | |
| */ | |
| /** | |
| * etch_global.h -- logically global methods, "static" methods, etc. | |
| * methods which can logically be executed from any context. | |
| */ | |
| #ifndef ETCHGLOBAL_H | |
| #define ETCHGLOBAL_H | |
| #include "etch_config.h" | |
| #include "etchhash.h" | |
| #include "etchmem.h" | |
| #include "etchrun.h" | |
| /** | |
| * etch_runtime_init() | |
| * global etch runtime startup initialization | |
| * instantiates the global cache | |
| */ | |
| int etch_runtime_init(const int is_client); | |
| /** | |
| * etch_runtime_cleanup() | |
| * global etch runtime cleanup | |
| * clears and frees the memory tracking table, and finally the global cache | |
| */ | |
| int etch_runtime_cleanup(int n, int m); | |
| /** | |
| * global memory tracking table checkpoint | |
| * clears all entries from the memory tracking table but leaves table intact. | |
| * we would use this for example between unit tests which had memory leaks, | |
| * but we did not want to carry forward the leaks to the next tests. | |
| */ | |
| int memtable_clear(); | |
| wchar_t* new_wchar (const wchar_t*); | |
| size_t etch_strbytes(const wchar_t*); | |
| /** | |
| * cached_etchobject_vtable | |
| * static cache vtable for etchobject in order to avoid global cache lookup | |
| */ | |
| void* cached_etchobject_vtable; | |
| /** | |
| * object type sequence for generated objects | |
| */ | |
| int g_etch_curr_objtype; /* current offset from ETCHTYPEB_USER */ | |
| /** | |
| * operating system specific implementation of java System.nanotime(). | |
| */ | |
| int64 etch_system_nanotime(); | |
| unsigned char is_runtime_initialized; | |
| unsigned char is_bad_pointer(void*); | |
| int waitkey(const int is_waitkey_enabled, const int result); | |
| /* empty string contants */ | |
| wchar_t* etch_emptystru; | |
| char* etch_emptystra; | |
| /** | |
| * class ID sequence for generated classes | |
| */ | |
| /* current offset from CLASSID_DYNAMIC_START (etchobjtypes.h) */ | |
| unsigned short g_etch_curr_classid; /* current offset from CLASSID_DYNAMIC_START (etchobjtypes.h) */ | |
| unsigned short get_dynamic_classid(); | |
| unsigned short get_dynamic_classid_unique(unsigned short* globalid); | |
| /** | |
| * malloc'ed global constants | |
| */ | |
| typedef struct etch_global_constants | |
| { | |
| #if(0) | |
| etch_string* emptystring_unicode; | |
| etch_boolean boolean_true; | |
| etch_boolean boolean_false; | |
| #endif | |
| wchar_t* etch_charsetname_us_ascii; | |
| wchar_t* etch_charsetname_utf8; | |
| wchar_t* etch_charsetname_utf16; | |
| char* pctd; /* for "%d" sprintf mask */ | |
| } etch_global_constants; | |
| etch_global_constants etchgc; | |
| #endif /* #ifndef ETCHGLOBAL_H */ |