2
* Copyright (c) 2005 Massachusetts Institute of Technology
4
* Permission is hereby granted, free of charge, to any person
5
* obtaining a copy of this software and associated documentation
6
* files (the "Software"), to deal in the Software without
7
* restriction, including without limitation the rights to use, copy,
8
* modify, merge, publish, distribute, sublicense, and/or sell copies
9
* of the Software, and to permit persons to whom the Software is
10
* furnished to do so, subject to the following conditions:
12
* The above copyright notice and this permission notice shall be
13
* included in all copies or substantial portions of the Software.
15
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
19
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
20
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
21
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
27
#ifndef __KHIMAIRA_KCDB_TYPE_H
28
#define __KHIMAIRA_KCDB_TYPE_H
32
typedef struct kcdb_type_i_t {
37
struct kcdb_type_i_t * next;
38
struct kcdb_type_i_t * prev;
41
#define KCDB_TYPE_HASH_SIZE 31
43
#define KCDB_TYPE_FLAG_DELETED 8
45
void kcdb_type_init(void);
46
void kcdb_type_exit(void);
47
void kcdb_type_add_ref(const void *key, void *vt);
48
void kcdb_type_del_ref(const void *key, void *vt);
49
void kcdb_type_msg_completion(kmq_message * m);
50
khm_int32 kcdb_type_hold(kcdb_type_i * t);
51
khm_int32 kcdb_type_release(kcdb_type_i * t);
52
void kcdb_type_check_and_delete(khm_int32 id);
53
void kcdb_type_post_message(khm_int32 op, kcdb_type_i * t);
55
khm_int32 KHMAPI kcdb_type_void_toString(
62
khm_boolean KHMAPI kcdb_type_void_isValid(
66
khm_int32 KHMAPI kcdb_type_void_comp(
72
khm_int32 KHMAPI kcdb_type_void_dup(
78
khm_int32 KHMAPI kcdb_type_string_toString(
85
khm_boolean KHMAPI kcdb_type_string_isValid(
89
khm_int32 KHMAPI kcdb_type_string_comp(
95
khm_int32 KHMAPI kcdb_type_string_dup(
101
khm_int32 KHMAPI kcdb_type_date_toString(
108
khm_boolean KHMAPI kcdb_type_date_isValid(
112
khm_int32 KHMAPI kcdb_type_date_comp(
118
khm_int32 KHMAPI kcdb_type_date_dup(
124
khm_int32 KHMAPI kcdb_type_interval_toString(
131
khm_boolean KHMAPI kcdb_type_interval_isValid(
135
khm_int32 KHMAPI kcdb_type_interval_comp(
141
khm_int32 KHMAPI kcdb_type_interval_dup(
147
khm_int32 KHMAPI kcdb_type_int32_toString(
154
khm_boolean KHMAPI kcdb_type_int32_isValid(
158
khm_int32 KHMAPI kcdb_type_int32_comp(
164
khm_int32 KHMAPI kcdb_type_int32_dup(
170
khm_int32 KHMAPI kcdb_type_int64_toString(
177
khm_boolean KHMAPI kcdb_type_int64_isValid(
181
khm_int32 KHMAPI kcdb_type_int64_comp(
187
khm_int32 KHMAPI kcdb_type_int64_dup(
193
khm_int32 KHMAPI kcdb_type_data_toString(
200
khm_boolean KHMAPI kcdb_type_data_isValid(
204
khm_int32 KHMAPI kcdb_type_data_comp(
210
khm_int32 KHMAPI kcdb_type_data_dup(