You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucy.apache.org by ma...@apache.org on 2012/02/17 01:37:36 UTC

[lucy-commits] svn commit: r1245270 - in /incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding: Index.pm Index/ Lucy.pm Misc.pm Search.pm Search/ Test/

Author: marvin
Date: Fri Feb 17 00:37:35 2012
New Revision: 1245270

URL: http://svn.apache.org/viewvc?rev=1245270&view=rev
Log:
Consolidate binding spec files.

Take small binding spec files and consolidate them into their parent files.
Rename Lucy::Build::Binding::Lucy to Lucy::Build::Binding::Misc in order to
more accurately represent its content.

Added:
    incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Misc.pm
      - copied, changed from r1245260, incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Lucy.pm
Removed:
    incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Index/
    incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Lucy.pm
    incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Search/
    incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Test/
Modified:
    incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Index.pm
    incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Search.pm

Modified: incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Index.pm
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Index.pm?rev=1245270&r1=1245269&r2=1245270&view=diff
==============================================================================
--- incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Index.pm (original)
+++ incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Index.pm Fri Feb 17 00:37:35 2012
@@ -44,6 +44,9 @@ sub bind_all {
     $class->bind_polylexicon;
     $class->bind_polyreader;
     $class->bind_posting;
+    $class->bind_matchposting;
+    $class->bind_richposting;
+    $class->bind_scoreposting;
     $class->bind_postinglist;
     $class->bind_postinglistreader;
     $class->bind_defaultpostinglistreader;
@@ -739,6 +742,56 @@ sub bind_posting {
         parcel     => "Lucy",
         class_name => "Lucy::Index::Posting",
     );
+    Clownfish::CFC::Binding::Perl::Class->register($binding);
+}
+
+sub bind_matchposting {
+    my $binding = Clownfish::CFC::Binding::Perl::Class->new(
+        parcel     => "Lucy",
+        class_name => "Lucy::Index::Posting::MatchPosting",
+    );
+    Clownfish::CFC::Binding::Perl::Class->register($binding);
+}
+
+sub bind_richposting {
+    my $binding = Clownfish::CFC::Binding::Perl::Class->new(
+        parcel     => "Lucy",
+        class_name => "Lucy::Index::Posting::RichPosting",
+    );
+    Clownfish::CFC::Binding::Perl::Class->register($binding);
+}
+
+sub bind_scoreposting {
+    my @hand_rolled = qw( Get_Prox );
+
+    my $xs_code = <<'END_XS_CODE';
+MODULE = Lucy   PACKAGE = Lucy::Index::Posting::ScorePosting
+
+SV*
+get_prox(self)
+    lucy_ScorePosting *self;
+CODE:
+{
+    AV *out_av            = newAV();
+    uint32_t *positions  = Lucy_ScorePost_Get_Prox(self);
+    uint32_t i, max;
+
+    for (i = 0, max = Lucy_ScorePost_Get_Freq(self); i < max; i++) {
+        SV *pos_sv = newSVuv(positions[i]);
+        av_push(out_av, pos_sv);
+    }
+
+    RETVAL = newRV_noinc((SV*)out_av);
+}
+OUTPUT: RETVAL
+END_XS_CODE
+
+    my $binding = Clownfish::CFC::Binding::Perl::Class->new(
+        parcel     => "Lucy",
+        class_name => "Lucy::Index::Posting::ScorePosting",
+    );
+    $binding->append_xs($xs_code);
+    $binding->exclude_method($_) for @hand_rolled;
 
     Clownfish::CFC::Binding::Perl::Class->register($binding);
 }

Copied: incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Misc.pm (from r1245260, incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Lucy.pm)
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Misc.pm?p2=incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Misc.pm&p1=incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Lucy.pm&r1=1245260&r2=1245270&rev=1245270&view=diff
==============================================================================
--- incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Lucy.pm (original)
+++ incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Misc.pm Fri Feb 17 00:37:35 2012
@@ -12,7 +12,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
-package Lucy::Build::Binding::Lucy;
+package Lucy::Build::Binding::Misc;
 use strict;
 use warnings;
 
@@ -23,6 +23,7 @@ sub bind_all {
     $class->bind_testutils;
     $class->bind_testqueryparsersyntax;
     $class->bind_testschema;
+    $class->bind_bbsortex;
 }
 
 sub bind_lucy {
@@ -346,4 +347,65 @@ sub bind_testschema {
     Clownfish::CFC::Binding::Perl::Class->register($binding);
 }
 
+sub bind_bbsortex {
+    my @hand_rolled = qw(
+        Fetch
+        Peek
+        Feed
+    );
+    my $xs_code = <<'END_XS_CODE';
+MODULE = Lucy    PACKAGE = Lucy::Test::Util::BBSortEx
+
+SV*
+fetch(self)
+    lucy_BBSortEx *self;
+CODE:
+{
+    void *address = Lucy_BBSortEx_Fetch(self);
+    if (address) {
+        RETVAL = XSBind_cfish_to_perl(*(lucy_Obj**)address);
+        CFISH_DECREF(*(lucy_Obj**)address);
+    }
+    else {
+        RETVAL = newSV(0);
+    }
+}
+OUTPUT: RETVAL
+
+SV*
+peek(self)
+    lucy_BBSortEx *self;
+CODE:
+{
+    void *address = Lucy_BBSortEx_Peek(self);
+    if (address) {
+        RETVAL = XSBind_cfish_to_perl(*(lucy_Obj**)address);
+    }
+    else {
+        RETVAL = newSV(0);
+    }
+}
+OUTPUT: RETVAL
+
+void
+feed(self, bb)
+    lucy_BBSortEx *self;
+    lucy_ByteBuf *bb;
+CODE:
+    CFISH_INCREF(bb);
+    Lucy_BBSortEx_Feed(self, &bb);
+
+END_XS_CODE
+
+    my $binding = Clownfish::CFC::Binding::Perl::Class->new(
+        parcel     => "Lucy",
+        class_name => "Lucy::Test::Util::BBSortEx",
+    );
+    $binding->exclude_method($_) for @hand_rolled;
+    $binding->append_xs($xs_code);
+
+    Clownfish::CFC::Binding::Perl::Class->register($binding);
+}
+
 1;
+

Modified: incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Search.pm
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Search.pm?rev=1245270&r1=1245269&r2=1245270&view=diff
==============================================================================
--- incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Search.pm (original)
+++ incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Search.pm Fri Feb 17 00:37:35 2012
@@ -22,7 +22,9 @@ sub bind_all {
     $class->bind_andquery;
     $class->bind_bitvecmatcher;
     $class->bind_collector;
+    $class->bind_bitcollector;
     $class->bind_offsetcollector;
+    $class->bind_sortcollector;
     $class->bind_compiler;
     $class->bind_hitqueue;
     $class->bind_hits;
@@ -127,6 +129,40 @@ END_CONSTRUCTOR
     Clownfish::CFC::Binding::Perl::Class->register($binding);
 }
 
+sub bind_bitcollector {
+    my @exposed = qw( Collect );
+
+    my $pod_spec = Clownfish::CFC::Binding::Perl::Pod->new;
+    my $synopsis = <<'END_SYNOPSIS';
+    my $bit_vec = Lucy::Object::BitVector->new(
+        capacity => $searcher->doc_max + 1,
+    );
+    my $bit_collector = Lucy::Search::Collector::BitCollector->new(
+        bit_vector => $bit_vec, 
+    );
+    $searcher->collect(
+        collector => $bit_collector,
+        query     => $query,
+    );
+END_SYNOPSIS
+    my $constructor = <<'END_CONSTRUCTOR';
+    my $bit_collector = Lucy::Search::Collector::BitCollector->new(
+        bit_vector => $bit_vec,    # required
+    );
+END_CONSTRUCTOR
+    $pod_spec->set_synopsis($synopsis);
+    $pod_spec->add_constructor( alias => 'new', sample => $constructor, );
+    $pod_spec->add_method( method => $_, alias => lc($_) ) for @exposed;
+
+    my $binding = Clownfish::CFC::Binding::Perl::Class->new(
+        parcel     => "Lucy",
+        class_name => "Lucy::Search::Collector::BitCollector",
+    );
+    $binding->set_pod_spec($pod_spec);
+
+    Clownfish::CFC::Binding::Perl::Class->register($binding);
+}
+
 sub bind_offsetcollector {
     my $binding = Clownfish::CFC::Binding::Perl::Class->new(
         parcel     => "Lucy",
@@ -135,6 +171,14 @@ sub bind_offsetcollector {
     Clownfish::CFC::Binding::Perl::Class->register($binding);
 }
 
+sub bind_sortcollector {
+    my $binding = Clownfish::CFC::Binding::Perl::Class->new(
+        parcel     => "Lucy",
+        class_name => "Lucy::Search::Collector::SortCollector",
+    );
+    Clownfish::CFC::Binding::Perl::Class->register($binding);
+}
+
 sub bind_compiler {
     my @exposed = qw(
         Make_Matcher