Mailing List Archive

r3718 - in trunk: c_src/KinoSearch perl/lib perl/lib/KinoSearch
Author: creamyg
Date: 2008-08-04 17:38:29 -0700 (Mon, 04 Aug 2008)
New Revision: 3718

Modified:
trunk/c_src/KinoSearch/Schema.bp
trunk/c_src/KinoSearch/Schema.c
trunk/perl/lib/KinoSearch.pm
trunk/perl/lib/KinoSearch/Schema.pm
Log:
Port some Schema methods to C.


Modified: trunk/c_src/KinoSearch/Schema.bp
===================================================================
--- trunk/c_src/KinoSearch/Schema.bp 2008-08-05 00:38:01 UTC (rev 3717)
+++ trunk/c_src/KinoSearch/Schema.bp 2008-08-05 00:38:29 UTC (rev 3718)
@@ -17,6 +17,18 @@
static Schema*
init(Schema *self);

+ public abstract incremented Analyzer*
+ Analyzer(Schema *self);
+
+ public incremented Similarity*
+ Similarity(Schema *self);
+
+ public i32_t
+ Index_Interval(Schema *self);
+
+ public i32_t
+ Skip_Interval(Schema *self);
+
/** Add a field name / field spec pair to the Schema.
*
* @param field The name of the field.

Modified: trunk/c_src/KinoSearch/Schema.c
===================================================================
--- trunk/c_src/KinoSearch/Schema.c 2008-08-05 00:38:01 UTC (rev 3717)
+++ trunk/c_src/KinoSearch/Schema.c 2008-08-05 00:38:29 UTC (rev 3718)
@@ -28,10 +28,10 @@
self->by_num = VA_new(0);

/* Assign. */
- self->index_interval = Native_callback_i(self, "index_interval", 0);
- self->skip_interval = Native_callback_i(self, "skip_interval", 0);
- self->analyzer = (Analyzer*)Native_callback_obj(self, "analyzer", 0);
- self->sim = (Similarity*)Native_callback_obj(self, "similarity", 0);
+ self->index_interval = Schema_Index_Interval(self);
+ self->skip_interval = Schema_Skip_Interval(self);
+ self->analyzer = Schema_Analyzer(self);
+ self->sim = Schema_Similarity(self);
if (!self->analyzer || !OBJ_IS_A(self->analyzer, ANALYZER))
CONFESS("Invalid Analyzer");
if (!self->sim || !OBJ_IS_A(self->sim, SIMILARITY))
@@ -45,6 +45,27 @@
return self;
}

+Similarity*
+Schema_similarity(Schema *self)
+{
+ UNUSED_VAR(self);
+ return Sim_new();
+}
+
+i32_t
+Schema_index_interval(Schema *self)
+{
+ UNUSED_VAR(self);
+ return 128;
+}
+
+i32_t
+Schema_skip_interval(Schema *self)
+{
+ UNUSED_VAR(self);
+ return 16;
+}
+
void
Schema_add_field(Schema *self, const CharBuf *field,
const CharBuf *field_spec_class)
@@ -171,22 +192,6 @@
}
}

-Analyzer*
-Schema_analyzer(Schema *self)
-{
- Analyzer *analyzer = (Analyzer*)Native_callback_obj(self, "analyzer", 0);
- if (!analyzer) CONFESS("Failed to return an Analyzer");
- return analyzer;
-}
-
-Similarity*
-Schema_similarity(Schema *self)
-{
- Similarity *sim = (Similarity*)Native_callback_obj(self, "similarity", 0);
- if (!sim) CONFESS("Failed to return a Similarity");
- return sim;
-}
-
FieldSpec*
Schema_fetch_fspec(Schema *self, const CharBuf *field_name)
{

Modified: trunk/perl/lib/KinoSearch/Schema.pm
===================================================================
--- trunk/perl/lib/KinoSearch/Schema.pm 2008-08-05 00:38:01 UTC (rev 3717)
+++ trunk/perl/lib/KinoSearch/Schema.pm 2008-08-05 00:38:29 UTC (rev 3718)
@@ -20,27 +20,23 @@
}
OUTPUT: RETVAL

-SV*
-field_num(self, field_name)
- kino_Schema *self;
- kino_CharBuf field_name;
-CODE:
-{
- chy_i32_t num = Kino_Schema_Field_Num(self, &field_name);
- RETVAL = num == -1
- ? newSV(0)
- : newSViv(num);
-}
-OUTPUT: RETVAL
-
__AUTO_XS__

{ "KinoSearch::Schema" => {
bind_methods => [.
- qw( fetch_fspec fetch_analyzer fetch_sim fetch_posting num_fields
- _all_fields|all_fields add_field )
+ qw( analyzer
+ similarity
+ index_interval
+ skip_interval
+ fetch_fspec
+ fetch_analyzer
+ fetch_sim
+ fetch_posting
+ num_fields
+ field_num
+ _all_fields|all_fields
+ add_field )
],
- make_getters => [qw( fspecs sims )],
make_constructors => [qw( _new )],
}
}

Modified: trunk/perl/lib/KinoSearch.pm
===================================================================
--- trunk/perl/lib/KinoSearch.pm 2008-08-05 00:38:01 UTC (rev 3717)
+++ trunk/perl/lib/KinoSearch.pm 2008-08-05 00:38:29 UTC (rev 3718)
@@ -365,11 +365,6 @@
package KinoSearch::Schema;
use KinoSearch::Util::ToolSet qw( confess blessed );

- sub analyzer { shift->abstract_death }
- sub similarity { KinoSearch::Search::Similarity->new }
- sub index_interval {128}
- sub skip_interval {16}
-
sub new {
my $either = shift;
my $class = ref($either) || $either;


_______________________________________________
kinosearch-commits mailing list
kinosearch-commits@rectangular.com
http://www.rectangular.com/mailman/listinfo/kinosearch-commits