bitmapper 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ext/bitmapper/bit_mapper_wrap.c +4 -35
- data/ext/bitmapper/bitmapper.c +16 -0
- metadata +3 -3
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
#include <math.h>
|
|
5
5
|
|
|
6
6
|
#include "bit_mapper_wrap.h"
|
|
7
|
-
/* #include "bit_bucket.c" */
|
|
8
7
|
|
|
9
8
|
/*
|
|
10
9
|
Creates empty Bitmapper*. Without BitBucket pointers.
|
|
@@ -41,7 +40,10 @@ void allocate_map(Bitmapper* map, int index_len){
|
|
|
41
40
|
void free_map(Bitmapper* map){
|
|
42
41
|
unsigned long long int i;
|
|
43
42
|
for(i=0;i<map->bkt_count; i++){
|
|
44
|
-
if((map->bkts[i])!=NULL)
|
|
43
|
+
if((map->bkts[i])!=NULL){
|
|
44
|
+
bit_bucket_free(map->bkts[i]);
|
|
45
|
+
map->bkts[i] = NULL;
|
|
46
|
+
}
|
|
45
47
|
}
|
|
46
48
|
free(map->bkts);
|
|
47
49
|
free(map);
|
|
@@ -314,36 +316,3 @@ int load_str_file(Bitmapper* map, FILE* fp){
|
|
|
314
316
|
return 0;
|
|
315
317
|
}
|
|
316
318
|
}
|
|
317
|
-
|
|
318
|
-
void test(){
|
|
319
|
-
int index_len = 6;
|
|
320
|
-
FILE *in, *out, *del, *str_out, *str_in;
|
|
321
|
-
Bitmapper* map = create_map();
|
|
322
|
-
allocate_map(map, index_len);
|
|
323
|
-
in = fopen("/tmp/ncpr/out.txt","r");
|
|
324
|
-
add_numbers_in_file(map, in);
|
|
325
|
-
/* in = fopen("test/data/1-add.txt","r"); */
|
|
326
|
-
/* del = fopen("test/data/1-del.txt","r"); */
|
|
327
|
-
out = fopen("/tmp/ncpr/out2.txt","w");
|
|
328
|
-
/* str_out = fopen("/tmp/ncpr/str_out.txt","w"); */
|
|
329
|
-
/* add_numbers_in_file(map, in, index_len); */
|
|
330
|
-
/* // remove_numbers_in_file(map, del); */
|
|
331
|
-
/* /\* dump_all_str_to_file( map, str_out); *\/ */
|
|
332
|
-
/* dump_bucket_str_to_file(map, str_out, 934793); */
|
|
333
|
-
/* fclose(str_out); */
|
|
334
|
-
/* str_in = fopen("/tmp/ncpr/str_out.txt","r"); */
|
|
335
|
-
/* load_str_file_to_bucket(map, str_in, 934793); */
|
|
336
|
-
/* puts("dumping to file"); */
|
|
337
|
-
dump_all_to_file(map, out);
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
fclose(in);
|
|
341
|
-
/* fclose(del); */
|
|
342
|
-
fclose(out);
|
|
343
|
-
/* fclose(str_in); */
|
|
344
|
-
free_map(map);
|
|
345
|
-
}
|
|
346
|
-
|
|
347
|
-
void main(){
|
|
348
|
-
test();
|
|
349
|
-
}
|
data/ext/bitmapper/bitmapper.c
CHANGED
|
@@ -19,6 +19,21 @@ void bm_free(void *p){
|
|
|
19
19
|
free_map((Bitmapper*)p);
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
+
/*
|
|
23
|
+
Frees memory. The amount of memory returned to OS depends on
|
|
24
|
+
compiler trip settings.
|
|
25
|
+
*/
|
|
26
|
+
VALUE bm_reset(VALUE self){
|
|
27
|
+
Bitmapper* map;
|
|
28
|
+
VALUE len;
|
|
29
|
+
Data_Get_Struct(self, Bitmapper, map);
|
|
30
|
+
free_map(map);
|
|
31
|
+
map = create_map();
|
|
32
|
+
len = rb_iv_get(self, "@index_len");
|
|
33
|
+
allocate_map(map, FIX2INT(len));
|
|
34
|
+
return self;
|
|
35
|
+
}
|
|
36
|
+
|
|
22
37
|
VALUE bm_alloc(VALUE self){
|
|
23
38
|
Bitmapper* map;
|
|
24
39
|
map = create_map();
|
|
@@ -184,6 +199,7 @@ void Init_bitmapper(){
|
|
|
184
199
|
rb_cBitmapper = rb_define_class("Bitmapper", rb_cObject);
|
|
185
200
|
rb_define_alloc_func(rb_cBitmapper, bm_alloc);
|
|
186
201
|
rb_define_method(rb_cBitmapper, "initialize", bm_init, 1);
|
|
202
|
+
rb_define_method(rb_cBitmapper, "reset", bm_reset, 0);
|
|
187
203
|
rb_define_method(rb_cBitmapper, "get_indexes", bm_get_indexes, 0);
|
|
188
204
|
rb_define_method(rb_cBitmapper, "add", bm_add_from_file, 1);
|
|
189
205
|
rb_define_method(rb_cBitmapper, "remove", bm_remove_from_file, 1);
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: bitmapper
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.2
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -11,7 +11,7 @@ bindir: bin
|
|
|
11
11
|
cert_chain: []
|
|
12
12
|
date: 2012-06-11 00:00:00.000000000 Z
|
|
13
13
|
dependencies: []
|
|
14
|
-
description:
|
|
14
|
+
description: A fast, in-memory, bit map filter!
|
|
15
15
|
email: gouthamvel@gmail.com
|
|
16
16
|
executables: []
|
|
17
17
|
extensions:
|
|
@@ -48,5 +48,5 @@ rubyforge_project:
|
|
|
48
48
|
rubygems_version: 1.8.23
|
|
49
49
|
signing_key:
|
|
50
50
|
specification_version: 3
|
|
51
|
-
summary: A fast bit map filter!
|
|
51
|
+
summary: A fast, in-memory, bit map filter!
|
|
52
52
|
test_files: []
|