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.
@@ -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) bit_bucket_free(map->bkts[i]);
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
- }
@@ -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.1
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: PENDING
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: []