13
extern ID id_capacity;
14
extern ID id_less_than;
16
extern ID id_is_directory;
24
extern VALUE sym_true;
25
extern VALUE sym_false;
26
extern VALUE sym_path;
34
extern VALUE mStringHelper;
38
extern VALUE cDirectory;
39
extern VALUE cLockError;
43
extern void Init_Utils();
44
extern void Init_Analysis();
45
extern void Init_Store();
46
extern void Init_Index();
47
extern void Init_Search();
48
extern void Init_QueryParser();
50
//extern void object_add(void *key, VALUE obj);
51
#define object_add(key, obj) object_add2(key, obj, __FILE__, __LINE__)
52
extern void object_add2(void *key, VALUE obj, const char *file, int line);
53
//extern void object_set(void *key, VALUE obj);
54
#define object_set(key, obj) object_set2(key, obj, __FILE__, __LINE__)
55
extern void object_set2(void *key, VALUE obj, const char *file, int line);
56
//extern void object_del(void *key);
57
#define object_del(key) object_del2(key, __FILE__, __LINE__)
58
extern void object_del2(void *key, const char *file, int line);
59
extern void frt_gc_mark(void *key);
60
extern VALUE object_get(void *key);
61
extern VALUE frt_data_alloc(VALUE klass);
62
extern void frt_deref_free(void *p);
63
extern void frt_create_dir(VALUE rpath);
64
extern VALUE frt_hs_to_rb_ary(HashSet *hs);
65
extern void *frt_rb_data_ptr(VALUE val);
66
extern char * frt_field(VALUE rfield);
67
extern VALUE frt_get_term(const char *field, const char *term);
68
extern char *json_concat_string(char *s, char *field);
69
extern char *rs2s(VALUE rstr);
70
extern char *nstrdup(VALUE rstr);
71
#define Frt_Make_Struct(klass)\
72
rb_data_object_alloc(klass,NULL,(RUBY_DATA_FUNC)NULL,(RUBY_DATA_FUNC)NULL)
74
#define Frt_Wrap_Struct(self,mmark,mfree,mdata)\
76
((struct RData *)(self))->data = mdata;\
77
((struct RData *)(self))->dmark = (RUBY_DATA_FUNC)mmark;\
78
((struct RData *)(self))->dfree = (RUBY_DATA_FUNC)mfree;\
81
#define Frt_Unwrap_Struct(self)\
83
((struct RData *)(self))->data = NULL;\
84
((struct RData *)(self))->dmark = NULL;\
85
((struct RData *)(self))->dfree = NULL;\
90
#define frt_mark_cclass(klass) rb_ivar_set(klass, id_cclass, Qtrue)
91
#define frt_is_cclass(obj) (rb_ivar_get(CLASS_OF(obj), id_cclass) == Qtrue)